“Generalized Linear Models With Examples in R”, được viết bởi Peter K. Dunn và Gordon K. Smyth. Cuốn sách này là một phần của loạt bài “Springer Texts in Statistics” và có bản quyền năm 2018. Cuốn sách được chuẩn bị sử dụng LATEX và phiên bản R 3.4.3, tích hợp bằng Sweave.
Chương này mở đầu bằng việc nhấn mạnh rằng tất cả các mô hình đều là những sự xấp xỉ, không hoàn hảo, nhưng nếu được sử dụng đúng cách thì vẫn hữu ích. Do đó, cần hiểu bản chất, vai trò và giới hạn của mô hình thống kê trong thực tiễn.
Mở đầu chương là một ví dụ thực tế về dữ liệu về dung tích phổi (FEV
– forced expiratory volume) của 654 thanh thiếu niên tại East Boston.
Các biến như tuổi, chiều cao, giới tính và tình trạng hút thuốc được xem
xét để dự đoán FEV. Tập dữ liệu này sẽ được sử dụng xuyên suốt sách và
giúp người học quen với cách trình bày dữ liệu trong R thông qua
data.frame
và gói GLMsData
.
Sau đó, chương đi vào các nội dung lý thuyết chính:
Cách mô tả dữ liệu: Các biến được phân biệt rõ giữa biến phản hồi (response variable, ký hiệu là y) và các biến giải thích (explanatory variables, ký hiệu là x). Các biến định tính được gọi là factors, trong khi các biến định lượng là covariates. Ví dụ: giới tính là factor, còn chiều cao là covariate.
Vai trò của biểu đồ: Vẽ đồ thị là bước quan trọng để khám phá mối quan hệ giữa các biến, nhận diện xu hướng, ngoại lệ và định hướng xây dựng mô hình. Chương khuyến khích việc trực quan hóa dữ liệu trước khi phân tích sâu.
Mã hóa biến không số: Những biến như giới tính (F/M) hay hút thuốc (0/1) phải được chuyển thành dạng số để có thể đưa vào mô hình thống kê. Tác giả hướng dẫn cách mã hóa trong R để sử dụng hiệu quả trong phân tích.
Hai thành phần của mô hình thống kê: Mỗi mô hình gồm một thành phần hệ thống (systematic component – xác định dạng mối quan hệ giữa biến y và các biến x) và một thành phần ngẫu nhiên (random component – mô tả sự thay đổi ngẫu nhiên không giải thích được). Đây là nền tảng để hiểu mô hình tuyến tính và mô hình tuyến tính tổng quát sau này.
Giới thiệu mô hình hồi quy (regression models): Đây là một lớp quan trọng của các mô hình thống kê và là trọng tâm của sách. Mô hình hồi quy đơn giản được sử dụng để mô tả mối quan hệ tuyến tính giữa một biến phản hồi và một hoặc nhiều biến giải thích.
So sánh mô hình vật lý và mô hình thống kê: Mô hình vật lý thường chính xác và có cơ sở từ lý thuyết khoa học, trong khi mô hình thống kê được xây dựng từ dữ liệu và chỉ mang tính mô tả hoặc dự đoán.
Tiêu chí đánh giá mô hình: Hai yếu tố quan trọng là độ chính xác (accuracy) – khả năng dự đoán tốt trên dữ liệu mới, và tính đơn giản (parsimony) – mô hình không nên quá phức tạp nếu không cần thiết.
Tính tổng quát và giới hạn: Một mô hình tốt nên có khả năng tổng quát hóa – tức áp dụng được cho dữ liệu khác. Nhưng cũng cần hiểu giới hạn của mô hình khi dữ liệu không đại diện hoặc không đầy đủ.
Cuối chương, sách giới thiệu cách sử dụng R cho mô hình hóa thống kê, đặt nền cho việc thực hành phân tích trong các chương tiếp theo.
Chương này cung cấp nền tảng vững chắc về mô hình hồi quy tuyến tính, được xem là trường hợp đặc biệt và cơ bản nhất của mô hình tuyến tính tổng quát (GLM). Nội dung chương bao gồm cả lý thuyết, công thức, suy luận thống kê và thực hành bằng R.
Mô hình hồi quy tuyến tính được sử dụng để mô hình hóa mối quan hệ giữa một biến phản hồi định lượng \(y\) và một hay nhiều biến giải thích \(x_1, x_2, ..., x_p\). Mô hình có hai thành phần:
Mô hình được phân loại theo số lượng biến giải thích và loại trọng số:
Các tham số \(\beta_0, \beta_1, ..., \beta_p\) được ước lượng bằng cách tối thiểu hóa tổng bình phương sai số:
\[ S(\beta_0, \beta_1, ..., \beta_p) = \sum_{i=1}^n w_i (y_i - \mu_i)^2 \]
Trong trường hợp đơn giản, công thức đóng (closed-form) cho \(\hat{\beta}_0\) và \(\hat{\beta}_1\) được cung cấp. Với nhiều biến giải thích, chương trình sử dụng đại số ma trận để ước lượng các hệ số.
Sử dụng ký hiệu ma trận giúp rút gọn và chuẩn hóa việc tính toán:
Ước lượng tham số được biểu diễn: \(\hat{\boldsymbol{\beta}} = (\mathbf{X}^T\mathbf{W}\mathbf{X})^{-1}\mathbf{X}^T\mathbf{W}\mathbf{y}\)
Hệ số \(\beta_j\) mô tả sự thay đổi trung bình trong \(y\) khi \(x_j\) tăng một đơn vị, giữ các biến khác không đổi. Tính diễn giải phụ thuộc vào việc các biến có được chuẩn hóa hay không và mối quan hệ tuyến tính có hợp lý không.
Khi giả định phân phối chuẩn \(y_i \sim N(\mu_i, \sigma^2 / w_i)\), các kiểm định thống kê như kiểm định t (t-test) và phân tích phương sai (ANOVA) được áp dụng để:
ANOVA giúp phân tích tổng phương sai thành hai phần: phương sai do mô hình và phương sai do ngẫu nhiên. Từ đó, chỉ số \(R^2\) và \(\bar{R}^2\) được dùng để đánh giá mức độ giải thích của mô hình đối với dữ liệu.
drop1()
, add1()
, và
step()
hỗ trợ tự động chọn mô hình trong R.Các ví dụ cụ thể như mô hình hóa cân nặng sơ sinh theo tuổi thai, dung tích phổi theo chiều cao và giới tính được trình bày kèm theo mã lệnh trong R.
Chương này tập trung vào quá trình kiểm tra các giả định của mô hình hồi quy tuyến tính và các phương pháp xây dựng mô hình phù hợp hơn khi phát hiện vi phạm. Trọng tâm là công cụ chẩn đoán (diagnostic tools) như phần dư (residuals), leverage, Cook’s distance và biến đổi dữ liệu. Nội dung được trình bày kết hợp giữa lý thuyết, công thức và thực hành bằng R.
Sau khi xây dựng mô hình hồi quy tuyến tính, điều quan trọng là phải kiểm tra xem mô hình có phù hợp với dữ liệu không. Quá trình này gọi là phân tích chẩn đoán (diagnostic analysis), giúp phát hiện các vi phạm giả định và đề xuất cách khắc phục. Chương mở đầu bằng nhận định: “Phân phối chuẩn là điều huyền thoại – chưa từng tồn tại và sẽ không bao giờ tồn tại”, nhấn mạnh vào sự cẩn trọng khi đánh giá giả định phân phối chuẩn.
Mô hình hồi quy tuyến tính dựa trên năm giả định chính:
Vi phạm các giả định này có thể dẫn đến sai lệch kết luận thống kê và mô hình kém chính xác.
Phần dư là công cụ chính để kiểm tra sự phù hợp của mô hình. Ba loại phần dư được dùng:
Phần dư giúp phát hiện điểm bất thường, phương sai không đồng nhất và mối quan hệ phi tuyến tính.
Leverage đo mức độ ảnh hưởng của một quan sát lên giá trị dự đoán. Các điểm có giá trị giải thích (x) khác biệt nhiều so với trung bình sẽ có leverage cao. Khi leverage kết hợp với phần dư lớn, có thể dẫn đến điểm ảnh hưởng mạnh (influential point). Chỉ số Cook’s distance được dùng để đo mức độ ảnh hưởng của từng điểm dữ liệu.
Các biểu đồ phần dư là công cụ trực quan giúp kiểm tra:
Nếu phần dư cho thấy mô hình không phù hợp, có thể cần biến đổi biến hoặc chọn mô hình khác.
Phân tích phần dư chuẩn hóa và Cook’s distance cho phép nhận diện:
Các điểm này cần được xem xét kỹ và có thể được loại bỏ hoặc mô hình hóa lại.
Nếu vi phạm giả định, chương đề xuất nhiều cách khắc phục:
Cuối chương là các nghiên cứu thực tiễn sử dụng bộ dữ liệu như lungcap, cheese, humanfat, ct scan, để minh họa cách áp dụng chẩn đoán mô hình, nhận diện vấn đề và cải tiến mô hình bằng R.
Chương này là bước ngoặt quan trọng, nơi tác giả rời khỏi mô hình hồi quy tuyến tính cổ điển (dựa vào giả định phân phối chuẩn và phương sai không đổi) để giới thiệu phương pháp ước lượng hợp lý cực đại (Maximum Likelihood Estimation - MLE) – công cụ trung tâm trong mô hình hóa GLM.
Tác giả nêu ra ba tình huống điển hình mà mô hình tuyến tính truyền thống thất bại:
Các trường hợp này đòi hỏi mô hình mới, dựa trên các phân phối xác suất khác nhau. Do đó, ước lượng theo bình phương tối thiểu không còn thích hợp.
Phần này xây dựng cơ sở toán học của phương pháp MLE:
Ví dụ cụ thể về phân phối mũ được đưa ra để minh họa nguyên lý: MLE của tham số \(\theta\) là \(1/\bar{y}\).
Phần này trình bày cách sử dụng thuật toán Fisher Scoring – một biến thể của Newton-Raphson – để tìm MLE trong thực hành:
Các tính chất thống kê quan trọng của MLE được trình bày như sau:
Ba kiểm định quan trọng dựa trên MLE được giới thiệu:
Khoảng tin cậy cũng được xây dựng từ các kiểm định này. Các mô hình không lồng nhau được so sánh bằng AIC và BIC.
Phụ lục cung cấp mã R để mô phỏng và ước lượng một mô hình nhị thức
với dữ liệu lượng mưa tại Quilpie, Úc. Đây là ví dụ giúp minh họa việc
áp dụng MLE thủ công, trước khi sử dụng các hàm sẵn có như
glm()
trong R.
Chương này giới thiệu cấu trúc tổng quát của mô hình tuyến tính tổng quát (GLM), mở rộng từ mô hình hồi quy tuyến tính thông thường. Đây là chương cốt lõi, thiết lập nền tảng cho việc hiểu và áp dụng GLM trong các tình huống thực tế mà dữ liệu không phù hợp với các giả định của mô hình hồi quy cổ điển.
GLM được phát triển để xử lý các tình huống mà mô hình tuyến tính truyền thống không thể áp dụng hiệu quả, ví dụ: dữ liệu có phân phối không chuẩn, phương sai thay đổi, hoặc biến phản hồi là tỷ lệ hoặc số đếm. Chương bắt đầu bằng việc nhấn mạnh rằng GLM là một hệ thống thống nhất cho nhiều mô hình khác nhau, sử dụng chung một khuôn khổ lý thuyết.
Mỗi mô hình GLM gồm hai thành phần:
Phân phối EDM có dạng:
\[ P(y; \theta, \phi) = a(y, \phi)\exp\left(\frac{y\theta - \kappa(\theta)}{\phi}\right) \]
trong đó:
Các phân phối phổ biến thuộc EDM gồm: chuẩn, Poisson, Gamma, nhị thức (binomial), nhị thức âm (negative binomial). EDM cho phép mô hình hóa dữ liệu rời rạc và liên tục, cả có và không có giá trị 0.
Để đánh giá khoảng cách giữa giá trị quan sát và kỳ vọng, tác giả giới thiệu unit deviance và tổng deviance:
\[ D(y, \mu) = \sum w_i d(y_i, \mu_i), \quad D^* = \frac{D(y, \mu)}{\phi} \]
Với giả định thích hợp, \(D^*\) xấp xỉ phân phối \(\chi^2\) và được dùng trong kiểm định phù hợp mô hình (goodness-of-fit).
Hàm liên kết \(g(\cdot)\) là hàm đơn điệu, khả vi, nối kết \(\mu\) và \(\eta\). Một số hàm liên kết thường gặp:
GLM còn có thể chứa offset – những thành phần đã biết trong \(\eta\), dùng để hiệu chỉnh theo thời gian quan sát, dân số, hay khối lượng phơi nhiễm. Ví dụ, nếu số ca bệnh tỷ lệ với dân số, thì \(\log(P)\) có thể được đưa vào mô hình như một offset.
Một mô hình GLM đầy đủ được mô tả bởi:
\[ \text{glm}(\text{EDM}; \text{Link function}) \]
Ví dụ: mô hình nhị thức với liên kết logit là \(\text{glm}(\text{binomial}; \text{logit})\).
Chương kết thúc bằng việc so sánh GLM với phương pháp biến đổi dữ liệu truyền thống (như log, căn bậc hai…). GLM có ưu điểm vì mô hình hóa trực tiếp biến phản hồi gốc, không cần biến đổi nhân tạo, đồng thời đưa ra các diễn giải xác suất có ý nghĩa. Các biến đổi như \(\log(y)\), \(\sqrt{y}\) thường chỉ phù hợp trong điều kiện hạn chế, trong khi GLM cung cấp sự linh hoạt và chặt chẽ hơn về mặt lý thuyết.
Chương này trình bày cách ước lượng các tham số trong mô hình GLM, bao gồm các hệ số hồi quy \(\beta_j\) và (nếu có) tham số phương sai \(\phi\). Trọng tâm là cách sử dụng phương pháp hợp lý cực đại (MLE) và công thức tổng quát phù hợp với cấu trúc của GLM.
Khác với hồi quy tuyến tính thường, GLM giả định một phân phối xác suất cụ thể cho biến phản hồi, thuộc họ phân phối tán xạ mũ (EDM). Do đó, phương pháp ước lượng hợp lý cực đại (MLE) được sử dụng thay vì phương pháp bình phương tối thiểu.
Việc ước lượng \(\beta_j\) dựa trên việc cực đại hóa hàm log-likelihood. Tác giả trình bày:
Deviance là một đại lượng đo lường mức độ khác biệt giữa mô hình dự đoán và dữ liệu thực tế:
Sai số chuẩn của các tham số ước lượng được tính dựa trên ma trận thông tin Fisher. Khi sử dụng IRLS, ma trận hiệp phương sai của \(\hat{\beta}\) có dạng:
\[ \text{Var}(\hat{\beta}) = (X^T W X)^{-1} \phi \]
Trong đó:
Tất cả công thức trên được tổng quát hóa bằng đại số ma trận:
Dù GLM là mô hình phi tuyến (theo nghĩa phân phối và biến đổi liên kết), thì mỗi bước lặp trong IRLS có thể được xem như một bước hồi quy tuyến tính có trọng số. Nhờ đó:
glm()
và
summary()
.Tham số \(\phi\) cần được biết để thực hiện kiểm định giả thuyết và tính khoảng tin cậy. Chương trình trình bày bốn phương pháp ước lượng:
Mỗi phương pháp có ưu điểm và hạn chế riêng, tuỳ loại phân phối (ví dụ: với Poisson và Binomial thì \(\phi = 1\) và không cần ước lượng).
Phần này hướng dẫn sử dụng hàm glm()
trong R để ước
lượng GLM:
glm(formula, family, data)
binomial
,
poisson
, Gamma
, quasipoisson
,
gaussian
,…summary()
, deviance()
,
residuals()
… giúp kiểm tra kết quả ước lượng.Chương này tập trung vào các phương pháp suy luận thống kê trong GLM, đặc biệt là các kiểm định giả thuyết, khoảng tin cậy, kiểm định độ phù hợp và lựa chọn mô hình. Nội dung được tổ chức theo việc biết hoặc không biết tham số phương sai \(\phi\), và sử dụng ba loại kiểm định: Wald, Score, và Likelihood Ratio.
Chương mở đầu bằng việc hệ thống lại ba loại kiểm định thống kê đã được giới thiệu trong chương 4: Wald, score, và likelihood ratio. Những phương pháp này được triển khai cụ thể trong ngữ cảnh GLM với \(\phi\) biết (phần 7.2–7.5) và \(\phi\) không biết (phần 7.6). Ngoài ra, còn trình bày các kiểm định độ phù hợp (goodness-of-fit), so sánh các loại kiểm định, lựa chọn mô hình không lồng nhau, và tự động hóa quá trình chọn mô hình.
Wald test: Dùng để kiểm định hệ số hồi quy riêng lẻ \(\beta_j\). Khi \(n\) đủ lớn, ước lượng \(\hat{\beta}_j\) gần đúng theo phân phối chuẩn, nên thống kê Wald được dùng để kiểm tra \(H_0: \beta_j = 0\).
Khoảng tin cậy: Được xây dựng từ Wald statistic, với khoảng tin cậy cho \(\mu\) (trung bình của \(y\)) tính bằng cách chuyển đổi ngược hàm liên kết từ khoảng tin cậy của \(\eta\).
Likelihood Ratio Test: Dùng để so sánh hai mô hình lồng nhau, dựa trên chênh lệch log-likelihood. Với \(\phi\) biết, thống kê tuân theo phân phối \(\chi^2\).
Bảng phân tích độ lệch (Analysis of Deviance Table): So sánh chuỗi các mô hình lồng nhau.
Score test: Dựa trên đạo hàm của log-likelihood tại giá trị ước lượng ban đầu, hữu ích khi chưa ước lượng được toàn bộ mô hình.
Các kiểm định trên đều dựa vào giả định phân phối tiệm cận (asymptotic distribution), nghĩa là đúng khi kích thước mẫu đủ lớn. Với mẫu nhỏ, các kết quả có thể không chính xác.
Tương tự phần 7.2 nhưng cần ước lượng \(\phi\), nên các kiểm định sử dụng phân phối khác:
step()
.summary()
, anova()
,
confint()
, glm.scoretest()
hỗ trợ phân tích
suy luận thống kê cho GLM.Chương này trình bày các công cụ để phát hiện vi phạm giả định trong mô hình GLM, và các biện pháp khắc phục tương ứng. Cấu trúc chương gồm: xác định các giả định, phân tích phần dư, đánh giá ảnh hưởng đòn bẩy (leverage), kiểm tra sự phù hợp mô hình, xác định điểm ngoại lệ và điểm ảnh hưởng, cũng như giới thiệu quasi-likelihood và collinearity.
Các giả định cơ bản của GLM gồm:
Kiểm tra các giả định này giúp đánh giá độ tin cậy và độ phù hợp của mô hình với dữ liệu thực tế.
GLM không thể sử dụng phần dư phản hồi (response residuals) như trong hồi quy tuyến tính. Thay vào đó, ba loại phần dư chính được sử dụng:
Sử dụng biểu đồ phần dư là phương pháp chính:
Chương kết thúc bằng một ví dụ áp dụng vào bộ dữ liệu thực và các
lệnh R cụ thể để kiểm tra mô hình như plot()
,
resid()
, termplot()
, qresid()
,
scatter.smooth()
, giúp trực quan hóa và kiểm tra các giả
định của GLM trong thực tế.
Chương này đi sâu vào ứng dụng GLM với phân phối nhị thức (binomial), một trong những dạng GLM được sử dụng phổ biến nhất. Nó đặc biệt phù hợp để mô hình hóa dữ liệu tỷ lệ như xác suất thành công/thất bại, tỷ lệ mắc bệnh, tỷ lệ phản hồi khảo sát…
Binomial GLMs được dùng khi biến phản hồi là tỷ lệ giữa số lần “thành công” và tổng số thử. Ví dụ: số cử tri ủng hộ trong tổng số người được hỏi. Phân phối nhị thức được giới thiệu như một trường hợp đặc biệt của họ EDM (Exponential Dispersion Models) trong Chương 5.
Một quan sát \(y_i = \frac{s_i}{m_i}\) là tỷ lệ thành công trên \(m_i\) thử nghiệm. Trong binomial GLM:
Các hàm liên kết phổ biến:
Logit được ưu tiên do dễ diễn giải thông qua odds và odds ratio:
Overdispersion xảy ra khi phương sai thực tế lớn hơn phương sai giả định:
Wald test có thể thất bại trong mô hình nhị thức nếu một số hệ số hồi quy có xu hướng tới ±∞. Trong các trường hợp như vậy, nên sử dụng kiểm định Likelihood Ratio hoặc Score test.
Với dữ liệu nhị phân (mỗi dòng là một cá thể, m = 1), kiểm định độ phù hợp như deviance test không còn ý nghĩa vì deviance luôn bằng 0 hoặc nhỏ – không đủ thông tin để đánh giá phù hợp.
Trình bày ví dụ thực tế với dữ liệu sinh học và dữ liệu sinh thái.
Hướng dẫn chi tiết cách sử dụng glm(family=binomial)
trong R:
weights = m
cbind(success, failure)
Chương này trình bày các mô hình GLM phù hợp với dữ liệu đếm – thường là số lượng sự kiện như số ca bệnh, số lỗi kỹ thuật, số phản hồi khảo sát. Đây là một trong những ứng dụng quan trọng nhất của GLM trong thực tế.
Dữ liệu đếm phát sinh rất thường xuyên: số bệnh nhân, lỗi sản phẩm, vụ tai nạn, v.v… Mô hình phù hợp nhất thường là Poisson GLM, nhưng trong trường hợp phương sai lớn hơn kỳ vọng (gọi là overdispersion), ta cần tới mô hình Negative Binomial GLM hoặc Quasi-Poisson.
Phân phối Poisson: \(P(y; \mu) = \frac{e^{-\mu} \mu^y}{y!}\)
Kỳ vọng: \(E(y) = \mu\); Phương sai: \(\text{Var}(y) = \mu\)
Link function: phổ biến nhất là log, vì đảm bảo \(\mu > 0\) và diễn giải hệ số dễ dàng (hiệu ứng nhân).
Mô hình:
\[ \log(\mu) = \beta_0 + \beta_1 x_1 + \ldots + \beta_p x_p \]
→ Hệ số \(\beta_j\) biểu thị thay đổi log-count khi \(x_j\) tăng 1 đơn vị.
Khi đếm số sự kiện trên một đơn vị thời gian, không gian hay dân số (ví dụ: số ca ung thư trên 100.000 dân), cần thêm offset:
\[ \log(\mu) = \log(\text{exposure}) + \text{linear predictor} \]
→ Offset là thành phần đã biết trước và không được ước lượng.
Nếu \(\text{Var}(y) > \mu\), Poisson không còn phù hợp. Phát hiện qua deviance và Pearson statistic cao hơn bậc tự do.
glm.nb()
trong R từ gói
MASS.Chương trình bày ví dụ về số ca ung thư theo giới và loại bệnh ở Úc, và so sánh ba mô hình: Poisson, Quasi-Poisson, Negative Binomial. Qua đó minh họa sự khác biệt giữa kết quả ước lượng, độ phù hợp và phần dư.
glm(y ~ x, family=poisson)
glm(y ~ x, family=quasipoisson)
glm.nb(y ~ x)
từ gói MASS.summary()
, anova()
,
predict()
giúp kiểm tra mô hình.gl()
để tạo biến phân loại đều đặn cho
bảng dữ liệu.Chương này đề cập đến mô hình hóa dữ liệu liên tục, dương và có phương sai tăng theo kỳ vọng, một đặc điểm thường thấy trong thực tế. Hai mô hình được khai thác là Gamma GLM và Inverse Gaussian GLM, đều thuộc họ phân phối tán xạ mũ (EDMs).
Các biến liên tục dương như thời gian sống, chi phí, nồng độ hóa học… thường có phân phối lệch phải và phương sai tăng theo kỳ vọng. Mô hình GLM phù hợp cho loại dữ liệu này là:
Gamma thường được sử dụng để mô hình thời gian giữa các sự kiện xảy ra ngẫu nhiên theo Poisson. Ví dụ: thời gian chờ đợi giữa 10 sự kiện đầu tiên của một chuỗi ngẫu nhiên sẽ có phân phối Gamma.
Hàm deviance đơn vị:
\[ d(y, \mu) = 2 \left( -\log\left(\frac{y}{\mu}\right) + \frac{y - \mu}{\mu} \right) \]
Canonical link là inverse \(\eta = 1/\mu\), nhưng liên kết log thường được dùng để đảm bảo \(\mu > 0\) và dễ diễn giải các hiệu ứng nhân.
Dùng khi dữ liệu lệch mạnh hơn so với Gamma. Có mối liên hệ với thời gian lần đầu vượt ngưỡng trong chuyển động Brown.
Hàm phương sai: \(V(\mu) = \mu^3\)
Hàm deviance đơn vị:
\[ d(y, \mu) = \frac{(y - \mu)^2}{y \mu^2} \]
Canonical link: \(\eta = 1/\mu^2\), nhưng log và inverse cũng được dùng. Deviance trong mô hình Inverse Gaussian có phân phối chính xác là \(\chi^2\) nhờ phép xấp xỉ saddlepoint.
Cả hai phân phối đều hỗ trợ các liên kết:
Lựa chọn hàm liên kết phù hợp giúp mô hình biểu diễn tốt hơn mối quan hệ giữa biến giải thích và phản hồi.
Trong cả hai, deviance tuân theo phân phối \(\chi^2_{n - p'}\) nếu giả định phân phối phù hợp và \(\phi\) nhỏ.
glm(formula, family=Gamma(link="..."))
glm(formula, family=inverse.gaussian(link="..."))
Cả hai hỗ trợ các hàm log
, identity
,
inverse
, và 1/mu^2
(chỉ cho Inverse Gaussian).
Chú ý chữ G viết hoa trong Gamma vì
gamma()
là hàm khác trong R.
Chương này giới thiệu Tweedie GLMs, là một họ phân phối tổng quát bao gồm nhiều mô hình quen thuộc như: phân phối chuẩn (Normal), Poisson, Gamma, và Inverse Gaussian. Tweedie GLMs đặc biệt hữu ích trong việc mô hình hóa các dữ liệu liên tục dương, bao gồm cả các giá trị bằng 0 (zero-inflated), như trong bảo hiểm, lượng mưa, thời gian sống, chi phí…
Tweedie GLMs là một lớp mở rộng của EDM (exponential dispersion models), trong đó hàm phương sai có dạng:
\[ V(\mu) = \mu^\xi \]
với chỉ số ξ (gọi là Tweedie index parameter) đóng vai trò xác định loại phân phối.
Tweedie với \(ξ ≥ 2\) mô hình hóa dữ liệu liên tục dương, là trường hợp tổng quát của Gamma và Inverse Gaussian.
Với \(1 < ξ < 2\), mô hình này cho phép giá trị \(y = 0\) có xác suất dương → phù hợp với dữ liệu có giá trị bằng 0 thực sự như lượng mưa hàng tháng, dữ liệu bảo hiểm (khi không xảy ra tổn thất).
Tweedie GLMs được định nghĩa bởi hàm liên kết (thường là log) và tham số ξ. Ta có thể viết mô hình:
\[ \log(\mu) = \beta_0 + \beta_1 x_1 + \dots + \beta_p x_p \]
Do ξ không xác định trước, cần ước lượng từ dữ liệu. Một cách đơn
giản là chia dữ liệu thành nhóm, tính trung bình và phương sai, sau đó
vẽ đồ thị log–log. Phương pháp chính xác hơn là sử dụng hàm
tweedie.profile()
trong R để tìm giá trị ξ tối ưu
theo log-likelihood.
Sau khi xác định ξ, có thể dùng hàm glm()
trong R (hoặc
hàm mở rộng từ gói statmod
) để ước lượng mô hình. Tham số
phân tán \(φ\) thường được ước lượng
bằng phương pháp Pearson hoặc MLE tùy trường hợp.
Case Study 1: Dữ liệu thời gian sống của động vật dưới tác động của các chất độc và điều trị khác nhau. Mô hình Tweedie GLM được áp dụng thay cho Gamma khi dữ liệu quá lệch.
Case Study 2: Dữ liệu lượng mưa hàng tháng có rất nhiều tháng không có mưa (tức \(y = 0\)). Mô hình Tweedie với \(1 < ξ < 2\) là phù hợp hơn bất kỳ mô hình truyền thống nào.
**tweedie**
và
**statmod**
.tweedie.profile()
để ước lượng ξ.glm(formula, family=tweedie(var.power, link.power))
để khớp
mô hình.AICtweedie()
nếu muốn
so sánh mô hình.Tweedie GLMs là công cụ mạnh mẽ và linh hoạt để mô hình hóa nhiều loại dữ liệu phức tạp, đặc biệt là khi:
Chương 13 không cung cấp lý thuyết mới mà tập trung vào các bài tập nâng cao và thực hành tổng hợp, không giới hạn trong từng chương cụ thể như trước đó. Đây là tập hợp các bài toán thực tế, đa dạng về lĩnh vực và độ khó, nhằm:
Các bài tập trong chương bao gồm:
Các bài tập đa dạng về:
Thông qua các bài tập mở rộng này, người học:
Chương này không có lý thuyết mà chỉ liệt kê các bài tập. Tuy nhiên, sách có phần Selected Solutions ở cuối, cung cấp đáp án được chọn lọc từ từng chương (trong đó có cả chương 13), nhằm giúp người học tự đối chiếu kết quả và hiểu sâu hơn quy trình phân tích.
Phân tích thống kê mô tả trên bộ dữ liệu Supermarket Transactions. Việc thống kê mô tả giúp hiểu rõ hơn về cấu trúc dữ liệu, sự phân bố của từng biến, cũng như những đặc điểm nổi bật trong hành vi tiêu dùng.
Bộ dữ liệu có 14,059 quan sát và 16 biến gồm các biến định tính và định lượng liên quan đến các giao dịch siêu thị, bao gồm các thông tin về khách hàng, sản phẩm và giao dịch.
Mục tiêu là mô tả đặc điểm của các biến này nhằm hiểu tổng quan về dữ liệu trước khi phân tích sâu hơn.
Các biến trong bộ dữ liệu bao gồm:
names(data)
## NULL
Phân loại biến:
Tên biến | Tên tiếng Việt | Giải thích |
---|---|---|
Gender | Giới tính | Nam hoặc Nữ |
MaritalStatus | Tình trạng hôn nhân | Độc thân, Đã kết hôn, v.v. |
Homeowner | Chủ sở hữu nhà | Có hoặc Không sở hữu nhà |
City | Thành phố | Tên thành phố khách hàng sinh sống |
StateorProvince | Bang/Tỉnh | Tên tỉnh hoặc bang |
Country | Quốc gia | Tên quốc gia |
ProductFamily | Nhóm sản phẩm | Nhóm sản phẩm lớn |
ProductDepartment | Bộ phận sản phẩm | Phân nhóm sản phẩm chi tiết hơn |
ProductCategory | Loại sản phẩm | Loại sản phẩm cụ thể |
Tên biến | Tên tiếng Việt | Giải thích |
---|---|---|
Children | Số con | Số lượng con của khách hàng |
AnnualIncome | Thu nhập hàng năm | Đơn vị tiền tệ (USD hoặc VND) |
UnitsSold | Số lượng đã bán | Số sản phẩm được bán |
Revenue | Doanh thu | Doanh thu từ giao dịch |
Tên biến | Tên tiếng Việt | Giải thích |
---|---|---|
X | Cột phụ | Có thể là tên dòng/tự tăng, không cần thiết |
PurchaseDate | Ngày mua hàng | Ngày giao dịch – có thể dùng phân tích theo thời gian |
CustomerID | Mã khách hàng | Mã định danh khách – không mang ý nghĩa thống kê |
# Đọc dữ liệu
data <- read.csv("/Users/hotranhongnga/Downloads/UFM/HK2-2025/Phân tích dữ liệu định tính/NV1 - Supermarket Transactions.csv")
# Xem tổng quan
library(skimr)
skim(data)
Name | data |
Number of rows | 14059 |
Number of columns | 16 |
_______________________ | |
Column type frequency: | |
character | 11 |
numeric | 5 |
________________________ | |
Group variables | None |
Variable type: character
skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
---|---|---|---|---|---|---|---|
PurchaseDate | 0 | 1 | 10 | 10 | 0 | 742 | 0 |
Gender | 0 | 1 | 1 | 1 | 0 | 2 | 0 |
MaritalStatus | 0 | 1 | 1 | 1 | 0 | 2 | 0 |
Homeowner | 0 | 1 | 1 | 1 | 0 | 2 | 0 |
AnnualIncome | 0 | 1 | 7 | 13 | 0 | 8 | 0 |
City | 0 | 1 | 5 | 13 | 0 | 23 | 0 |
StateorProvince | 0 | 1 | 2 | 9 | 0 | 10 | 0 |
Country | 0 | 1 | 3 | 6 | 0 | 3 | 0 |
ProductFamily | 0 | 1 | 4 | 14 | 0 | 3 | 0 |
ProductDepartment | 0 | 1 | 4 | 19 | 0 | 22 | 0 |
ProductCategory | 0 | 1 | 4 | 20 | 0 | 45 | 0 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
X | 0 | 1 | 7030.00 | 4058.63 | 1.00 | 3515.50 | 7030.00 | 10544.50 | 14059.0 | ▇▇▇▇▇ |
CustomerID | 0 | 1 | 5116.90 | 2920.76 | 3.00 | 2549.00 | 5060.00 | 7633.00 | 10280.0 | ▇▇▇▇▇ |
Children | 0 | 1 | 2.53 | 1.49 | 0.00 | 1.00 | 3.00 | 4.00 | 5.0 | ▇▆▆▆▃ |
UnitsSold | 0 | 1 | 4.08 | 1.17 | 1.00 | 3.00 | 4.00 | 5.00 | 8.0 | ▁▃▇▂▁ |
Revenue | 0 | 1 | 13.00 | 8.22 | 0.53 | 6.84 | 11.25 | 17.37 | 56.7 | ▇▅▂▁▁ |
Để có cái nhìn toàn diện hơn về cấu trúc của bộ dữ liệu, ta tiến hành kiểm tra các đặc điểm cơ bản như số lượng biến, kiểu dữ liệu tương ứng của từng biến, cùng với một số thông tin tổng quan nhằm hỗ trợ cho quá trình phân tích tiếp theo.
str(data)
## 'data.frame': 14059 obs. of 16 variables:
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ PurchaseDate : chr "2007-12-18" "2007-12-20" "2007-12-21" "2007-12-21" ...
## $ CustomerID : int 7223 7841 8374 9619 1900 6696 9673 354 1293 7938 ...
## $ Gender : chr "F" "M" "F" "M" ...
## $ MaritalStatus : chr "S" "M" "M" "M" ...
## $ Homeowner : chr "Y" "Y" "N" "Y" ...
## $ Children : int 2 5 2 3 3 3 2 2 3 1 ...
## $ AnnualIncome : chr "$30K - $50K" "$70K - $90K" "$50K - $70K" "$30K - $50K" ...
## $ City : chr "Los Angeles" "Los Angeles" "Bremerton" "Portland" ...
## $ StateorProvince : chr "CA" "CA" "WA" "OR" ...
## $ Country : chr "USA" "USA" "USA" "USA" ...
## $ ProductFamily : chr "Food" "Food" "Food" "Food" ...
## $ ProductDepartment: chr "Snack Foods" "Produce" "Snack Foods" "Snacks" ...
## $ ProductCategory : chr "Snack Foods" "Vegetables" "Snack Foods" "Candy" ...
## $ UnitsSold : int 5 5 3 4 4 3 4 6 1 2 ...
## $ Revenue : num 27.38 14.9 5.52 4.44 14 ...
Trong quá trình phân tích dữ liệu, việc xác định đúng loại của từng biến là vô cùng quan trọng. Đặc biệt đối với các biến định tính (còn gọi là biến phân loại), cần được chuyển sang định dạng factor trong R để hệ thống nhận diện rõ đây là những biến mang tính phân nhóm.
# Chuyển các biến định tính về dạng factor
data$Gender <- as.factor(data$Gender)
data$MaritalStatus <- as.factor(data$MaritalStatus)
data$Homeowner <- as.factor(data$Homeowner)
data$City <- as.factor(data$City)
data$StateorProvince <- as.factor(data$StateorProvince)
data$Country <- as.factor(data$Country)
data$ProductFamily <- as.factor(data$ProductFamily)
data$ProductDepartment <- as.factor(data$ProductDepartment)
data$ProductCategory <- as.factor(data$ProductCategory)
str(data)
## 'data.frame': 14059 obs. of 16 variables:
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ PurchaseDate : chr "2007-12-18" "2007-12-20" "2007-12-21" "2007-12-21" ...
## $ CustomerID : int 7223 7841 8374 9619 1900 6696 9673 354 1293 7938 ...
## $ Gender : Factor w/ 2 levels "F","M": 1 2 1 2 1 1 2 1 2 2 ...
## $ MaritalStatus : Factor w/ 2 levels "M","S": 2 1 1 1 2 1 2 1 1 2 ...
## $ Homeowner : Factor w/ 2 levels "N","Y": 2 2 1 2 2 2 2 2 2 1 ...
## $ Children : int 2 5 2 3 3 3 2 2 3 1 ...
## $ AnnualIncome : chr "$30K - $50K" "$70K - $90K" "$50K - $70K" "$30K - $50K" ...
## $ City : Factor w/ 23 levels "Acapulco","Bellingham",..: 8 8 4 12 3 3 13 23 2 15 ...
## $ StateorProvince : Factor w/ 10 levels "BC","CA","DF",..: 2 2 8 6 2 2 6 8 8 2 ...
## $ Country : Factor w/ 3 levels "Canada","Mexico",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ ProductFamily : Factor w/ 3 levels "Drink","Food",..: 2 2 2 2 1 2 2 2 3 3 ...
## $ ProductDepartment: Factor w/ 22 levels "Alcoholic Beverages",..: 20 18 20 21 4 11 13 6 15 14 ...
## $ ProductCategory : Factor w/ 45 levels "Baking Goods",..: 42 45 42 7 15 41 5 13 16 35 ...
## $ UnitsSold : int 5 5 3 4 4 3 4 6 1 2 ...
## $ Revenue : num 27.38 14.9 5.52 4.44 14 ...
Sau khi chuyển các biến định tính sang dạng factor, tiến hành thống kê mô tả các biến này. Việc thống kê mô tả giúp chúng ta hiểu rõ hơn về cơ cấu của từng biến phân loại trong tập dữ liệu, chẳng hạn như tần suất xuất hiện của từng nhóm, tỷ lệ phần trăm và mức độ phổ biến của các nhóm trong từng biến.
Thống kê mô tả cho các biến định tính sẽ tập trung vào các biến sau:
# Các thư viện cần thiết
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
# Hàm thống kê tần số và tỷ lệ phần trăm
describe_factor <- function(x) {
tab <- table(x)
prop <- prop.table(tab)
result <- data.frame(
Mức = names(tab),
Tần_số = as.vector(tab),
Tỷ_lệ = round(100 * as.vector(prop), 2)
)
return(result)
}
# Thống kê mô tả cho từng biến định tính
describe_factor(data$Gender)
describe_factor(data$MaritalStatus)
describe_factor(data$Homeowner)
describe_factor(data$City)
describe_factor(data$StateorProvince)
describe_factor(data$Country)
describe_factor(data$ProductFamily)
describe_factor(data$ProductDepartment)
describe_factor(data$ProductCategory)
Nhận xét về từng biến định tính
print(describe_factor(data$Gender))
## Mức Tần_số Tỷ_lệ
## 1 F 7170 51
## 2 M 6889 49
Nhận xét: Số lượng nữ (F) là 7170, chiếm 51% tổng số, cao hơn một chút so với nam (M) là 6889, chiếm 49%. Tỷ lệ gần như cân bằng, thể hiện phân bố giới tính khá đồng đều trong tập dữ liệu.
print(describe_factor(data$MaritalStatus))
## Mức Tần_số Tỷ_lệ
## 1 M 6866 48.84
## 2 S 7193 51.16
Nhận xét: Bảng dữ liệu gồm 2 nhóm M và S với tổng số 14,059 quan sát. Nhóm S chiếm 51.16% trong khi nhóm M chiếm 48.84%, cho thấy phân bố giữa hai nhóm khá cân bằng nhưng nhóm S có tỷ lệ cao hơn một chút. Sự chênh lệch nhỏ này có thể chưa rõ ràng về mặt ý nghĩa thống kê, tuy nhiên thể hiện rằng nhóm S có phần nhỉnh hơn về số lượng trong tổng thể mẫu.
print(describe_factor(data$Homeowner))
## Mức Tần_số Tỷ_lệ
## 1 N 5615 39.94
## 2 Y 8444 60.06
Nhận xét: Bảng dữ liệu gồm hai nhóm N và Y với tổng số 14,059 quan sát. Nhóm Y chiếm tỷ lệ lớn hơn, khoảng 60.06%, trong khi nhóm N chỉ chiếm 39.94%. Sự chênh lệch này cho thấy nhóm Y chiếm ưu thế rõ rệt trong tổng thể, điều này có thể phản ánh đặc điểm hoặc xu hướng nổi bật liên quan đến biến phân loại trong nghiên cứu hoặc dữ liệu thu thập được.
print(describe_factor(data$City))
## Mức Tần_số Tỷ_lệ
## 1 Acapulco 383 2.72
## 2 Bellingham 143 1.02
## 3 Beverly Hills 811 5.77
## 4 Bremerton 834 5.93
## 5 Camacho 452 3.22
## 6 Guadalajara 75 0.53
## 7 Hidalgo 845 6.01
## 8 Los Angeles 926 6.59
## 9 Merida 654 4.65
## 10 Mexico City 194 1.38
## 11 Orizaba 464 3.30
## 12 Portland 876 6.23
## 13 Salem 1386 9.86
## 14 San Andres 621 4.42
## 15 San Diego 866 6.16
## 16 San Francisco 130 0.92
## 17 Seattle 922 6.56
## 18 Spokane 875 6.22
## 19 Tacoma 1257 8.94
## 20 Vancouver 633 4.50
## 21 Victoria 176 1.25
## 22 Walla Walla 160 1.14
## 23 Yakima 376 2.67
Nhận xét: Bảng dữ liệu gồm 22 thành phố với tổng số quan sát là 14,059. Trong đó, Salem có số lượng lớn nhất (1,386 người, chiếm 9.86%), tiếp theo là Tacoma (1,257 người, 8.94%) và Los Angeles (926 người, 6.59%). Ngược lại, Guadalajara, San Francisco, và Mexico City có tỷ lệ thấp nhất, dưới 1.5%. Nhìn chung, dữ liệu phân bố khá đa dạng giữa các thành phố, tuy nhiên một số thành phố như Salem, Tacoma và Portland chiếm tỷ lệ nổi bật hơn, cho thấy sự tập trung cao hơn về số lượng tại những khu vực này.
print(describe_factor(data$StateorProvince))
## Mức Tần_số Tỷ_lệ
## 1 BC 809 5.75
## 2 CA 2733 19.44
## 3 DF 815 5.80
## 4 Guerrero 383 2.72
## 5 Jalisco 75 0.53
## 6 OR 2262 16.09
## 7 Veracruz 464 3.30
## 8 WA 4567 32.48
## 9 Yucatan 654 4.65
## 10 Zacatecas 1297 9.23
Nhận xét: Bảng dữ liệu gồm 10 bang/tỉnh với tổng số quan sát là 14,059. Bang WA chiếm tỷ lệ cao nhất với 4,567 quan sát (32.48%), tiếp theo là CA (19.44%) và OR (16.09%). Trong khi đó, các bang như Jalisco (0.53%) và Guerrero (2.72%) có tỷ lệ thấp hơn đáng kể. Dữ liệu cho thấy sự phân bố không đồng đều, với một số bang tập trung lượng lớn người tham gia, phản ánh sự chênh lệch về quy mô dân cư hoặc mức độ tham gia giữa các khu vực.
print(describe_factor(data$Country))
## Mức Tần_số Tỷ_lệ
## 1 Canada 809 5.75
## 2 Mexico 3688 26.23
## 3 USA 9562 68.01
Nhận xét: Bảng dữ liệu cho thấy sự phân bố theo quốc gia với tổng số 14,059 quan sát. Hoa Kỳ (USA) chiếm tỷ lệ áp đảo với 68.01%, tiếp theo là Mexico với 26.23%, trong khi Canada chỉ chiếm 5.75%. Điều này cho thấy phần lớn dữ liệu tập trung tại Hoa Kỳ, phản ánh sự lệch về phân bố quốc gia trong tổng thể mẫu khảo sát hoặc dữ liệu thu thập được.
print(describe_factor(data$ProductFamily))
## Mức Tần_số Tỷ_lệ
## 1 Drink 1250 8.89
## 2 Food 10153 72.22
## 3 Non-Consumable 2656 18.89
Nhận xét: Bảng dữ liệu thể hiện sự phân bố theo loại sản phẩm với tổng số 14,059 quan sát. Nhóm Food (Thực phẩm) chiếm tỷ lệ lớn nhất với 72.22%, tiếp theo là Non-Consumable (Không tiêu dùng ngay) với 18.89%, và Drink (Đồ uống) chiếm tỷ lệ thấp nhất, chỉ 8.89%. Sự chênh lệch rõ rệt này cho thấy thực phẩm là nhóm sản phẩm được mua nhiều nhất trong dữ liệu, phản ánh nhu cầu tiêu dùng thiết yếu và thường xuyên của khách hàng.
print(describe_factor(data$ProductDepartment))
## Mức Tần_số Tỷ_lệ
## 1 Alcoholic Beverages 356 2.53
## 2 Baked Goods 425 3.02
## 3 Baking Goods 1072 7.63
## 4 Beverages 680 4.84
## 5 Breakfast Foods 188 1.34
## 6 Canned Foods 977 6.95
## 7 Canned Products 109 0.78
## 8 Carousel 59 0.42
## 9 Checkout 82 0.58
## 10 Dairy 903 6.42
## 11 Deli 699 4.97
## 12 Eggs 198 1.41
## 13 Frozen Foods 1382 9.83
## 14 Health and Hygiene 893 6.35
## 15 Household 1420 10.10
## 16 Meat 89 0.63
## 17 Periodicals 202 1.44
## 18 Produce 1994 14.18
## 19 Seafood 102 0.73
## 20 Snack Foods 1600 11.38
## 21 Snacks 352 2.50
## 22 Starchy Foods 277 1.97
Nhận xét: Bảng dữ liệu cho thấy sự phân bố số lượng giao dịch theo từng phòng ban sản phẩm, trong đó nhóm Produce chiếm tỷ lệ cao nhất với 14.18%, tiếp theo là Snack Foods (11.38%) và Household (10.10%). Các phòng ban như Frozen Foods, Dairy, và Canned Foods cũng ghi nhận tỷ lệ đáng kể, cho thấy mức độ tiêu thụ thường xuyên. Ngược lại, những nhóm như Carousel, Meat, và Seafood có tỷ lệ rất thấp (dưới 1%), phản ánh nhu cầu hạn chế hoặc mức độ tiếp cận thấp hơn. Sự phân bố này phần nào phản ánh thói quen tiêu dùng và ưu tiên mua sắm các sản phẩm thiết yếu của khách hàng.
print(describe_factor(data$ProductCategory))
## Mức Tần_số Tỷ_lệ
## 1 Baking Goods 484 3.44
## 2 Bathroom Products 365 2.60
## 3 Beer and Wine 356 2.53
## 4 Bread 425 3.02
## 5 Breakfast Foods 417 2.97
## 6 Candles 45 0.32
## 7 Candy 352 2.50
## 8 Canned Anchovies 44 0.31
## 9 Canned Clams 53 0.38
## 10 Canned Oysters 35 0.25
## 11 Canned Sardines 40 0.28
## 12 Canned Shrimp 38 0.27
## 13 Canned Soup 404 2.87
## 14 Canned Tuna 87 0.62
## 15 Carbonated Beverages 154 1.10
## 16 Cleaning Supplies 189 1.34
## 17 Cold Remedies 93 0.66
## 18 Dairy 903 6.42
## 19 Decongestants 85 0.60
## 20 Drinks 135 0.96
## 21 Eggs 198 1.41
## 22 Electrical 355 2.53
## 23 Frozen Desserts 323 2.30
## 24 Frozen Entrees 118 0.84
## 25 Fruit 765 5.44
## 26 Hardware 129 0.92
## 27 Hot Beverages 226 1.61
## 28 Hygiene 197 1.40
## 29 Jams and Jellies 588 4.18
## 30 Kitchen Products 217 1.54
## 31 Magazines 202 1.44
## 32 Meat 761 5.41
## 33 Miscellaneous 42 0.30
## 34 Packaged Vegetables 48 0.34
## 35 Pain Relievers 192 1.37
## 36 Paper Products 345 2.45
## 37 Pizza 194 1.38
## 38 Plastic Products 141 1.00
## 39 Pure Juice Beverages 165 1.17
## 40 Seafood 102 0.73
## 41 Side Dishes 153 1.09
## 42 Snack Foods 1600 11.38
## 43 Specialty 289 2.06
## 44 Starchy Foods 277 1.97
## 45 Vegetables 1728 12.29
Nhận xét: Dựa trên bảng thống kê, có thể thấy rằng hai danh mục sản phẩm chiếm tỷ trọng lớn nhất trong tổng số lượng bán là Rau củ (Vegetables) với 1.728 sản phẩm (chiếm 12.29%) và Đồ ăn nhẹ (Snack Foods) với 1.600 sản phẩm (chiếm 11.38%), cho thấy đây là những mặt hàng được tiêu thụ nhiều nhất. Ngược lại, một số danh mục như Nến (Candles), Cá mòi đóng hộp (Canned Sardines) hay Sò điệp đóng hộp (Canned Oysters) có tỷ lệ rất thấp, dưới 0.4%, cho thấy mức độ tiêu thụ kém và có thể ít phổ biến trong giỏ hàng của khách. Sự phân bố này phản ánh xu hướng tiêu dùng tập trung mạnh vào các mặt hàng tươi sống và tiện lợi, đồng thời giúp doanh nghiệp xác định đâu là nhóm sản phẩm chủ lực và đâu là nhóm cần đánh giá lại hiệu quả kinh doanh.
Thống kê mô tả của các biến định tính
# Thư viện cần thiết
library(dplyr)
library(tidyr)
library(ggplot2)
# Lấy tên các biến định tính (kiểu factor hoặc character)
qual_vars <- names(data)[sapply(data, function(x) is.factor(x) || is.character(x))]
# Tạo bảng thống kê mô tả: Số lượng và Tỷ lệ %
qual_summary <- lapply(qual_vars, function(var) {
tab <- table(data[[var]])
prop <- prop.table(tab) * 100
df <- data.frame(
Variable = var,
Level = names(tab),
Count = as.vector(tab),
Percentage = round(as.vector(prop), 2)
)
return(df)
}) %>% bind_rows()
# Hiển thị bảng thống kê mô tả (bảng thứ nhất)
print(qual_summary)
## Variable Level Count Percentage
## 1 PurchaseDate 2007-12-18 1 0.01
## 2 PurchaseDate 2007-12-20 1 0.01
## 3 PurchaseDate 2007-12-21 2 0.01
## 4 PurchaseDate 2007-12-22 2 0.01
## 5 PurchaseDate 2007-12-23 1 0.01
## 6 PurchaseDate 2007-12-25 3 0.02
## 7 PurchaseDate 2007-12-26 4 0.03
## 8 PurchaseDate 2007-12-27 3 0.02
## 9 PurchaseDate 2007-12-28 3 0.02
## 10 PurchaseDate 2007-12-29 5 0.04
## 11 PurchaseDate 2007-12-30 4 0.03
## 12 PurchaseDate 2007-12-31 6 0.04
## 13 PurchaseDate 2008-01-01 6 0.04
## 14 PurchaseDate 2008-01-02 5 0.04
## 15 PurchaseDate 2008-01-03 2 0.01
## 16 PurchaseDate 2008-01-04 6 0.04
## 17 PurchaseDate 2008-01-05 7 0.05
## 18 PurchaseDate 2008-01-06 1 0.01
## 19 PurchaseDate 2008-01-07 5 0.04
## 20 PurchaseDate 2008-01-08 7 0.05
## 21 PurchaseDate 2008-01-09 6 0.04
## 22 PurchaseDate 2008-01-10 6 0.04
## 23 PurchaseDate 2008-01-11 3 0.02
## 24 PurchaseDate 2008-01-12 8 0.06
## 25 PurchaseDate 2008-01-13 8 0.06
## 26 PurchaseDate 2008-01-14 9 0.06
## 27 PurchaseDate 2008-01-15 10 0.07
## 28 PurchaseDate 2008-01-16 8 0.06
## 29 PurchaseDate 2008-01-17 10 0.07
## 30 PurchaseDate 2008-01-18 13 0.09
## 31 PurchaseDate 2008-01-19 14 0.10
## 32 PurchaseDate 2008-01-20 10 0.07
## 33 PurchaseDate 2008-01-21 3 0.02
## 34 PurchaseDate 2008-01-22 9 0.06
## 35 PurchaseDate 2008-01-23 16 0.11
## 36 PurchaseDate 2008-01-24 8 0.06
## 37 PurchaseDate 2008-01-25 5 0.04
## 38 PurchaseDate 2008-01-26 10 0.07
## 39 PurchaseDate 2008-01-27 18 0.13
## 40 PurchaseDate 2008-01-28 10 0.07
## 41 PurchaseDate 2008-01-29 9 0.06
## 42 PurchaseDate 2008-01-30 15 0.11
## 43 PurchaseDate 2008-01-31 11 0.08
## 44 PurchaseDate 2008-02-01 12 0.09
## 45 PurchaseDate 2008-02-02 23 0.16
## 46 PurchaseDate 2008-02-03 14 0.10
## 47 PurchaseDate 2008-02-04 11 0.08
## 48 PurchaseDate 2008-02-05 13 0.09
## 49 PurchaseDate 2008-02-06 11 0.08
## 50 PurchaseDate 2008-02-07 13 0.09
## 51 PurchaseDate 2008-02-08 12 0.09
## 52 PurchaseDate 2008-02-09 9 0.06
## 53 PurchaseDate 2008-02-10 8 0.06
## 54 PurchaseDate 2008-02-11 13 0.09
## 55 PurchaseDate 2008-02-12 11 0.08
## 56 PurchaseDate 2008-02-13 11 0.08
## 57 PurchaseDate 2008-02-14 10 0.07
## 58 PurchaseDate 2008-02-15 15 0.11
## 59 PurchaseDate 2008-02-16 14 0.10
## 60 PurchaseDate 2008-02-17 11 0.08
## 61 PurchaseDate 2008-02-18 12 0.09
## 62 PurchaseDate 2008-02-19 15 0.11
## 63 PurchaseDate 2008-02-20 8 0.06
## 64 PurchaseDate 2008-02-21 9 0.06
## 65 PurchaseDate 2008-02-22 12 0.09
## 66 PurchaseDate 2008-02-23 10 0.07
## 67 PurchaseDate 2008-02-24 16 0.11
## 68 PurchaseDate 2008-02-25 11 0.08
## 69 PurchaseDate 2008-02-26 7 0.05
## 70 PurchaseDate 2008-02-27 10 0.07
## 71 PurchaseDate 2008-02-28 17 0.12
## 72 PurchaseDate 2008-02-29 12 0.09
## 73 PurchaseDate 2008-03-01 13 0.09
## 74 PurchaseDate 2008-03-02 16 0.11
## 75 PurchaseDate 2008-03-03 17 0.12
## 76 PurchaseDate 2008-03-04 11 0.08
## 77 PurchaseDate 2008-03-05 15 0.11
## 78 PurchaseDate 2008-03-06 14 0.10
## 79 PurchaseDate 2008-03-07 11 0.08
## 80 PurchaseDate 2008-03-08 17 0.12
## 81 PurchaseDate 2008-03-09 16 0.11
## 82 PurchaseDate 2008-03-10 13 0.09
## 83 PurchaseDate 2008-03-11 13 0.09
## 84 PurchaseDate 2008-03-12 17 0.12
## 85 PurchaseDate 2008-03-13 20 0.14
## 86 PurchaseDate 2008-03-14 13 0.09
## 87 PurchaseDate 2008-03-15 11 0.08
## 88 PurchaseDate 2008-03-16 11 0.08
## 89 PurchaseDate 2008-03-17 13 0.09
## 90 PurchaseDate 2008-03-18 22 0.16
## 91 PurchaseDate 2008-03-19 20 0.14
## 92 PurchaseDate 2008-03-20 15 0.11
## 93 PurchaseDate 2008-03-21 11 0.08
## 94 PurchaseDate 2008-03-22 11 0.08
## 95 PurchaseDate 2008-03-23 12 0.09
## 96 PurchaseDate 2008-03-24 16 0.11
## 97 PurchaseDate 2008-03-25 15 0.11
## 98 PurchaseDate 2008-03-26 14 0.10
## 99 PurchaseDate 2008-03-27 21 0.15
## 100 PurchaseDate 2008-03-28 17 0.12
## 101 PurchaseDate 2008-03-29 17 0.12
## 102 PurchaseDate 2008-03-30 19 0.14
## 103 PurchaseDate 2008-03-31 11 0.08
## 104 PurchaseDate 2008-04-01 10 0.07
## 105 PurchaseDate 2008-04-02 14 0.10
## 106 PurchaseDate 2008-04-03 22 0.16
## 107 PurchaseDate 2008-04-04 11 0.08
## 108 PurchaseDate 2008-04-05 16 0.11
## 109 PurchaseDate 2008-04-06 12 0.09
## 110 PurchaseDate 2008-04-07 14 0.10
## 111 PurchaseDate 2008-04-08 10 0.07
## 112 PurchaseDate 2008-04-09 15 0.11
## 113 PurchaseDate 2008-04-10 14 0.10
## 114 PurchaseDate 2008-04-11 14 0.10
## 115 PurchaseDate 2008-04-12 16 0.11
## 116 PurchaseDate 2008-04-13 13 0.09
## 117 PurchaseDate 2008-04-14 21 0.15
## 118 PurchaseDate 2008-04-15 16 0.11
## 119 PurchaseDate 2008-04-16 14 0.10
## 120 PurchaseDate 2008-04-17 12 0.09
## 121 PurchaseDate 2008-04-18 17 0.12
## 122 PurchaseDate 2008-04-19 18 0.13
## 123 PurchaseDate 2008-04-20 14 0.10
## 124 PurchaseDate 2008-04-21 15 0.11
## 125 PurchaseDate 2008-04-22 14 0.10
## 126 PurchaseDate 2008-04-23 13 0.09
## 127 PurchaseDate 2008-04-24 11 0.08
## 128 PurchaseDate 2008-04-25 19 0.14
## 129 PurchaseDate 2008-04-26 9 0.06
## 130 PurchaseDate 2008-04-27 17 0.12
## 131 PurchaseDate 2008-04-28 12 0.09
## 132 PurchaseDate 2008-04-29 9 0.06
## 133 PurchaseDate 2008-04-30 11 0.08
## 134 PurchaseDate 2008-05-01 11 0.08
## 135 PurchaseDate 2008-05-02 16 0.11
## 136 PurchaseDate 2008-05-03 13 0.09
## 137 PurchaseDate 2008-05-04 22 0.16
## 138 PurchaseDate 2008-05-05 21 0.15
## 139 PurchaseDate 2008-05-06 14 0.10
## 140 PurchaseDate 2008-05-07 15 0.11
## 141 PurchaseDate 2008-05-08 8 0.06
## 142 PurchaseDate 2008-05-09 14 0.10
## 143 PurchaseDate 2008-05-10 11 0.08
## 144 PurchaseDate 2008-05-11 9 0.06
## 145 PurchaseDate 2008-05-12 16 0.11
## 146 PurchaseDate 2008-05-13 16 0.11
## 147 PurchaseDate 2008-05-14 5 0.04
## 148 PurchaseDate 2008-05-15 13 0.09
## 149 PurchaseDate 2008-05-16 11 0.08
## 150 PurchaseDate 2008-05-17 14 0.10
## 151 PurchaseDate 2008-05-18 7 0.05
## 152 PurchaseDate 2008-05-19 19 0.14
## 153 PurchaseDate 2008-05-20 14 0.10
## 154 PurchaseDate 2008-05-21 15 0.11
## 155 PurchaseDate 2008-05-22 13 0.09
## 156 PurchaseDate 2008-05-23 10 0.07
## 157 PurchaseDate 2008-05-24 10 0.07
## 158 PurchaseDate 2008-05-25 9 0.06
## 159 PurchaseDate 2008-05-26 19 0.14
## 160 PurchaseDate 2008-05-27 11 0.08
## 161 PurchaseDate 2008-05-28 10 0.07
## 162 PurchaseDate 2008-05-29 13 0.09
## 163 PurchaseDate 2008-05-30 17 0.12
## 164 PurchaseDate 2008-05-31 11 0.08
## 165 PurchaseDate 2008-06-01 13 0.09
## 166 PurchaseDate 2008-06-02 14 0.10
## 167 PurchaseDate 2008-06-03 11 0.08
## 168 PurchaseDate 2008-06-04 17 0.12
## 169 PurchaseDate 2008-06-05 10 0.07
## 170 PurchaseDate 2008-06-06 14 0.10
## 171 PurchaseDate 2008-06-07 8 0.06
## 172 PurchaseDate 2008-06-08 11 0.08
## 173 PurchaseDate 2008-06-09 10 0.07
## 174 PurchaseDate 2008-06-10 2 0.01
## 175 PurchaseDate 2008-06-11 15 0.11
## 176 PurchaseDate 2008-06-12 10 0.07
## 177 PurchaseDate 2008-06-13 7 0.05
## 178 PurchaseDate 2008-06-14 9 0.06
## 179 PurchaseDate 2008-06-15 11 0.08
## 180 PurchaseDate 2008-06-16 19 0.14
## 181 PurchaseDate 2008-06-17 4 0.03
## 182 PurchaseDate 2008-06-18 14 0.10
## 183 PurchaseDate 2008-06-19 9 0.06
## 184 PurchaseDate 2008-06-20 17 0.12
## 185 PurchaseDate 2008-06-21 18 0.13
## 186 PurchaseDate 2008-06-22 17 0.12
## 187 PurchaseDate 2008-06-23 4 0.03
## 188 PurchaseDate 2008-06-24 21 0.15
## 189 PurchaseDate 2008-06-25 13 0.09
## 190 PurchaseDate 2008-06-26 7 0.05
## 191 PurchaseDate 2008-06-27 9 0.06
## 192 PurchaseDate 2008-06-28 16 0.11
## 193 PurchaseDate 2008-06-29 18 0.13
## 194 PurchaseDate 2008-06-30 8 0.06
## 195 PurchaseDate 2008-07-01 8 0.06
## 196 PurchaseDate 2008-07-02 14 0.10
## 197 PurchaseDate 2008-07-03 10 0.07
## 198 PurchaseDate 2008-07-04 12 0.09
## 199 PurchaseDate 2008-07-05 8 0.06
## 200 PurchaseDate 2008-07-06 10 0.07
## 201 PurchaseDate 2008-07-07 8 0.06
## 202 PurchaseDate 2008-07-08 13 0.09
## 203 PurchaseDate 2008-07-09 8 0.06
## 204 PurchaseDate 2008-07-10 9 0.06
## 205 PurchaseDate 2008-07-11 21 0.15
## 206 PurchaseDate 2008-07-12 15 0.11
## 207 PurchaseDate 2008-07-13 10 0.07
## 208 PurchaseDate 2008-07-14 13 0.09
## 209 PurchaseDate 2008-07-15 13 0.09
## 210 PurchaseDate 2008-07-16 12 0.09
## 211 PurchaseDate 2008-07-17 26 0.18
## 212 PurchaseDate 2008-07-18 11 0.08
## 213 PurchaseDate 2008-07-19 11 0.08
## 214 PurchaseDate 2008-07-20 7 0.05
## 215 PurchaseDate 2008-07-21 11 0.08
## 216 PurchaseDate 2008-07-22 17 0.12
## 217 PurchaseDate 2008-07-23 8 0.06
## 218 PurchaseDate 2008-07-24 9 0.06
## 219 PurchaseDate 2008-07-25 13 0.09
## 220 PurchaseDate 2008-07-26 16 0.11
## 221 PurchaseDate 2008-07-27 10 0.07
## 222 PurchaseDate 2008-07-28 11 0.08
## 223 PurchaseDate 2008-07-29 11 0.08
## 224 PurchaseDate 2008-07-30 13 0.09
## 225 PurchaseDate 2008-07-31 12 0.09
## 226 PurchaseDate 2008-08-01 12 0.09
## 227 PurchaseDate 2008-08-02 15 0.11
## 228 PurchaseDate 2008-08-03 11 0.08
## 229 PurchaseDate 2008-08-04 13 0.09
## 230 PurchaseDate 2008-08-05 11 0.08
## 231 PurchaseDate 2008-08-06 14 0.10
## 232 PurchaseDate 2008-08-07 11 0.08
## 233 PurchaseDate 2008-08-08 16 0.11
## 234 PurchaseDate 2008-08-09 15 0.11
## 235 PurchaseDate 2008-08-10 12 0.09
## 236 PurchaseDate 2008-08-11 9 0.06
## 237 PurchaseDate 2008-08-12 19 0.14
## 238 PurchaseDate 2008-08-13 8 0.06
## 239 PurchaseDate 2008-08-14 7 0.05
## 240 PurchaseDate 2008-08-15 11 0.08
## 241 PurchaseDate 2008-08-16 16 0.11
## 242 PurchaseDate 2008-08-17 12 0.09
## 243 PurchaseDate 2008-08-18 7 0.05
## 244 PurchaseDate 2008-08-19 12 0.09
## 245 PurchaseDate 2008-08-20 18 0.13
## 246 PurchaseDate 2008-08-21 13 0.09
## 247 PurchaseDate 2008-08-22 15 0.11
## 248 PurchaseDate 2008-08-23 11 0.08
## 249 PurchaseDate 2008-08-24 13 0.09
## 250 PurchaseDate 2008-08-25 14 0.10
## 251 PurchaseDate 2008-08-26 11 0.08
## 252 PurchaseDate 2008-08-27 10 0.07
## 253 PurchaseDate 2008-08-28 9 0.06
## 254 PurchaseDate 2008-08-29 14 0.10
## 255 PurchaseDate 2008-08-30 8 0.06
## 256 PurchaseDate 2008-08-31 12 0.09
## 257 PurchaseDate 2008-09-01 10 0.07
## 258 PurchaseDate 2008-09-02 9 0.06
## 259 PurchaseDate 2008-09-03 12 0.09
## 260 PurchaseDate 2008-09-04 17 0.12
## 261 PurchaseDate 2008-09-05 12 0.09
## 262 PurchaseDate 2008-09-06 13 0.09
## 263 PurchaseDate 2008-09-07 12 0.09
## 264 PurchaseDate 2008-09-08 7 0.05
## 265 PurchaseDate 2008-09-09 13 0.09
## 266 PurchaseDate 2008-09-10 10 0.07
## 267 PurchaseDate 2008-09-11 21 0.15
## 268 PurchaseDate 2008-09-12 8 0.06
## 269 PurchaseDate 2008-09-13 15 0.11
## 270 PurchaseDate 2008-09-14 8 0.06
## 271 PurchaseDate 2008-09-15 13 0.09
## 272 PurchaseDate 2008-09-16 14 0.10
## 273 PurchaseDate 2008-09-17 10 0.07
## 274 PurchaseDate 2008-09-18 15 0.11
## 275 PurchaseDate 2008-09-19 17 0.12
## 276 PurchaseDate 2008-09-20 13 0.09
## 277 PurchaseDate 2008-09-21 5 0.04
## 278 PurchaseDate 2008-09-22 10 0.07
## 279 PurchaseDate 2008-09-23 6 0.04
## 280 PurchaseDate 2008-09-24 6 0.04
## 281 PurchaseDate 2008-09-25 13 0.09
## 282 PurchaseDate 2008-09-26 10 0.07
## 283 PurchaseDate 2008-09-27 11 0.08
## 284 PurchaseDate 2008-09-28 14 0.10
## 285 PurchaseDate 2008-09-29 9 0.06
## 286 PurchaseDate 2008-09-30 12 0.09
## 287 PurchaseDate 2008-10-01 12 0.09
## 288 PurchaseDate 2008-10-02 18 0.13
## 289 PurchaseDate 2008-10-03 21 0.15
## 290 PurchaseDate 2008-10-04 16 0.11
## 291 PurchaseDate 2008-10-05 18 0.13
## 292 PurchaseDate 2008-10-06 17 0.12
## 293 PurchaseDate 2008-10-07 10 0.07
## 294 PurchaseDate 2008-10-08 17 0.12
## 295 PurchaseDate 2008-10-09 10 0.07
## 296 PurchaseDate 2008-10-10 11 0.08
## 297 PurchaseDate 2008-10-11 14 0.10
## 298 PurchaseDate 2008-10-12 8 0.06
## 299 PurchaseDate 2008-10-13 13 0.09
## 300 PurchaseDate 2008-10-14 9 0.06
## 301 PurchaseDate 2008-10-15 17 0.12
## 302 PurchaseDate 2008-10-16 11 0.08
## 303 PurchaseDate 2008-10-17 8 0.06
## 304 PurchaseDate 2008-10-18 7 0.05
## 305 PurchaseDate 2008-10-19 11 0.08
## 306 PurchaseDate 2008-10-20 12 0.09
## 307 PurchaseDate 2008-10-21 5 0.04
## 308 PurchaseDate 2008-10-22 13 0.09
## 309 PurchaseDate 2008-10-23 12 0.09
## 310 PurchaseDate 2008-10-24 15 0.11
## 311 PurchaseDate 2008-10-25 13 0.09
## 312 PurchaseDate 2008-10-26 7 0.05
## 313 PurchaseDate 2008-10-27 13 0.09
## 314 PurchaseDate 2008-10-28 13 0.09
## 315 PurchaseDate 2008-10-29 20 0.14
## 316 PurchaseDate 2008-10-30 12 0.09
## 317 PurchaseDate 2008-10-31 13 0.09
## 318 PurchaseDate 2008-11-01 8 0.06
## 319 PurchaseDate 2008-11-02 14 0.10
## 320 PurchaseDate 2008-11-03 16 0.11
## 321 PurchaseDate 2008-11-04 20 0.14
## 322 PurchaseDate 2008-11-05 9 0.06
## 323 PurchaseDate 2008-11-06 20 0.14
## 324 PurchaseDate 2008-11-07 7 0.05
## 325 PurchaseDate 2008-11-08 15 0.11
## 326 PurchaseDate 2008-11-09 7 0.05
## 327 PurchaseDate 2008-11-10 7 0.05
## 328 PurchaseDate 2008-11-11 13 0.09
## 329 PurchaseDate 2008-11-12 10 0.07
## 330 PurchaseDate 2008-11-13 12 0.09
## 331 PurchaseDate 2008-11-14 19 0.14
## 332 PurchaseDate 2008-11-15 15 0.11
## 333 PurchaseDate 2008-11-16 13 0.09
## 334 PurchaseDate 2008-11-17 18 0.13
## 335 PurchaseDate 2008-11-18 18 0.13
## 336 PurchaseDate 2008-11-19 11 0.08
## 337 PurchaseDate 2008-11-20 14 0.10
## 338 PurchaseDate 2008-11-21 15 0.11
## 339 PurchaseDate 2008-11-22 13 0.09
## 340 PurchaseDate 2008-11-23 19 0.14
## 341 PurchaseDate 2008-11-24 12 0.09
## 342 PurchaseDate 2008-11-25 14 0.10
## 343 PurchaseDate 2008-11-26 13 0.09
## 344 PurchaseDate 2008-11-27 16 0.11
## 345 PurchaseDate 2008-11-28 10 0.07
## 346 PurchaseDate 2008-11-29 15 0.11
## 347 PurchaseDate 2008-11-30 11 0.08
## 348 PurchaseDate 2008-12-01 15 0.11
## 349 PurchaseDate 2008-12-02 18 0.13
## 350 PurchaseDate 2008-12-03 21 0.15
## 351 PurchaseDate 2008-12-04 18 0.13
## 352 PurchaseDate 2008-12-05 14 0.10
## 353 PurchaseDate 2008-12-06 13 0.09
## 354 PurchaseDate 2008-12-07 16 0.11
## 355 PurchaseDate 2008-12-08 16 0.11
## 356 PurchaseDate 2008-12-09 8 0.06
## 357 PurchaseDate 2008-12-10 23 0.16
## 358 PurchaseDate 2008-12-11 19 0.14
## 359 PurchaseDate 2008-12-12 18 0.13
## 360 PurchaseDate 2008-12-13 9 0.06
## 361 PurchaseDate 2008-12-14 13 0.09
## 362 PurchaseDate 2008-12-15 22 0.16
## 363 PurchaseDate 2008-12-16 17 0.12
## 364 PurchaseDate 2008-12-17 18 0.13
## 365 PurchaseDate 2008-12-18 13 0.09
## 366 PurchaseDate 2008-12-19 17 0.12
## 367 PurchaseDate 2008-12-20 15 0.11
## 368 PurchaseDate 2008-12-21 21 0.15
## 369 PurchaseDate 2008-12-22 21 0.15
## 370 PurchaseDate 2008-12-23 15 0.11
## 371 PurchaseDate 2008-12-24 16 0.11
## 372 PurchaseDate 2008-12-25 18 0.13
## 373 PurchaseDate 2008-12-26 22 0.16
## 374 PurchaseDate 2008-12-27 20 0.14
## 375 PurchaseDate 2008-12-28 19 0.14
## 376 PurchaseDate 2008-12-29 13 0.09
## 377 PurchaseDate 2008-12-30 32 0.23
## 378 PurchaseDate 2008-12-31 22 0.16
## 379 PurchaseDate 2009-01-01 22 0.16
## 380 PurchaseDate 2009-01-02 26 0.18
## 381 PurchaseDate 2009-01-03 23 0.16
## 382 PurchaseDate 2009-01-04 19 0.14
## 383 PurchaseDate 2009-01-05 25 0.18
## 384 PurchaseDate 2009-01-06 32 0.23
## 385 PurchaseDate 2009-01-07 20 0.14
## 386 PurchaseDate 2009-01-08 27 0.19
## 387 PurchaseDate 2009-01-09 20 0.14
## 388 PurchaseDate 2009-01-10 20 0.14
## 389 PurchaseDate 2009-01-11 32 0.23
## 390 PurchaseDate 2009-01-12 20 0.14
## 391 PurchaseDate 2009-01-13 19 0.14
## 392 PurchaseDate 2009-01-14 27 0.19
## 393 PurchaseDate 2009-01-15 32 0.23
## 394 PurchaseDate 2009-01-16 20 0.14
## 395 PurchaseDate 2009-01-17 22 0.16
## 396 PurchaseDate 2009-01-18 23 0.16
## 397 PurchaseDate 2009-01-19 25 0.18
## 398 PurchaseDate 2009-01-20 36 0.26
## 399 PurchaseDate 2009-01-21 28 0.20
## 400 PurchaseDate 2009-01-22 16 0.11
## 401 PurchaseDate 2009-01-23 24 0.17
## 402 PurchaseDate 2009-01-24 26 0.18
## 403 PurchaseDate 2009-01-25 28 0.20
## 404 PurchaseDate 2009-01-26 25 0.18
## 405 PurchaseDate 2009-01-27 25 0.18
## 406 PurchaseDate 2009-01-28 19 0.14
## 407 PurchaseDate 2009-01-29 29 0.21
## 408 PurchaseDate 2009-01-30 26 0.18
## 409 PurchaseDate 2009-01-31 28 0.20
## 410 PurchaseDate 2009-02-01 40 0.28
## 411 PurchaseDate 2009-02-02 32 0.23
## 412 PurchaseDate 2009-02-03 27 0.19
## 413 PurchaseDate 2009-02-04 31 0.22
## 414 PurchaseDate 2009-02-05 32 0.23
## 415 PurchaseDate 2009-02-06 22 0.16
## 416 PurchaseDate 2009-02-07 26 0.18
## 417 PurchaseDate 2009-02-08 30 0.21
## 418 PurchaseDate 2009-02-09 26 0.18
## 419 PurchaseDate 2009-02-10 26 0.18
## 420 PurchaseDate 2009-02-11 27 0.19
## 421 PurchaseDate 2009-02-12 32 0.23
## 422 PurchaseDate 2009-02-13 26 0.18
## 423 PurchaseDate 2009-02-14 29 0.21
## 424 PurchaseDate 2009-02-15 31 0.22
## 425 PurchaseDate 2009-02-16 26 0.18
## 426 PurchaseDate 2009-02-17 34 0.24
## 427 PurchaseDate 2009-02-18 21 0.15
## 428 PurchaseDate 2009-02-19 32 0.23
## 429 PurchaseDate 2009-02-20 36 0.26
## 430 PurchaseDate 2009-02-21 23 0.16
## 431 PurchaseDate 2009-02-22 30 0.21
## 432 PurchaseDate 2009-02-23 43 0.31
## 433 PurchaseDate 2009-02-24 26 0.18
## 434 PurchaseDate 2009-02-25 22 0.16
## 435 PurchaseDate 2009-02-26 31 0.22
## 436 PurchaseDate 2009-02-27 31 0.22
## 437 PurchaseDate 2009-02-28 28 0.20
## 438 PurchaseDate 2009-03-01 28 0.20
## 439 PurchaseDate 2009-03-02 20 0.14
## 440 PurchaseDate 2009-03-03 28 0.20
## 441 PurchaseDate 2009-03-04 25 0.18
## 442 PurchaseDate 2009-03-05 30 0.21
## 443 PurchaseDate 2009-03-06 22 0.16
## 444 PurchaseDate 2009-03-07 26 0.18
## 445 PurchaseDate 2009-03-08 27 0.19
## 446 PurchaseDate 2009-03-09 29 0.21
## 447 PurchaseDate 2009-03-10 30 0.21
## 448 PurchaseDate 2009-03-11 25 0.18
## 449 PurchaseDate 2009-03-12 23 0.16
## 450 PurchaseDate 2009-03-13 23 0.16
## 451 PurchaseDate 2009-03-14 26 0.18
## 452 PurchaseDate 2009-03-15 31 0.22
## 453 PurchaseDate 2009-03-16 27 0.19
## 454 PurchaseDate 2009-03-17 19 0.14
## 455 PurchaseDate 2009-03-18 26 0.18
## 456 PurchaseDate 2009-03-19 32 0.23
## 457 PurchaseDate 2009-03-20 12 0.09
## 458 PurchaseDate 2009-03-21 25 0.18
## 459 PurchaseDate 2009-03-22 22 0.16
## 460 PurchaseDate 2009-03-23 28 0.20
## 461 PurchaseDate 2009-03-24 20 0.14
## 462 PurchaseDate 2009-03-25 28 0.20
## 463 PurchaseDate 2009-03-26 32 0.23
## 464 PurchaseDate 2009-03-27 25 0.18
## 465 PurchaseDate 2009-03-28 31 0.22
## 466 PurchaseDate 2009-03-29 26 0.18
## 467 PurchaseDate 2009-03-30 33 0.23
## 468 PurchaseDate 2009-03-31 31 0.22
## 469 PurchaseDate 2009-04-01 24 0.17
## 470 PurchaseDate 2009-04-02 24 0.17
## 471 PurchaseDate 2009-04-03 24 0.17
## 472 PurchaseDate 2009-04-04 28 0.20
## 473 PurchaseDate 2009-04-05 26 0.18
## 474 PurchaseDate 2009-04-06 20 0.14
## 475 PurchaseDate 2009-04-07 29 0.21
## 476 PurchaseDate 2009-04-08 34 0.24
## 477 PurchaseDate 2009-04-09 25 0.18
## 478 PurchaseDate 2009-04-10 35 0.25
## 479 PurchaseDate 2009-04-11 23 0.16
## 480 PurchaseDate 2009-04-12 19 0.14
## 481 PurchaseDate 2009-04-13 26 0.18
## 482 PurchaseDate 2009-04-14 22 0.16
## 483 PurchaseDate 2009-04-15 23 0.16
## 484 PurchaseDate 2009-04-16 25 0.18
## 485 PurchaseDate 2009-04-17 26 0.18
## 486 PurchaseDate 2009-04-18 30 0.21
## 487 PurchaseDate 2009-04-19 28 0.20
## 488 PurchaseDate 2009-04-20 36 0.26
## 489 PurchaseDate 2009-04-21 24 0.17
## 490 PurchaseDate 2009-04-22 31 0.22
## 491 PurchaseDate 2009-04-23 34 0.24
## 492 PurchaseDate 2009-04-24 24 0.17
## 493 PurchaseDate 2009-04-25 22 0.16
## 494 PurchaseDate 2009-04-26 28 0.20
## 495 PurchaseDate 2009-04-27 33 0.23
## 496 PurchaseDate 2009-04-28 19 0.14
## 497 PurchaseDate 2009-04-29 41 0.29
## 498 PurchaseDate 2009-04-30 25 0.18
## 499 PurchaseDate 2009-05-01 20 0.14
## 500 PurchaseDate 2009-05-02 26 0.18
## 501 PurchaseDate 2009-05-03 25 0.18
## 502 PurchaseDate 2009-05-04 28 0.20
## 503 PurchaseDate 2009-05-05 30 0.21
## 504 PurchaseDate 2009-05-06 31 0.22
## 505 PurchaseDate 2009-05-07 38 0.27
## 506 PurchaseDate 2009-05-08 35 0.25
## 507 PurchaseDate 2009-05-09 23 0.16
## 508 PurchaseDate 2009-05-10 28 0.20
## 509 PurchaseDate 2009-05-11 23 0.16
## 510 PurchaseDate 2009-05-12 20 0.14
## 511 PurchaseDate 2009-05-13 27 0.19
## 512 PurchaseDate 2009-05-14 24 0.17
## 513 PurchaseDate 2009-05-15 28 0.20
## 514 PurchaseDate 2009-05-16 31 0.22
## 515 PurchaseDate 2009-05-17 20 0.14
## 516 PurchaseDate 2009-05-18 26 0.18
## 517 PurchaseDate 2009-05-19 25 0.18
## 518 PurchaseDate 2009-05-20 37 0.26
## 519 PurchaseDate 2009-05-21 26 0.18
## 520 PurchaseDate 2009-05-22 29 0.21
## 521 PurchaseDate 2009-05-23 32 0.23
## 522 PurchaseDate 2009-05-24 27 0.19
## 523 PurchaseDate 2009-05-25 29 0.21
## 524 PurchaseDate 2009-05-26 27 0.19
## 525 PurchaseDate 2009-05-27 30 0.21
## 526 PurchaseDate 2009-05-28 30 0.21
## 527 PurchaseDate 2009-05-29 29 0.21
## 528 PurchaseDate 2009-05-30 24 0.17
## 529 PurchaseDate 2009-05-31 32 0.23
## 530 PurchaseDate 2009-06-01 26 0.18
## 531 PurchaseDate 2009-06-02 21 0.15
## 532 PurchaseDate 2009-06-03 26 0.18
## 533 PurchaseDate 2009-06-04 26 0.18
## 534 PurchaseDate 2009-06-05 27 0.19
## 535 PurchaseDate 2009-06-06 34 0.24
## 536 PurchaseDate 2009-06-07 22 0.16
## 537 PurchaseDate 2009-06-08 35 0.25
## 538 PurchaseDate 2009-06-09 28 0.20
## 539 PurchaseDate 2009-06-10 19 0.14
## 540 PurchaseDate 2009-06-11 26 0.18
## 541 PurchaseDate 2009-06-12 25 0.18
## 542 PurchaseDate 2009-06-13 25 0.18
## 543 PurchaseDate 2009-06-14 31 0.22
## 544 PurchaseDate 2009-06-15 25 0.18
## 545 PurchaseDate 2009-06-16 26 0.18
## 546 PurchaseDate 2009-06-17 29 0.21
## 547 PurchaseDate 2009-06-18 33 0.23
## 548 PurchaseDate 2009-06-19 23 0.16
## 549 PurchaseDate 2009-06-20 28 0.20
## 550 PurchaseDate 2009-06-21 28 0.20
## 551 PurchaseDate 2009-06-22 28 0.20
## 552 PurchaseDate 2009-06-23 26 0.18
## 553 PurchaseDate 2009-06-24 19 0.14
## 554 PurchaseDate 2009-06-25 33 0.23
## 555 PurchaseDate 2009-06-26 19 0.14
## 556 PurchaseDate 2009-06-27 24 0.17
## 557 PurchaseDate 2009-06-28 31 0.22
## 558 PurchaseDate 2009-06-29 27 0.19
## 559 PurchaseDate 2009-06-30 27 0.19
## 560 PurchaseDate 2009-07-01 25 0.18
## 561 PurchaseDate 2009-07-02 32 0.23
## 562 PurchaseDate 2009-07-03 23 0.16
## 563 PurchaseDate 2009-07-04 34 0.24
## 564 PurchaseDate 2009-07-05 17 0.12
## 565 PurchaseDate 2009-07-06 35 0.25
## 566 PurchaseDate 2009-07-07 35 0.25
## 567 PurchaseDate 2009-07-08 30 0.21
## 568 PurchaseDate 2009-07-09 21 0.15
## 569 PurchaseDate 2009-07-10 33 0.23
## 570 PurchaseDate 2009-07-11 31 0.22
## 571 PurchaseDate 2009-07-12 24 0.17
## 572 PurchaseDate 2009-07-13 34 0.24
## 573 PurchaseDate 2009-07-14 26 0.18
## 574 PurchaseDate 2009-07-15 34 0.24
## 575 PurchaseDate 2009-07-16 28 0.20
## 576 PurchaseDate 2009-07-17 30 0.21
## 577 PurchaseDate 2009-07-18 32 0.23
## 578 PurchaseDate 2009-07-19 37 0.26
## 579 PurchaseDate 2009-07-20 21 0.15
## 580 PurchaseDate 2009-07-21 32 0.23
## 581 PurchaseDate 2009-07-22 22 0.16
## 582 PurchaseDate 2009-07-23 13 0.09
## 583 PurchaseDate 2009-07-24 23 0.16
## 584 PurchaseDate 2009-07-25 25 0.18
## 585 PurchaseDate 2009-07-26 33 0.23
## 586 PurchaseDate 2009-07-27 26 0.18
## 587 PurchaseDate 2009-07-28 22 0.16
## 588 PurchaseDate 2009-07-29 31 0.22
## 589 PurchaseDate 2009-07-30 16 0.11
## 590 PurchaseDate 2009-07-31 20 0.14
## 591 PurchaseDate 2009-08-01 30 0.21
## 592 PurchaseDate 2009-08-02 32 0.23
## 593 PurchaseDate 2009-08-03 28 0.20
## 594 PurchaseDate 2009-08-04 25 0.18
## 595 PurchaseDate 2009-08-05 22 0.16
## 596 PurchaseDate 2009-08-06 22 0.16
## 597 PurchaseDate 2009-08-07 27 0.19
## 598 PurchaseDate 2009-08-08 33 0.23
## 599 PurchaseDate 2009-08-09 31 0.22
## 600 PurchaseDate 2009-08-10 21 0.15
## 601 PurchaseDate 2009-08-11 34 0.24
## 602 PurchaseDate 2009-08-12 25 0.18
## 603 PurchaseDate 2009-08-13 33 0.23
## 604 PurchaseDate 2009-08-14 31 0.22
## 605 PurchaseDate 2009-08-15 15 0.11
## 606 PurchaseDate 2009-08-16 33 0.23
## 607 PurchaseDate 2009-08-17 29 0.21
## 608 PurchaseDate 2009-08-18 14 0.10
## 609 PurchaseDate 2009-08-19 27 0.19
## 610 PurchaseDate 2009-08-20 28 0.20
## 611 PurchaseDate 2009-08-21 23 0.16
## 612 PurchaseDate 2009-08-22 22 0.16
## 613 PurchaseDate 2009-08-23 25 0.18
## 614 PurchaseDate 2009-08-24 30 0.21
## 615 PurchaseDate 2009-08-25 29 0.21
## 616 PurchaseDate 2009-08-26 25 0.18
## 617 PurchaseDate 2009-08-27 25 0.18
## 618 PurchaseDate 2009-08-28 21 0.15
## 619 PurchaseDate 2009-08-29 28 0.20
## 620 PurchaseDate 2009-08-30 27 0.19
## 621 PurchaseDate 2009-08-31 30 0.21
## 622 PurchaseDate 2009-09-01 33 0.23
## 623 PurchaseDate 2009-09-02 15 0.11
## 624 PurchaseDate 2009-09-03 27 0.19
## 625 PurchaseDate 2009-09-04 23 0.16
## 626 PurchaseDate 2009-09-05 29 0.21
## 627 PurchaseDate 2009-09-06 20 0.14
## 628 PurchaseDate 2009-09-07 28 0.20
## 629 PurchaseDate 2009-09-08 23 0.16
## 630 PurchaseDate 2009-09-09 33 0.23
## 631 PurchaseDate 2009-09-10 35 0.25
## 632 PurchaseDate 2009-09-11 24 0.17
## 633 PurchaseDate 2009-09-12 26 0.18
## 634 PurchaseDate 2009-09-13 28 0.20
## 635 PurchaseDate 2009-09-14 28 0.20
## 636 PurchaseDate 2009-09-15 27 0.19
## 637 PurchaseDate 2009-09-16 28 0.20
## 638 PurchaseDate 2009-09-17 23 0.16
## 639 PurchaseDate 2009-09-18 27 0.19
## 640 PurchaseDate 2009-09-19 28 0.20
## 641 PurchaseDate 2009-09-20 26 0.18
## 642 PurchaseDate 2009-09-21 29 0.21
## 643 PurchaseDate 2009-09-22 37 0.26
## 644 PurchaseDate 2009-09-23 36 0.26
## 645 PurchaseDate 2009-09-24 24 0.17
## 646 PurchaseDate 2009-09-25 32 0.23
## 647 PurchaseDate 2009-09-26 30 0.21
## 648 PurchaseDate 2009-09-27 30 0.21
## 649 PurchaseDate 2009-09-28 32 0.23
## 650 PurchaseDate 2009-09-29 31 0.22
## 651 PurchaseDate 2009-09-30 15 0.11
## 652 PurchaseDate 2009-10-01 31 0.22
## 653 PurchaseDate 2009-10-02 23 0.16
## 654 PurchaseDate 2009-10-03 18 0.13
## 655 PurchaseDate 2009-10-04 28 0.20
## 656 PurchaseDate 2009-10-05 27 0.19
## 657 PurchaseDate 2009-10-06 26 0.18
## 658 PurchaseDate 2009-10-07 31 0.22
## 659 PurchaseDate 2009-10-08 26 0.18
## 660 PurchaseDate 2009-10-09 27 0.19
## 661 PurchaseDate 2009-10-10 26 0.18
## 662 PurchaseDate 2009-10-11 27 0.19
## 663 PurchaseDate 2009-10-12 27 0.19
## 664 PurchaseDate 2009-10-13 35 0.25
## 665 PurchaseDate 2009-10-14 22 0.16
## 666 PurchaseDate 2009-10-15 23 0.16
## 667 PurchaseDate 2009-10-16 31 0.22
## 668 PurchaseDate 2009-10-17 23 0.16
## 669 PurchaseDate 2009-10-18 21 0.15
## 670 PurchaseDate 2009-10-19 36 0.26
## 671 PurchaseDate 2009-10-20 33 0.23
## 672 PurchaseDate 2009-10-21 28 0.20
## 673 PurchaseDate 2009-10-22 30 0.21
## 674 PurchaseDate 2009-10-23 26 0.18
## 675 PurchaseDate 2009-10-24 35 0.25
## 676 PurchaseDate 2009-10-25 28 0.20
## 677 PurchaseDate 2009-10-26 28 0.20
## 678 PurchaseDate 2009-10-27 29 0.21
## 679 PurchaseDate 2009-10-28 29 0.21
## 680 PurchaseDate 2009-10-29 21 0.15
## 681 PurchaseDate 2009-10-30 30 0.21
## 682 PurchaseDate 2009-10-31 24 0.17
## 683 PurchaseDate 2009-11-01 43 0.31
## 684 PurchaseDate 2009-11-02 32 0.23
## 685 PurchaseDate 2009-11-03 25 0.18
## 686 PurchaseDate 2009-11-04 27 0.19
## 687 PurchaseDate 2009-11-05 22 0.16
## 688 PurchaseDate 2009-11-06 34 0.24
## 689 PurchaseDate 2009-11-07 24 0.17
## 690 PurchaseDate 2009-11-08 25 0.18
## 691 PurchaseDate 2009-11-09 29 0.21
## 692 PurchaseDate 2009-11-10 33 0.23
## 693 PurchaseDate 2009-11-11 33 0.23
## 694 PurchaseDate 2009-11-12 26 0.18
## 695 PurchaseDate 2009-11-13 35 0.25
## 696 PurchaseDate 2009-11-14 30 0.21
## 697 PurchaseDate 2009-11-15 20 0.14
## 698 PurchaseDate 2009-11-16 31 0.22
## 699 PurchaseDate 2009-11-17 24 0.17
## 700 PurchaseDate 2009-11-18 22 0.16
## 701 PurchaseDate 2009-11-19 24 0.17
## 702 PurchaseDate 2009-11-20 23 0.16
## 703 PurchaseDate 2009-11-21 21 0.15
## 704 PurchaseDate 2009-11-22 29 0.21
## 705 PurchaseDate 2009-11-23 28 0.20
## 706 PurchaseDate 2009-11-24 20 0.14
## 707 PurchaseDate 2009-11-25 23 0.16
## 708 PurchaseDate 2009-11-26 29 0.21
## 709 PurchaseDate 2009-11-27 21 0.15
## 710 PurchaseDate 2009-11-28 18 0.13
## 711 PurchaseDate 2009-11-29 33 0.23
## 712 PurchaseDate 2009-11-30 23 0.16
## 713 PurchaseDate 2009-12-01 17 0.12
## 714 PurchaseDate 2009-12-02 23 0.16
## 715 PurchaseDate 2009-12-03 23 0.16
## 716 PurchaseDate 2009-12-04 17 0.12
## 717 PurchaseDate 2009-12-05 13 0.09
## 718 PurchaseDate 2009-12-06 11 0.08
## 719 PurchaseDate 2009-12-07 11 0.08
## 720 PurchaseDate 2009-12-08 10 0.07
## 721 PurchaseDate 2009-12-09 21 0.15
## 722 PurchaseDate 2009-12-10 19 0.14
## 723 PurchaseDate 2009-12-11 12 0.09
## 724 PurchaseDate 2009-12-12 12 0.09
## 725 PurchaseDate 2009-12-13 15 0.11
## 726 PurchaseDate 2009-12-14 10 0.07
## 727 PurchaseDate 2009-12-15 7 0.05
## 728 PurchaseDate 2009-12-16 5 0.04
## 729 PurchaseDate 2009-12-17 9 0.06
## 730 PurchaseDate 2009-12-18 8 0.06
## 731 PurchaseDate 2009-12-19 12 0.09
## 732 PurchaseDate 2009-12-20 7 0.05
## 733 PurchaseDate 2009-12-21 6 0.04
## 734 PurchaseDate 2009-12-22 7 0.05
## 735 PurchaseDate 2009-12-23 5 0.04
## 736 PurchaseDate 2009-12-24 10 0.07
## 737 PurchaseDate 2009-12-25 10 0.07
## 738 PurchaseDate 2009-12-26 6 0.04
## 739 PurchaseDate 2009-12-27 4 0.03
## 740 PurchaseDate 2009-12-28 4 0.03
## 741 PurchaseDate 2009-12-29 3 0.02
## 742 PurchaseDate 2009-12-31 3 0.02
## 743 Gender F 7170 51.00
## 744 Gender M 6889 49.00
## 745 MaritalStatus M 6866 48.84
## 746 MaritalStatus S 7193 51.16
## 747 Homeowner N 5615 39.94
## 748 Homeowner Y 8444 60.06
## 749 AnnualIncome $10K - $30K 3090 21.98
## 750 AnnualIncome $110K - $130K 643 4.57
## 751 AnnualIncome $130K - $150K 760 5.41
## 752 AnnualIncome $150K + 273 1.94
## 753 AnnualIncome $30K - $50K 4601 32.73
## 754 AnnualIncome $50K - $70K 2370 16.86
## 755 AnnualIncome $70K - $90K 1709 12.16
## 756 AnnualIncome $90K - $110K 613 4.36
## 757 City Acapulco 383 2.72
## 758 City Bellingham 143 1.02
## 759 City Beverly Hills 811 5.77
## 760 City Bremerton 834 5.93
## 761 City Camacho 452 3.22
## 762 City Guadalajara 75 0.53
## 763 City Hidalgo 845 6.01
## 764 City Los Angeles 926 6.59
## 765 City Merida 654 4.65
## 766 City Mexico City 194 1.38
## 767 City Orizaba 464 3.30
## 768 City Portland 876 6.23
## 769 City Salem 1386 9.86
## 770 City San Andres 621 4.42
## 771 City San Diego 866 6.16
## 772 City San Francisco 130 0.92
## 773 City Seattle 922 6.56
## 774 City Spokane 875 6.22
## 775 City Tacoma 1257 8.94
## 776 City Vancouver 633 4.50
## 777 City Victoria 176 1.25
## 778 City Walla Walla 160 1.14
## 779 City Yakima 376 2.67
## 780 StateorProvince BC 809 5.75
## 781 StateorProvince CA 2733 19.44
## 782 StateorProvince DF 815 5.80
## 783 StateorProvince Guerrero 383 2.72
## 784 StateorProvince Jalisco 75 0.53
## 785 StateorProvince OR 2262 16.09
## 786 StateorProvince Veracruz 464 3.30
## 787 StateorProvince WA 4567 32.48
## 788 StateorProvince Yucatan 654 4.65
## 789 StateorProvince Zacatecas 1297 9.23
## 790 Country Canada 809 5.75
## 791 Country Mexico 3688 26.23
## 792 Country USA 9562 68.01
## 793 ProductFamily Drink 1250 8.89
## 794 ProductFamily Food 10153 72.22
## 795 ProductFamily Non-Consumable 2656 18.89
## 796 ProductDepartment Alcoholic Beverages 356 2.53
## 797 ProductDepartment Baked Goods 425 3.02
## 798 ProductDepartment Baking Goods 1072 7.63
## 799 ProductDepartment Beverages 680 4.84
## 800 ProductDepartment Breakfast Foods 188 1.34
## 801 ProductDepartment Canned Foods 977 6.95
## 802 ProductDepartment Canned Products 109 0.78
## 803 ProductDepartment Carousel 59 0.42
## 804 ProductDepartment Checkout 82 0.58
## 805 ProductDepartment Dairy 903 6.42
## 806 ProductDepartment Deli 699 4.97
## 807 ProductDepartment Eggs 198 1.41
## 808 ProductDepartment Frozen Foods 1382 9.83
## 809 ProductDepartment Health and Hygiene 893 6.35
## 810 ProductDepartment Household 1420 10.10
## 811 ProductDepartment Meat 89 0.63
## 812 ProductDepartment Periodicals 202 1.44
## 813 ProductDepartment Produce 1994 14.18
## 814 ProductDepartment Seafood 102 0.73
## 815 ProductDepartment Snack Foods 1600 11.38
## 816 ProductDepartment Snacks 352 2.50
## 817 ProductDepartment Starchy Foods 277 1.97
## 818 ProductCategory Baking Goods 484 3.44
## 819 ProductCategory Bathroom Products 365 2.60
## 820 ProductCategory Beer and Wine 356 2.53
## 821 ProductCategory Bread 425 3.02
## 822 ProductCategory Breakfast Foods 417 2.97
## 823 ProductCategory Candles 45 0.32
## 824 ProductCategory Candy 352 2.50
## 825 ProductCategory Canned Anchovies 44 0.31
## 826 ProductCategory Canned Clams 53 0.38
## 827 ProductCategory Canned Oysters 35 0.25
## 828 ProductCategory Canned Sardines 40 0.28
## 829 ProductCategory Canned Shrimp 38 0.27
## 830 ProductCategory Canned Soup 404 2.87
## 831 ProductCategory Canned Tuna 87 0.62
## 832 ProductCategory Carbonated Beverages 154 1.10
## 833 ProductCategory Cleaning Supplies 189 1.34
## 834 ProductCategory Cold Remedies 93 0.66
## 835 ProductCategory Dairy 903 6.42
## 836 ProductCategory Decongestants 85 0.60
## 837 ProductCategory Drinks 135 0.96
## 838 ProductCategory Eggs 198 1.41
## 839 ProductCategory Electrical 355 2.53
## 840 ProductCategory Frozen Desserts 323 2.30
## 841 ProductCategory Frozen Entrees 118 0.84
## 842 ProductCategory Fruit 765 5.44
## 843 ProductCategory Hardware 129 0.92
## 844 ProductCategory Hot Beverages 226 1.61
## 845 ProductCategory Hygiene 197 1.40
## 846 ProductCategory Jams and Jellies 588 4.18
## 847 ProductCategory Kitchen Products 217 1.54
## 848 ProductCategory Magazines 202 1.44
## 849 ProductCategory Meat 761 5.41
## 850 ProductCategory Miscellaneous 42 0.30
## 851 ProductCategory Packaged Vegetables 48 0.34
## 852 ProductCategory Pain Relievers 192 1.37
## 853 ProductCategory Paper Products 345 2.45
## 854 ProductCategory Pizza 194 1.38
## 855 ProductCategory Plastic Products 141 1.00
## 856 ProductCategory Pure Juice Beverages 165 1.17
## 857 ProductCategory Seafood 102 0.73
## 858 ProductCategory Side Dishes 153 1.09
## 859 ProductCategory Snack Foods 1600 11.38
## 860 ProductCategory Specialty 289 2.06
## 861 ProductCategory Starchy Foods 277 1.97
## 862 ProductCategory Vegetables 1728 12.29
# Tạo bảng mô tả thống kê theo từng biến: Mean, SD, Min, Q1, Median, Q3, Max cho Count theo biến
summary_stats <- qual_summary %>%
group_by(Variable) %>%
summarise(
Mean = round(mean(Count), 2),
SD = round(sd(Count), 2),
Min = min(Count),
Q1 = quantile(Count, 0.25),
Median = median(Count),
Q3 = quantile(Count, 0.75),
Max = max(Count)
)
# Hiển thị bảng mô tả thống kê (bảng thứ hai)
print(summary_stats)
## # A tibble: 11 × 8
## Variable Mean SD Min Q1 Median Q3 Max
## <chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <int>
## 1 AnnualIncome 1757. 1511. 273 636. 1234. 2550 4601
## 2 City 611. 371. 75 285 633 870. 1386
## 3 Country 4686. 4461. 809 2248. 3688 6625 9562
## 4 Gender 7030. 199. 6889 6959. 7030. 7100. 7170
## 5 Homeowner 7030. 2000. 5615 6322. 7030. 7737. 8444
## 6 MaritalStatus 7030. 231. 6866 6948. 7030. 7111. 7193
## 7 ProductCategory 312. 358. 35 102 197 356 1728
## 8 ProductDepartment 639. 569. 59 190. 390. 958. 1994
## 9 ProductFamily 4686. 4786. 1250 1953 2656 6404. 10153
## 10 PurchaseDate 19.0 8.75 1 12 18 26 43
## 11 StateorProvince 1406. 1393. 75 512. 812 2021. 4567
Nhận xét về hai bảng thống kê mô tả biến định tính
Bảng đầu tiên trình bày số lượng (Count) và tỷ lệ phần trăm (Percentage) của từng mức giá trị trong mỗi biến định tính. Một số điểm nổi bật:
Biến “AnnualIncome” (Thu nhập hàng năm):
Biến “Country” (Quốc gia):
Biến “Gender” (Giới tính):
Biến “ProductCategory” và “ProductDepartment”:
Biến “ProductFamily”:
Biến “Homeowner” và “MaritalStatus”:
Bảng 2 cung cấp cái nhìn tổng quan về sự đa dạng và mức độ phân tán** giữa các giá trị trong từng biến → hỗ trợ nhận diện biến nào có thể đưa vào phân tích sâu hơn.
Biến “ProductCategory” có số lượng cấp độ cao nhất (45 loại), với số lượng khách hàng trải dài khá rộng (Min = 1, Max = 1295), cho thấy sự đa dạng về sản phẩm tiêu dùng nhưng không đồng đều về tần suất mua.
Biến “City” và “StateorProvince”:
Biến “Gender” và “MaritalStatus” chỉ có 2 cấp độ, với số lượng khá cân bằng nên độ lệch chuẩn rất thấp, phản ánh tính ổn định.
Biến “Country”: tuy chỉ có 3 mức nhưng chênh lệch rất rõ ràng giữa Mỹ, Mexico và Canada (độ lệch chuẩn cao), chứng tỏ thị trường trọng điểm là Mỹ.
Để hiểu rõ hơn về đặc điểm phân phối của các biến định lượng trong bộ dữ liệu, ta tiến hành thống kê mô tả bằng các chỉ tiêu như: giá trị trung bình, độ lệch chuẩn, giá trị lớn nhất, nhỏ nhất và trung vị. Việc này giúp xác định xu hướng, mức độ phân tán, và các dấu hiệu bất thường (outliers) nếu có.
# Tải các gói cần thiết
library(dplyr)
library(psych)
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
# Lọc các biến định lượng
quantitative_vars <- data %>%
select(Children, AnnualIncome, UnitsSold, Revenue)
# Thống kê mô tả
describe(quantitative_vars)
Nhận xét:
Trung bình mỗi khách hàng có khoảng 2,53 người con, với trung vị là 3, cho thấy đa số khách hàng có từ 2 đến 3 con. Độ lệch chuẩn không quá lớn cho thấy dữ liệu khá đồng đều, không có sự phân tán lớn. Đây là đặc điểm nhân khẩu học quan trọng vì số lượng con có thể ảnh hưởng đến hành vi mua sắm, đặc biệt là các mặt hàng dành cho gia đình.
Thu nhập bình quân của khách hàng nằm ở mức 4.40 trên thang điểm (có thể từ 1–7), với trung vị là 5.00. Điều này cho thấy đa số khách hàng thuộc nhóm trung lưu hoặc khá giả. Mức độ phân tán vừa phải (SD = 2.20) cho thấy có sự khác biệt về thu nhập giữa các khách hàng, phù hợp với thực tế tiêu dùng tại các thành phố lớn.
Mỗi giao dịch trung bình bán được khoảng 4 sản phẩm, trung vị cũng là 4. Điều này chứng tỏ dữ liệu phân phối khá đồng đều và cân đối, không bị lệch. Đây là mức bán hàng khá hợp lý trong các siêu thị, có thể là giỏ hàng nhỏ đến trung bình. Độ lệch chuẩn thấp cho thấy hành vi mua không có sự biến động lớn giữa các khách hàng.
Doanh thu bình quân mỗi giao dịch là 13 đơn vị (có thể tương ứng với 1 mức doanh thu cụ thể), với trung vị thấp hơn (11.25), cho thấy dữ liệu có thể bị lệch phải – một số giao dịch có giá trị cao bất thường đã kéo trung bình lên. Độ lệch chuẩn khá lớn (8.22), cũng ủng hộ nhận định về sự chênh lệch đáng kể giữa các khách hàng hoặc sản phẩm có giá trị cao.