1 Tóm tắt cuốn sách Generalized Linear Models With Examples in R (Mô hình tuyến tính tổng quát (GLM) với các ví dụ trong R)

Cuốn sách tập trung vào mô hình tuyến tính tổng quát (GLM) và mối liên hệ của chúng với hồi quy tuyến tính, giới thiệu các chủ đề nâng cao và các công cụ chưa phổ biến. Các phương pháp ước lượng và suy luận cho GLM được trình bày chi tiết, bao gồm ước lượng khả năng xảy ra tối đa, kiểm định giả thuyết (Wald, điểm số, tỷ lệ khả năng xảy ra) và khoảng tin cậy. Cuốn sách cũng đề cập đến các kỹ thuật chẩn đoán mô hình như phần dư và độ nhạy, cũng như cách xử lý phân tán quá mức và phân tán dưới mức. Cuối cùng, các ứng dụng cụ thể của GLM cho dữ liệu tỷ lệ (phân phối nhị thức) và dữ liệu đếm (phân phối Poisson và nhị thức âm) được minh họa bằng các ví dụ thực tế.

1.1 Mô hình Thống kê

Chương này giới thiệu khái niệm về mô hình thống kê, đặc biệt tập trung vào mô hình tuyến tính tổng quát (Generalized Linear Models - GLMs), loại mô hình trọng tâm của cuốn sách.

Chương 1 đặt nền móng bằng cách giới thiệu ngôn ngữ, ký hiệu và các vấn đề quan trọng cần thiết. Các chủ đề được đề cập bao gồm quy ước mô tả dữ liệu toán học, nhấn mạnh tầm quan trọng của việc vẽ biểu đồ dữ liệu để trực quan hóa, giải thích cách mã hóa biến phi số để sử dụng trong mô hình toán học.

Một khái niệm cốt lõi của mô hình thống kê dùng để giải thích dữ liệu thực tế là nó bao gồm hai thành phần chính: thành phần ngẫu nhiên và thành phần hệ thống.

Ví dụ với dữ liệu về dung tích thở ra gắng sức (FEV), tại bất kỳ sự kết hợp nào của chiều cao, tuổi, giới tính và tình trạng hút thuốc, có thể ghi nhận nhiều giá trị FEV khác nhau, tạo nên một phân phối các giá trị FEV. Mô hình cho phân phối giá trị này được gọi là thành phần ngẫu nhiên của mô hình thống kê.

Đồng thời, tại sự kết hợp các yếu tố đó, phân phối giá trị FEV có một giá trị trung bình FEV. Mối quan hệ toán học giữa giá trị FEV trung bình và các giá trị đã cho của chiều cao, tuổi, giới tính và tình trạng hút thuốc được gọi là thành phần hệ thống của mô hình.

Như vậy, mô hình thống kê bao gồm cả thành phần ngẫu nhiên và thành phần hệ thống để giải thích hai đặc điểm này của dữ liệu thực tế. Vai trò của mô hình thống kê trong ngữ cảnh này là biểu diễn toán học cả thành phần hệ thống và thành phần ngẫu nhiên của dữ liệu.

Lớp mô hình hồi quy (Regression Models) cũng được giới thiệu, bao gồm tất cả các mô hình trong cuốn sách này. Thành phần hệ thống là một cách biểu diễn khả dĩ để giải thích cách giá trị FEV trung bình thay đổi khi chiều cao, tuổi, giới tính và tình trạng hút thuốc thay đổi, nhưng nhiều biểu diễn khác cũng có thể có.

Rất tổng quát, mô hình hồi quy giả định rằng giá trị trung bình của phản hồi \(μ_i\) cho Quan sát thứ \(i\) phụ thuộc vào \(p\) biến giải thích \(x_{1i}\) đến \(x_{pi}\) thông qua một hàm tổng quát \(f\) và một số tham số hồi quy \(β_j\) (với \(j = 0, 1, . . . q\)). Về mặt toán học, điều này được biểu diễn là \(E[y_i] = μ_i = f(x_{1i}, . . . , x_{pi}; β_0, β_1, . . . , β_q)\).

Đối với các mô hình hồi quy tuyến tính theo tham số, số biến giải thích được ký hiệu là \(p(x_1, . . . x_p)\). Số lượng tham số hồi quy được ký hiệu là \(p'\). Nếu thành phần hệ thống có chứa một hằng số \(β_0\) (gần như luôn luôn có), thì \(p' = p + 1\), và các tham số hồi quy là \(β_0, β_1, . . . β_p\). Nếu không có hằng số \(β_0\), thì \(p' = p\), và các tham số hồi quy là \(β_1, β_2, . . . β_p\).

Cuốn sách cung cấp một số ví dụ về các thành phần hệ thống khả thi khác nhau cho dữ liệu FEV (\(y\)) liên quan đến tuổi (\(x_1\)), chiều cao (\(x_2\)), giới tính (\(x_3\)) và tình trạng hút thuốc (\(x_4\)), bao gồm các dạng mối quan hệ tuyến tính và phi tuyến tính.

Chương 1 cũng thảo luận về việc diễn giải mô hình hồi quy. Một điểm quan trọng được nhấn mạnh là “tất cả các mô hình đều sai, nhưng một số hữu ích”. Bản chất gần đúng của mô hình phải luôn được ghi nhớ.

Mục đích của một mô hình thống kê ảnh hưởng đến cách nó được phát triển. Hai tiêu chí để đánh giá mô hình thống kê là độ chính xác (accuracy) và tính tiết kiệm (parsimony). Việc hiểu rõ những hạn chế của mô hình thống kê là quan trọng, bao gồm sự khác biệt giữa nghiên cứu thực nghiệm (experiments) và nghiên cứu quan sát (observational studies) cũng như sự khác biệt giữa quan hệ nhân quả (causality) và liên kết (association). Tính tổng quát hóa (generalizability) của mô hình cũng được thảo luận.

1.2 Mô hình Hồi quy Tuyến tính

Chương 2 giới thiệu các mô hình hồi quy tuyến tính được sử dụng để mô hình hóa dữ liệu có một biến phản hồi \(y\)\(p\) biến giải thích \(x_1, x_2, . . . , x_p\). Một mô hình hồi quy tuyến tính bao gồm hai thành phần thông thường của một mô hình hồi quy: thành phần ngẫu nhiên và thành phần hệ thống, với các dạng cụ thể.

Thành phần ngẫu nhiên của mô hình hồi quy tuyến tính giả định rằng các giá trị phản hồi \(y_i\) có phương sai không đổi \(σ²\). Ngoài ra, phương sai có thể được giả định là tỷ lệ thuận với các trọng số dương, đã biết \(w_i\); nghĩa là, \(var[y_i] = σ²/w_i\) cho \(i = 1, 2, . . . n\). Các giá trị \(w_i\) được gọi là trọng số ưu tiên (prior weights).

Thành phần hệ thống giả định dạng \(μ_i = β_0 + β_1x_{1i} + · · · + β_px_{pi}\). Trong đó, \(E[y_i] = μ_i\) là giá trị trung bình của biến phản hồi cho Quan sát thứ \(i\). Dạng này biểu thị mối quan hệ tuyến tính giữa giá trị trung bình của phản hồi (\(μ_i\)) và các giá trị của các biến giải thích (\(x_{ji}\)).

Kết hợp hai thành phần này, mô hình hồi quy tuyến tính có dạng tổng quát là \(var[y_i] = σ²/w_i\)\(μ_i = β_0 + \sum_{j=1}^ pβ_jx_{ji}\).

Các tham số hồi quy \(β_0, β_1, . . . , β_p\), cùng với phương sai sai số \(σ²\), là không xác định và phải được ước lượng từ dữ liệu. Số lượng tham số hồi quy cho Mô hình được ký hiệu là \(p' = p + 1\). \(β_0\) thường được gọi là hệ số chặn (intercept), vì nó là giá trị dự đoán của y khi tất cả các biến giải thích bằng 0. Các tham số \(β_1, . . . β_p\) đôi khi được gọi là hệ số góc (slopes) cho các biến giải thích tương ứng.

Các tên gọi đặc biệt được đặt cho các trường hợp riêng của mô hình hồi quy tuyến tính:

Mô hình hồi quy tuyến tính đơn (simple linear regression model) khi chỉ có \(p = 1\) biến giải thích (và \(p' = 2\) tham số), với thành phần hệ thống là \(μ = β_0 + β_1x_1\).

Mô hình hồi quy tuyến tính thông thường (ordinary linear regression model) khi tất cả các trọng số ưu tiên \(w_i\) được đặt bằng một. Điều này phân biệt với mô hình hồi quy tuyến tính có trọng số (weighted linear regression model) khi các trọng số ưu tiên không phải tất cả đều bằng một.

Mô hình hồi quy tuyến tính bội (multiple linear regression model) khi \(p > 1\).

Để thiết lập Mô hình, cần có các giả định sau:

Tính phù hợp (Suitability): Cùng một mô hình hồi quy là phù hợp cho tất cả các quan sát.

Tính tuyến tính (Linearity): Mối quan hệ thực sự giữa \(μ\) và mỗi biến giải thích định lượng là tuyến tính.

Phương sai không đổi (Constant variance): Phần không xác định của phương sai của các phản hồi, \(σ²\), là không đổi.

Tính độc lập (Independence): Các phản hồi \(y\) là độc lập với nhau.

1.3 Mô hình Hồi quy Tuyến tính: Chẩn đoán và Xây dựng Mô hình

Chương 3 tập trung vào quá trình chẩn đoán và xây dựng mô hình hồi quy tuyến tính sau khi một mô hình ứng viên đã được trang bị cho dữ liệu. Nó tiếp nối từ hai chương trước, vốn đã giới thiệu về mô hình thống kê và định nghĩa, ước lượng các mô hình hồi quy tuyến tính.

Việc xây dựng mô hình hồi quy tuyến tính, hoặc bất kỳ mô hình hồi quy nào khác, ban đầu được hỗ trợ bởi các biểu đồ khám phá dữ liệu, việc suy ngẫm về thiết kế thực nghiệm, và việc xem xét các mối quan hệ khoa học giữa các biến. Quá trình này giúp đảm bảo mô hình phù hợp rộng rãi với dữ liệu. Tuy nhiên, sau khi mô hình được trang bị, có các thước đo và biểu đồ chuyên biệt có thể kiểm tra các giả định của mô hình và chẩn đoán các vấn đề tiềm ẩn chi tiết hơn.

Các giả định chính của mô hình hồi quy tuyến tính (thông thường) bao gồm tính phù hợp của mô hình, tính tuyến tính của bộ dự báo tuyến tính (linear predictor), phương sai không đổi, và tính độc lập của các phản hồi \(y\).

Đối với mô hình hồi quy tuyến tính chuẩn tắc (normal linear regression models), còn có thêm giả định rằng các phản hồi \(y\) tuân theo phân phối chuẩn. Các giả định này được sắp xếp theo thứ tự ảnh hưởng của chúng đến các momen của biến phản hồi \(y\), trong đó các giả định ảnh hưởng đến các momen bậc thấp (như trung bình và phương sai) là cơ bản nhất. Chương này mô tả các phương pháp để đánh giá tính hợp lệ của các giả định này.

Công cụ chính cho phân tích chẩn đoán là phần dư (residuals). Có ba loại phần dư chính được đề cập là phần dư thô (raw residuals), phần dư chuẩn hóa (standardized residuals), và các loại phần dư khác như phần dư hiệu chỉnh (studentized residuals). Tiếp theo là đòn bẩy (leverage), một thước đo vị trí của một quan sát so với vị trí quan sát trung bình.

Chương cũng đề cập đến việc xác định các quan sát bất thường (unusual observations) và các quan sát có ảnh hưởng (influential observations). Các công cụ như khoảng cách Cook (Cook’s distance) được sử dụng để đánh giá ảnh hưởng của một quan sát đến mô hình.

Sau khi các vấn đề tiềm ẩn được xác định thông qua phân tích chẩn đoán, chương này thảo luận về các biện pháp khắc phục hoặc các hành động có thể thực hiện để giảm thiểu các vấn đề đó.

Các kỹ thuật này bao gồm các phép biến đổi đối với biến phản hồi hoặc biến giải thích (ví dụ: biến đổi Box-Cox, biến đổi ổn định phương sai) để cải thiện tính tuyến tính hoặc tính phương sai không đổi thêm các thành phần đa thức (polynomial trends) để mô hình hóa các mối quan hệ cong, sử dụng đường cong spline hồi quy (regression splines) để biểu diễn các mối quan hệ phức tạp hơn và các cách xử lý các quan sát ngoại lai đã được xác định.

Vấn đề đa cộng tuyến (collinearity), tức là sự tương quan cao giữa các biến giải thích, cũng được thảo luận vì nó có thể ảnh hưởng đến việc diễn giải các hệ số hồi quy. Các nghiên cứu điển hình (case studies) được trình bày để minh họa việc áp dụng các kỹ thuật chẩn đoán và xây dựng mô hình.

Cuối cùng, chương này giới thiệu cách sử dụng các hàm trong phần mềm R để thực hiện phân tích chẩn đoán cho mô hình hồi quy tuyến tính. Ví dụ như hàm lm() để trang bị mô hình và các hàm khác như cooks.distance(), rstandard(), qqnorm(), qqline(), scatter.smooth(), plot(), vcov(), rstudent(), atvalues().

1.4 Vượt ra ngoài Hồi quy Tuyến tính: Phương pháp Ước lượng Hợp lý Tối đa

Chương 4 giải thích lý do tại sao các mô hình hồi quy tuyến tính (được thảo luận trong Chương 2 và 3) lại không phù hợp cho một số loại dữ liệu nhất định và giới thiệu Phương pháp Ước lượng Hợp lý Tối đa (Maximum Likelihood Estimation - MLE) như một cách tiếp cận tổng quát hơn để trang bị mô hình cho các loại dữ liệu này.

Sự thất bại của Mô hình Hồi quy Tuyến tính: Chương này bắt đầu bằng việc chỉ ra các tình huống mà mô hình hồi quy tuyến tính chuẩn tắc thất bại. Mô hình hồi quy tuyến tính chuẩn tắc giả định rằng biến phản hồi có phương sai không đổi và có thể tuân theo phân phối chuẩn. Tuy nhiên, có nhiều loại dữ liệu mà giả định này không đúng. Ba trường hợp quan trọng được nêu ra là:

Biến phản hồi \(y\) là tỷ lệ của một tổng số đếm, nằm trong khoảng từ 0 đến 1 (bao gồm cả 0 và 1). Đối với dữ liệu dạng này, phương sai của phản hồi phải tiến đến 0 khi tỷ lệ gần với 0 hoặc 1. Do đó, phương sai không thể là hằng số. Phân phối nhị thức (binomial distribution) thường phù hợp cho loại dữ liệu này, bao gồm cả dữ liệu nhị phân (binary data).

Biến phản hồi \(y\) là số đếm (0, 1, 2, …). Mô hình tuyến tính cũng thất bại trong trường hợp này. Phân phối Poisson hoặc Negative Binomial có thể phù hợp.

Biến phản hồi \(y\) là số dương liên tục (>0). Phân phối Gamma hoặc Inverse Gaussian có thể được sử dụng.

Đối với các loại dữ liệu này, phương pháp ước lượng bình phương tối thiểu (least squares) được sử dụng trong hồi quy tuyến tính chuẩn tắc không còn phù hợp nữa.

Giới thiệu Phương pháp Ước lượng Hợp lý Tối đa (MLE): Chương 4 giới thiệu MLE như một phương pháp ước lượng tổng quát hơn. MLE phù hợp để ước lượng các tham số của các mô hình phi chuẩn tắc (non-normal models), chẳng hạn như các mô hình dựa trên phân phối nhị thức, Poisson hoặc Gamma. Điều quan trọng là phương pháp bình phương tối thiểu là một trường hợp đặc biệt của MLE khi mô hình hồi quy tuyến tính chuẩn tắc được sử dụng.

Nguyên tắc cơ bản của MLE là chọn các ước lượng cho các tham số không xác định sao cho tối đa hóa hàm mật độ xác suất của dữ liệu quan sát được. Hàm này được gọi là hàm hợp lý (likelihood function), ký hiệu là \(L(θ;y)\).

Trong thực tế, người ta thường làm việc với hàm log-hợp lý (log-likelihood function), ký hiệu là \(ℓ(θ;y) = log L(θ;y)\), vì nó thường tiện lợi hơn. Việc tối đa hóa hàm log-hợp lý tương đương với việc tối đa hóa hàm hợp lý. Ví dụ, đối với mô hình hồi quy tuyến tính chuẩn tắc, việc tối đa hóa hàm hợp lý tương đương với việc tối thiểu hóa tổng bình phương phần dư (sum of squared residuals - rss).

Tìm kiếm Ước lượng Hợp lý Tối đa (MLEs): Cách tiếp cận có hệ thống để tối đa hóa hàm log-hợp lý là sử dụng phép tính vi phân. Hàm điểm số (score function) là đạo hàm bậc nhất của hàm log-hợp lý theo tham số (hoặc vector tham số). Phương trình điểm số (score equation) được thiết lập bằng cách đặt hàm điểm số bằng 0 (\(U(\hatζ) = 0\)).

Giá trị tham số giải phương trình này chính là MLE. Đối với các hàm log-hợp lý có dạng nhất định (unimodal và khả vi liên tục) được xem xét trong sách này, phương trình điểm số luôn cho kết quả là ước lượng cực đại. Việc giải các phương trình điểm số thường đòi hỏi các thuật toán ma trận lặp (iterative matrix algorithms).

Thông tin về các tham số được ước lượng có thể được đo lường bằng Thông tin quan sát (Observed Information) và Thông tin kỳ vọng (Expected Information) hoặc Thông tin Fisher (Fisher Information). Thông tin quan sát là ma trận Hessian (ma trận các đạo hàm bậc hai) của hàm log-hợp lý, lấy dấu trừ. Các sai số chuẩn (standard errors) của các ước lượng tham số liên quan đến nghịch đảo của ma trận thông tin.

Tính chất của MLEs: MLEs có nhiều tính chất mong muốn dưới các điều kiện chuẩn tắc, đặc biệt là khi kích thước mẫu n lớn (tính chất tiệm cận - asymptotic properties):

Bất biến (Invariant): Nếu \(s(ζ)\) là một hàm một-một của tham số \(ζ\), thì \(s(\hatζ)\) là MLE của \(s(ζ)\).

Không chệch tiệm cận (Asymptotically unbiased): Kỳ vọng của MLE tiến đến giá trị thực của tham số khi n tiến đến vô cùng. (Đối với mô hình hồi quy tuyến tính chuẩn tắc, MLE không chệch cho mọi cỡ mẫu n).

Hiệu quả tiệm cận (Asymptotically efficient): Không có ước lượng không chệch tiệm cận nào khác có phương sai nhỏ hơn.

Nhất quán (Consistent): MLE hội tụ về giá trị thực của tham số khi n tăng (không được giải thích chi tiết trong các nguồn được trích dẫn).

Phân phối chuẩn tiệm cận (Asymptotically normally distributed): Phân phối của MLE tiến đến phân phối chuẩn khi n tăng.

Kiểm định Giả thuyết và Khoảng tin cậy dựa trên MLE: Lý thuyết hợp lý tối đa cung cấp ba cách tiếp cận chính để suy luận thống kê (kiểm định giả thuyết và khoảng tin cậy):

Kiểm định Wald (Wald tests): Dựa trên ước lượng tham số \(\hatζ\) và sai số chuẩn của nó. Kiểm định Wald có thể gặp vấn đề với phân phối nhị thức, và khoảng tin cậy Wald là đối xứng.

Kiểm định Score (Score tests): Dựa trên đạo hàm của hàm log-hợp lý tại giá trị tham số dưới giả thuyết không (null hypothesis). Có thể yêu cầu ít tính toán hơn trong một số trường hợp.

Kiểm định Tỷ lệ Hợp lý (Likelihood Ratio tests - LLR): Dựa trên sự khác biệt giữa hàm log-hợp lý được tối đa hóa dưới giả thuyết thay thế (alternative hypothesis) và dưới giả thuyết không. Thường đáng tin cậy hơn kiểm định Wald trong một số trường hợp nhưng yêu cầu trang bị hai mô hình. Khoảng tin cậy từ LLR không nhất thiết đối xứng.

Các kết quả phân phối cho các kiểm định này dựa trên các kết quả tiệm cận mẫu lớn (large sample asymptotic results). Chương cũng thảo luận về việc so sánh các mô hình không lồng nhau (non-nested models) bằng cách sử dụng các tiêu chí như AIC (Akaike Information Criterion) hoặc BIC (Bayesian Information Criterion).

1.5 Mô hình Tuyến tính Tổng quát: Cấu trúc

Chương 5 giới thiệu cấu trúc cơ bản của Mô hình Hồi quy Tuyến tính Tổng quát (Generalized Linear Models - GLMs). Chương này được đặt sau Chương 4, nơi đã chỉ ra rằng mô hình hồi quy tuyến tính (được thảo luận trong Chương 2 và 3) với giả định phương sai hằng số là không đủ cho nhiều loại dữ liệu. GLMs cung cấp một khung lý thuyết tổng quát hơn để xử lý các loại dữ liệu này.

GLM, giống như các mô hình hồi quy khác (đã giới thiệu ở Chương 1), bao gồm hai thành phần chính:

Thành phần Ngẫu nhiên (Random Component): Mô tả cách biến phản hồi \(y\) biến thiên ngẫu nhiên.

Thành phần Hệ thống (Systematic Component): Mô tả cách giá trị trung bình của biến phản hồi (\(μ\)) thay đổi theo các biến giải thích (\(x\)).

Việc lựa chọn hai thành phần này phụ thuộc vào hai câu hỏi chính: phân phối xác suất nào là phù hợp cho dữ liệu phản hồi và các biến giải thích liên quan đến giá trị trung bình của phản hồi như thế nào.

Thành phần Ngẫu nhiên: Trong GLMs, thành phần ngẫu nhiên giả định các phản hồi \(y_i\) đến từ một phân phối thuộc về họ Mô hình Phân tán Hàm mũ (Exponential Dispersion Model - EDM).

Họ EDM bao gồm nhiều phân phối phổ biến như phân phối chuẩn (normal), phân phối nhị thức (binomial), phân phối Poisson, phân phối Gamma và phân phối nhị thức âm (negative binomial). Phân phối chuẩn là trường hợp đặc biệt của EDM. Các phân phối khác như Geometric, Cauchy, von Mises không phải là EDM.

Hàm mật độ xác suất cho EDM có dạng tổng quát \(P(y;θ,\phi) = a(y,\phi) exp ([yθ − κ(θ)]/\phi)\).

Một khái niệm quan trọng liên quan đến EDM là độ lệch đơn vị (unit deviance), được định nghĩa là \(d(y,μ) = 2 [t(y,y) − t(y,μ)]\). Độ lệch đơn vị bằng 0 chỉ khi \(y = μ\) và tăng lên khi \(μ\) di chuyển xa khỏi \(y\), do đó có thể được diễn giải như một thước đo khoảng cách giữa \(y\)\(μ\). Dạng mô hình phân tán của hàm xác suất cho EDM là \(P(y; μ, \phi) = b(y, \phi) exp [-1/(2\phi) d(y, μ)]\), đây là dạng “vô giá” cho các phần tiếp theo của cuốn sách.

Họ EDM cung cấp một cấu trúc giúp việc ước lượng tham số trở nên khả thi (được thảo luận trong Chương 6).

Thành phần Hệ thống: Thành phần hệ thống của GLM giả định rằng giá trị trung bình \(μ\) được liên kết với các biến giải thích \(x_j\) thông qua một hàm dự báo tuyến tính (linear predictor).

Hàm dự báo tuyến tính có dạng \(η = β_0 + Σ β_jx_j\), tương tự như trong hồi quy tuyến tính. Điều này có nghĩa là GLMs là các mô hình hồi quy tuyến tính theo các tham số (\(β_j\)).

Mối quan hệ giữa giá trị trung bình \(μ\) và hàm dự báo tuyến tính \(η\) được xác định bởi một hàm liên kết (link function) \(g()\), sao cho \(g(μ) = η\).

Hàm liên kết \(g()\) phải là một hàm đơn điệu (monotonic) và khả vi (differentiable). Tính đơn điệu đảm bảo mỗi giá trị của \(η\) chỉ tương ứng với một giá trị duy nhất của \(μ\). Tính khả vi cần thiết cho quá trình ước lượng.

Hàm liên kết chính tắc (canonical link function) là một hàm liên kết đặc biệt, nơi \(η = θ = g(μ)\). Ví dụ: hàm liên kết chính tắc cho phân phối chuẩn là hàm đồng nhất (identity link) \(g(μ) = μ\); hàm liên kết chính tắc cho phân phối Poisson là hàm logarit (log link) \(g(μ) = log μ\), đảm bảo \(μ\) luôn dương.

Thành phần hệ thống cũng có thể bao gồm các phần bù (offsets) \(o_i\). Phần bù là các biến đã biết hoàn toàn và không chứa tham số cần ước lượng. Chúng thường xuất hiện trong các GLM Poisson khi mô hình hóa tỷ lệ hoặc mật độ, nơi phần bù có thể biểu thị “mức độ phơi nhiễm” (exposure), ví dụ như số năm-người làm việc trong nghiên cứu bệnh.

Định nghĩa chính thức của GLM: Kết hợp hai thành phần, một GLM được định nghĩa là:

\[ y_i ∼ EMD(μ_i, \phi/w_i) \]

\[ g(μ_i) = o_i + β_0 + \sum_{j=1}^p β_jx_{ji} \]

Trong đó \(y_i\) là phản hồi thứ \(i\), \(EMD(μ_i, \phi/w_i)\) chỉ định phân phối từ họ EDM với trung bình \(μ_i\), tham số phân tán \(\phi\), và trọng số trước \(w_i\) đã biết. \(g()\) là hàm liên kết, \(o_i\) là phần bù (có thể bằng 0 nếu không có), \(β_0\) là hệ số chặn, và \(β_j\) là các hệ số hồi quy cho các biến giải thích \(x_{ji}\).

1.6 Mô hình Tuyến tính Tổng quát: Ước lượng

Chương 6 tiếp nối Chương 5 bằng cách đi sâu vào quá trình ước lượng các tham số chưa biết trong Mô hình Hồi quy Tuyến tính Tổng quát (GLM). Các tham số cần ước lượng bao gồm các tham số hồi quy \(β\) và có thể cả tham số phân tán \(\phi\).

Dựa trên cấu trúc GLM được xác định trong Chương 5, việc ước lượng tham số trong GLMs sử dụng phương pháp ước lượng hợp lý cực đại (Maximum Likelihood Estimation - MLE). Điều này khả thi nhờ giả định rằng biến phản hồi đến từ một phân phối thuộc họ Mô hình Phân tán Hàm mũ (EDM).

Tính toán hợp lý cho \(β\): Chương này trình bày cách tính toán các đạo hàm (score equations) và thông tin (information) dựa trên hàm mật độ xác suất của EDM để tìm các ước lượng hợp lý cực đại cho các tham số \(β\). Đặc biệt, đạo hàm của hàm logarit của hàm xác suất theo giá trị trung bình \(μ\) có dạng đơn giản trong họ EDM.

Tính toán ước lượng của \(β\): Các ước lượng cho \(β\) (ký hiệu là \(\hatβ_j\)) được tìm thấy bằng cách sử dụng thuật toán Fisher scoring, thường được triển khai dưới dạng thuật toán bình phương tối thiểu có trọng số lặp (Iteratively Reweighted Least Squares - IRLS). Quan trọng là, giá trị của tham số phân tán \(\phi\) không cần thiết để tìm ra các ước lượng của \(β_j\).

Độ lệch dư (Residual Deviance): Độ lệch dư được định nghĩa là một thước đo sự biến thiên dư (residual variability) trên toàn bộ n quan sát sau khi mô hình đã được khớp. Đối với mô hình hồi quy tuyến tính chuẩn (là một trường hợp đặc biệt của GLM), độ lệch dư chính là tổng bình phương các phần dư (Residual Sum of Squares - RSS).

Sai số chuẩn cho \(\hatβ\): Các sai số chuẩn cho các ước lượng tham số hồi quy \(\hatβ_j\) được phát triển trong chương này.

Ước lượng \(\phi\): Mặc dù \(\phi\) không cần để ước lượng \(β_j\), nó lại cần thiết cho các kiểm định giả thuyết và khoảng tin cậy (sẽ được thảo luận trong Chương 7). Do đó, nếu \(\phi\) chưa biết trước, nó phải được ước lượng.

Các mô hình phổ biến mà \(\phi\) được biết trước là Binomial và Poisson EDM, nhưng việc ước lượng \(\phi\) vẫn có thể hữu ích khi muốn nới lỏng các giả định thông thường (ví dụ: khi có hiện tượng quá phân tán - overdispersion).

Chương này thảo luận một số bộ ước lượng hữu ích nhất cho \(\phi\): Ước lượng hợp lý cực đại (Maximum Likelihood Estimator - MLE). Ước lượng hợp lý logarit biên đã hiệu chỉnh (Modified Profile Log-Likelihood Estimator). Ước lượng độ lệch trung bình (Mean Deviance Estimator): Đối với GLM chuẩn, ước lượng này bằng \(s²\), ước lượng không chệch thông thường cho \(σ²\). Ước lượng Pearson (Pearson Estimator): Trong phần mềm R, tham số phân tán \(\phi\) được ước lượng bằng ước lượng Pearson theo mặc định.

Kết quả từ mô hình hồi quy tuyến tính là trường hợp đặc biệt của kết quả GLM cho các bộ ước lượng này.

Mối liên hệ với Hồi quy Tuyến tính: Một điểm quan trọng được nhấn mạnh là quá trình ước lượng GLM tương tự như hồi quy tuyến tính ở mức cục bộ. Thuật toán IRLS cho thấy sự tương đồng: khớp một GLM về cơ bản tương đương với việc thực hiện hồi quy bình phương tối thiểu với “biến phản hồi làm việc” (working responses \(z_i\)) và “trọng số làm việc” (working weights \(W_i\)) được cố định tại các giá trị hội tụ cuối cùng.

Sử dụng R để khớp GLMs: Chương này kết thúc bằng hướng dẫn sử dụng hàm glm() trong phần mềm R để khớp GLM. Để sử dụng glm(), cần chỉ định phân phối thuộc họ EDM (family) và hàm liên kết (link). Hàm này sử dụng ước lượng Pearson cho \(\phi\).

1.7 Mô hình Tuyến tính Tổng quát: Suy luận

Chương 7 tiếp tục khám phá Mô hình Hồi quy Tuyến tính Tổng quát (GLMs) bằng cách tập trung vào các phương pháp suy luận thống kê. Sau khi đã hiểu cấu trúc của GLM (Chương 5) và cách ước lượng các tham số (Chương 6), chương này giải thích cách sử dụng các ước lượng này để thực hiện kiểm định giả thuyết và xây dựng khoảng tin cậy.

Các phương pháp suy luận trong Chương 7 chủ yếu dựa trên lý thuyết hợp lý (likelihood theory). Ba loại kiểm định chính được thảo luận là: Kiểm định Wald (Wald Tests). Kiểm định Hợp lý Tỷ số (Likelihood Ratio Tests). Kiểm định Score (Score Tests).

Chương này phân biệt các phương pháp suy luận dựa trên việc tham số phân tán \(\phi\) đã biết hay chưa biết.

Suy luận khi \(\phi\) đã biết (ví dụ: Poisson, Binomial):

Kiểm định Wald cho từng hệ số hồi quy đơn lẻ: Đây là loại kiểm định đơn giản nhất, chỉ phụ thuộc vào các hệ số ước lượng (\(\hatβ_j\)) và sai số chuẩn của chúng. Kiểm định Wald dựa trên giả định các ước lượng \(\hatβ_j\) tuân theo phân phối chuẩn xấp xỉ khi cỡ mẫu (n) đủ lớn.

Khoảng tin cậy cho từng hệ số hồi quy: Được tính toán thuận tiện bằng cách sử dụng thống kê Wald.

Khoảng tin cậy cho giá trị trung bình \(\hatμ\): Được tìm bằng cách tính khoảng tin cậy cho hàm dự báo tuyến tính \(\hatη\) trước, sau đó áp dụng hàm liên kết nghịch đảo (\(μ = g⁻¹(η)\)) cho cả giới hạn dưới và giới hạn trên của khoảng tin cậy của \(\hatη\). Cuốn sách cũng lưu ý rằng khoảng tin cậy có thể rộng hơn khi \(\hatμ\) lớn hơn, như trường hợp phân phối Poisson, nơi phương sai bằng trung bình (\(V(μ) = μ\)).

Kiểm định Hợp lý Tỷ số để so sánh các mô hình lồng nhau (Nested Models): Khi \(\phi\) đã biết, có thể sử dụng kiểm định Hợp lý Tỷ số, dựa trên thống kê \(χ²\). Thống kê này liên quan đến sự khác biệt về độ lệch dư (residual deviance) giữa hai mô hình lồng nhau.

Bảng phân tích độ lệch (Analysis of Deviance Tables): Có thể được sử dụng để so sánh các mô hình lồng nhau.

Suy luận khi \(\phi\) chưa biết:

Nếu \(\phi\) chưa biết, một ước lượng của \(\phi\) phải được sử dụng trong quá trình suy luận. (Như đã thảo luận trong Chương 6, ước lượng Pearson cho \(\phi\) là mặc định trong R).

Kiểm định Wald cho từng hệ số hồi quy đơn lẻ: Vẫn được áp dụng. Khoảng tin cậy cho từng hệ số hồi quy: Vẫn được tính toán.

Khoảng tin cậy cho giá trị trung bình \(\hatμ\): Tương tự như trường hợp \(\phi\) đã biết, được tính bằng cách áp dụng hàm liên kết nghịch đảo cho khoảng tin cậy của \(\hatη\).

Kiểm định Hợp lý Tỷ số để so sánh các mô hình lồng nhau: Khi \(\phi\) chưa biết, thống kê thích hợp để so sánh các mô hình lồng nhau là kiểm định \(F\). Việc này sử dụng một ước lượng của \(\phi\).

Bảng phân tích độ lệch: Vẫn có thể được sử dụng để so sánh các mô hình lồng nhau.

Cơ sở lý thuyết: Các kết quả về phân phối cho các thống kê kiểm định này (ví dụ: xấp xỉ \(χ²\) hoặc \(F\)) dựa trên kết quả tiệm cận (asymptotic results). Cụ thể, các kết quả tiệm cận mẫu lớn (large sample asymptotics) làm nền tảng cho các kiểm định khi \(\phi\) đã biết.

So sánh các mô hình:

Để so sánh các GLMs lồng nhau, có thể dùng Kiểm định Hợp lý Tỷ số (\(χ²\) hoặc \(F\) tùy thuộc vào \(\phi\)) hoặc Bảng phân tích độ lệch.

Để so sánh các GLMs không lồng nhau, có thể sử dụng các tiêu chí lựa chọn mô hình như Tiêu chí Thông tin Akaike (AIC) và Tiêu chí Thông tin Bayes (BIC).

Chương này cũng đề cập đến các phương pháp lựa chọn mô hình tự động như hồi quy tiến (forward regression), loại bỏ lùi (backward elimination) và hồi quy từng bước (stepwise regression).

1.8 Mô hình Tuyến tính Tổng quát: Chẩn đoán

Chương 8 tập trung vào việc kiểm tra các giả định của Mô hình Hồi quy Tuyến tính Tổng quát (GLM) sau khi mô hình đã được ước lượng. Mục tiêu là xác định xem có bất kỳ vi phạm giả định nào có khả năng ảnh hưởng đến kết luận hay không.

Các Giả định của GLMs: Chương này xem xét lại các giả định của GLM. Các giả định chính bao gồm:

Phân phối: Các biến phản hồi \(y_i\) đến từ một phân phối thuộc họ Mô hình Phân tán Hàm mũ (EDM) đã được chỉ định. Việc chọn EDM thường dựa trên loại dữ liệu phản hồi (ví dụ: Binomial cho tỷ lệ, Poisson/Negative Binomial cho dữ liệu đếm, Gamma/Inverse Gaussian/Tweedie cho dữ liệu liên tục dương).

Thành phần hệ thống (Systematic component): Thành phần hệ thống có dạng tuyến tính \(η = β₀ + Σ β_jx_j\) và được liên kết với giá trị trung bình \(μ\) thông qua hàm liên kết \(g(μ) = η\). Giả định này liên quan đến tính phù hợp của mô hình tổng thể.

Độc lập: Các biến phản hồi \(y_i\) độc lập với nhau.

Các Công cụ Chẩn đoán Chính: Công cụ chính cho phân tích chẩn đoán là các phần dư (residuals).

Tại sao phần dư phản hồi không đủ: Phần dư phản hồi thông thường (\(y_i - \hatμ_i\)) không đủ cho GLM vì sự biến thiên của \(y_i\) thường phụ thuộc vào giá trị trung bình \(\hatμ_i\). Cùng một giá trị phần dư phản hồi có thể biểu thị các mức độ “bất thường” khác nhau tùy thuộc vào vị trí trong phân phối được mô hình hóa. Do đó, cần định nghĩa các loại phần dư mới.

Các loại phần dư cho GLMs: Phần dư Pearson (Pearson Residuals). Phần dư Deviance (Deviance Residuals). Phần dư Quantile (Quantile Residuals): Đặc biệt được khuyến nghị cho các EDM rời rạc.

Phần dư Chuẩn hóa/Student hóa (Standardized/Studentized Residuals): Các loại phần dư này được ưu tiên sử dụng vì chúng có phương sai xấp xỉ không đổi.

Leverages trong GLMs: Leverages (hay hat values) cũng là một công cụ quan trọng.

GLM có thể được coi cục bộ như một mô hình hồi quy tuyến tính với các “biến phản hồi làm việc” (working responses) và “trọng số làm việc” (working weights).

Leverages trong GLMs là các phần tử trên đường chéo của ma trận mũ \(H = W^{1/2}X(X^ᵀWX)⁻¹X^ᵀW^{1/2}\).

Leverage \(h_i\) của quan sát thứ \(i\) cho biết trọng số mà biến phản hồi làm việc \(z_i\) nhận được khi tính toán giá trị của thành phần dự báo tuyến tính \(\hatη_i\) tương ứng. Nếu leverage lớn, điều đó chỉ ra rằng quan sát đó ảnh hưởng mạnh mẽ đến giá trị dự báo của chính nó.

Kiểm tra các Giả định bằng Công cụ Chẩn đoán:

Chiến lược chung: Một chiến lược chẩn đoán bao gồm kiểm tra tính độc lập của các phản hồi trước. Nếu phát hiện sự không độc lập, cần sử dụng các phương pháp mô hình hóa khác. Sau đó, kiểm tra sự phù hợp của EDM đã chọn và tính đúng đắn của thành phần hệ thống.

Kiểm tra EDM: Dữ liệu phản hồi thường gợi ý EDM phù hợp (tỷ lệ -> Binomial, đếm -> Poisson/Negative Binomial, liên tục dương -> Gamma/Inverse Gaussian/Tweedie).

Kiểm tra Thành phần Hệ thống: Có thể sử dụng các biểu đồ chẩn đoán khác nhau:

  • Vẽ phần dư chuẩn hóa/Student hóa chống lại giá trị dự báo \(\hatμ_i\) (có thể dùng biến đổi scale thông tin không đổi - constant-information scale transformation cho \(\hatμ_i\) để giúp kiểm tra phương sai không đổi và tính tuyến tính).

  • Vẽ phần dư chuẩn hóa/Student hóa chống lại từng biến giải thích \(x_j\).

  • Vẽ biểu đồ Q-Q để kiểm tra giả định phân phối (đặc biệt hữu ích cho GLMs với tham số phân tán đã biết hoặc dữ liệu liên tục).

  • Vẽ biểu đồ phần dư cục bộ (partial residual plots) hoặc biểu đồ biến phản hồi làm việc chống lại thành phần dự báo tuyến tính \(\hatη\) để kiểm tra hàm liên kết hoặc dạng tuyến tính của các biến giải thích.

Xác định Quan sát Bất thường và Ảnh hưởng: Sử dụng các thước đo như Cook’s distance, dffits, dfbetas (các công cụ từ hồi quy tuyến tính được áp dụng trong ngữ cảnh GLM) để xác định các quan sát có ảnh hưởng lớn đến ước lượng tham số hoặc giá trị dự báo.

Biện pháp Khắc phục và Mở rộng: Chương này cũng thảo luận các kỹ thuật để khắc phục các vấn đề đã xác định.

Sửa đổi thành phần hệ thống (ví dụ: chọn hàm liên kết khác, thêm hoặc biến đổi biến giải thích).

Xử lý các vấn đề với EDM, đặc biệt là hiện tượng quá phân tán (overdispersion). Điều này có thể được giải quyết bằng cách sử dụng:

  • Mô hình Binomial hoặc Poisson với việc ước lượng tham số phân tán \(\phi\) (mặc định \(\phi=1\)) hoặc sử dụng các mô hình quasi-Binomial/quasi-Poisson.

  • Mô hình Âm thức (Negative Binomial GLM) cho dữ liệu đếm khi có quá phân tán.

Giới thiệu khái niệm Ước lượng Quasi-Likelihood (Quasi-Likelihood Estimation) và Mở rộng Quasi-Likelihood. Phương pháp này hữu ích khi chỉ xác định được mối quan hệ giữa giá trị trung bình và phương sai (variance function), nhưng không hoàn toàn xác định được phân phối cụ thể thuộc họ EDM.

Thảo luận về vấn đề Đa cộng tuyến (Collinearity) giữa các biến giải thích.

Sử dụng R cho Chẩn đoán GLMs: Chương này kết thúc bằng hướng dẫn sử dụng các hàm trong R để thực hiện phân tích chẩn đoán, bao gồm các hàm để tính toán phần dư, leverages và vẽ các biểu đồ chẩn đoán.

1.9 Mô hình cho Tỷ lệ: GLM Nhị thức

Chương 9 tập trung vào việc ứng dụng Mô hình Hồi quy Tuyến tính Tổng quát (GLM) để mô hình hóa dữ liệu tỷ lệ hoặc dữ liệu nhị phân (binary data), sử dụng phân phối Binomial làm thành phần ngẫu nhiên. Đây là một trong những loại GLM được sử dụng phổ biến nhất.

Mô hình hóa Tỷ lệ bằng Phân phối Binomial:

Dữ liệu phản hồi thường là một tỷ lệ \(y\) trên tổng số \(m\) (ví dụ: tỷ lệ cá thể mắc bệnh, tỷ lệ cử tri bỏ phiếu cho một ứng viên). Đối với dữ liệu như vậy, phân phối Binomial có thể là lựa chọn phù hợp.

Phân phối Binomial là một thành viên của họ Mô hình Phân tán Hàm mũ (EDM). Trong GLM Binomial, tổng số thử nghiệm \(m\) được coi là đã biết. Biến phản hồi \(y\) có thể nhận các giá trị \(0, 1/m, 2/m, ..., 1\), và tỷ lệ kỳ vọng \(μ\) nằm trong khoảng (0, 1).

Trọng số ưu tiên (prior weights) \(w\) được đặt bằng tổng số thử nghiệm m cho mỗi quan sát. Tham số phân tán \(\phi\) của phân phối Binomial được cố định là 1. Hàm phương sai (variance function) cho số lần thành công trong mô hình Binomial là \(V(μ) = μ(1 - μ)\).

Các Hàm Liên kết (Link Functions): Các hàm liên kết cụ thể được yêu cầu cho GLM Binomial để đảm bảo rằng giá trị dự báo \(μ\) nằm trong khoảng (0, 1).

Ba hàm liên kết phổ biến nhất được sử dụng với phân phối Binomial là: logit (logit), probit (probit), và log-log bổ sung (complementary log-log - cloglog). Các hàm này có mối liên hệ với các phân phối “ngưỡng chịu đựng” (tolerance distributions) như Logistic (cho logit), Normal (cho probit), và Extreme value (cho cloglog).

Hàm liên kết logit là hàm liên kết chính tắc (canonical link function) và là mặc định trong R.

Sử dụng hàm liên kết logit tương đương với việc mô hình hóa logarit của tỷ lệ cược (log-odds), trong đó tỷ lệ cược (odds) của một sự kiện có xác suất \(μ\) xảy ra là \(μ/(1 - μ)\).

GLM Binomial có thể được chỉ định trong R bằng cách sử dụng glm() với family=binomial(). Các hàm liên kết được phép bao gồm “logit” (mặc định), “probit”, “cloglog”, “log”, và “cauchit”.

Định nghĩa Biến Phản hồi trong R: Biến phản hồi cho một GLM Binomial có thể được cung cấp trong R theo ba cách:

Là tỷ lệ quan sát \(y\), khi đó tổng số thử nghiệm \(m\) được cung cấp dưới dạng trọng số (\(weights=m\)) trong lệnh glm().

Là một mảng hai cột (cbind(thành công, thất bại)), với các cột biểu thị số lần thành công và số lần thất bại. R sẽ tự động tính tổng số thử nghiệm \(m\) là trọng số.

Là một yếu tố (factor) hoặc biến logic (logical), trong đó mỗi hàng đại diện cho một cá thể đơn lẻ trong nghiên cứu. Cách này sẽ khớp một GLM Bernoulli (trường hợp đặc biệt của Binomial với \(m=1\)).

Chẩn đoán cho GLM Binomial: Đối với phân tích chẩn đoán, việc sử dụng phần dư quantile (quantile residuals) được khuyến nghị mạnh mẽ.

Phần dư deviance (deviance residuals) khó diễn giải cho dữ liệu rời rạc như Binomial (đặc biệt khi \(m\) nhỏ), vì dữ liệu nằm trên các đường cong song song.

Có thể sử dụng các biểu đồ phần dư (ví dụ: phần dư quantile chống lại giá trị dự báo hoặc biến giải thích) để kiểm tra tính phù hợp của mô hình. Một xu hướng cong trong biểu đồ phần dư quantile chống lại biến giải thích có thể cho thấy mô hình không phù hợp.

Hiện tượng Quá phân tán (Overdispersion): Quá phân tán xảy ra khi sự biến thiên trong dữ liệu lớn hơn dự kiến dưới mô hình Binomial, tức là \(var[y] > μ(1 - μ)\). Điều này chỉ ra rằng mô hình Binomial có sai sót ở một khía cạnh nào đó.

Nguyên nhân có thể là do các xác suất \(μ_i\) không hằng định giữa các quan sát hoặc các trường hợp \(m_i\) không độc lập.

Hậu quả của quá phân tán bao gồm việc ước lượng sai số chuẩn bị đánh giá thấp và khoảng tin cậy cho các tham số trở nên quá hẹp.

Để xử lý quá phân tán, có thể khớp các mô hình quasi-binomial. Mô hình quasi-binomial giả định hàm phương sai là \(V(μ) = \phiμ(1 - μ)\), trong đó tham số phân tán \(\phi\) được ước lượng từ dữ liệu thay vì cố định bằng 1.

Mô hình quasi-binomial được chỉ định trong R bằng cách sử dụng family=quasibinomial(). Suy luận cho mô hình quasi sử dụng các hàm tương tự như GLM thông thường, nhưng các kiểm định phân tích deviance dựa trên kiểm định F thay vì Chi-squared vì \(\phi\) được ước lượng.

Các Khái niệm và Vấn đề Khác:

Liều hiệu quả trung bình (ED50) là giá trị của biến giải thích mà tại đó tỷ lệ kỳ vọng \(μ\) bằng 0.5. Có thể ước lượng ED50 và sai số chuẩn tương ứng bằng hàm dose.p() trong gói MASS của R.

Trong một số trường hợp, đặc biệt với dữ liệu nhị phân, kiểm định Wald có thể không đáng tin cậy khi một hoặc nhiều tham số hồi quy có xu hướng tiến tới \(±∞\).

Đối với dữ liệu nhị phân thuần túy (\(m=1\) cho mọi quan sát), các kiểm định mức độ phù hợp tổng thể (goodness-of-fit tests) không phù hợp.

Có sự tương đương giữa GLM Binomial với hàm liên kết logit và mô hình log-linear Poisson khi biến phản hồi có hai mức, đặc biệt khi \(m\) lớn và các tỷ lệ nhỏ.

1.10 Mô hình cho Dữ liệu đếm: GLM Poisson và Nhị thức Âm

Chương này tập trung vào việc mô hình hóa dữ liệu đếm (count data), tức là dữ liệu biểu thị số lần xảy ra một sự kiện, nơi mà số lần đếm không có giới hạn trên rõ ràng hoặc giới hạn rất lớn so với các giá trị đếm thực tế. Các mô hình hồi quy tuyến tính thông thường không phù hợp cho loại dữ liệu này.

Mô hình hóa Dữ liệu Đếm bằng Phân phối Poisson: Phân phối Poisson là phân phối được sử dụng phổ biến nhất để mô hình hóa dữ liệu đếm.

Dữ liệu phản hồi \(y\) có thể nhận các giá trị 0, 1, 2, …. Tham số chính của phân phối Poisson là \(μ\) (lambda), biểu thị số đếm kỳ vọng trung bình \((E[y] = μ)\), và \(μ > 0\).

Phân phối Poisson là một thành viên của họ Mô hình Phân tán Hàm mũ (EDM). Đối với phân phối Poisson, tham số phân tán \(\phi\) được cố định bằng 1, và hàm phương sai là \(V(μ) = μ\) (nghĩa là phương sai bằng kỳ vọng).

GLM Poisson là một loại GLM được đề xuất cho dữ liệu đếm.

Hàm liên kết (link function) được sử dụng phổ biến nhất cho GLM Poisson là logarit (log). Hàm liên kết logarit đảm bảo rằng giá trị dự báo \(μ\) luôn dương. Các hàm liên kết khác được phép bao gồm “identity” và “sqrt”.

Sử dụng hàm liên kết logarit tương đương với việc mô hình hóa logarit của số đếm kỳ vọng (\(log(μ)\)) là một hàm tuyến tính của các biến giải thích (linear predictor). Khi diễn giải các hệ số hồi quy từ mô hình với hàm liên kết logarit, chúng ta thường lấy lũy thừa cơ số \(e\) (exp) để chuyển về tỷ lệ nhân (multiplicative effects) trên số đếm kỳ vọng.

GLM Poisson có thể được chỉ định trong R bằng cách sử dụng glm() với family=poisson().

Khi các biến giải thích đều là biến định tính (categorical factors), GLM Poisson thường được gọi là mô hình log-linear cho bảng tần suất (contingency table). Khi có biến giải thích định lượng (covariates), nó thường được gọi là mô hình hồi quy Poisson (Poisson regression).

Mô hình hóa Tốc độ (Rates) bằng Offset:

Dữ liệu đếm đôi khi được thu thập kèm theo một “thời gian phơi nhiễm” (exposure time) hoặc quy mô đơn vị (ví dụ: số ca bệnh trên mỗi 1000 người, số lỗi trên mỗi mét cáp). Dữ liệu này là tốc độ (rate), nhưng có thể mô hình hóa số đếm bằng cách đưa logarit của thời gian phơi nhiễm vào mô hình tuyến tính tổng quát dưới dạng offset.

Offset là một biến trong thành phần hệ thống (linear predictor) mà hệ số hồi quy của nó được cố định là 1 và không cần ước lượng.

Ví dụ: \(log(μ/P) = η\), trong đó P là quy mô dân số hoặc thời gian phơi nhiễm. Điều này tương đương với \(log(μ) = η + log(P)\), trong đó \(log(P)\) là offset.

Chẩn đoán cho GLM Poisson:

Đối với GLM Poisson, việc sử dụng phần dư quantile (quantile residuals) được khuyến nghị mạnh mẽ cho mục đích chẩn đoán. Phần dư deviance có thể khó diễn giải cho dữ liệu rời rạc.

Biểu đồ phần dư (ví dụ: phần dư quantile chống lại giá trị dự báo hoặc biến giải thích) giúp kiểm tra tính phù hợp của mô hình.

Bảng Tần suất (Contingency Tables): Dữ liệu đếm thường được tổ chức dưới dạng bảng tần suất, nơi các quan sát được phân loại theo các mức của một hoặc nhiều yếu tố.

GLM Poisson có thể được sử dụng để mô hình hóa dữ liệu trong bảng tần suất.

Khi sử dụng GLM Poisson cho bảng tần suất, cần chú ý đến việc bao gồm các hệ số hồi quy tương ứng với các biên cố định (fixed margins) trong mô hình để đảm bảo các tổng biên được bảo toàn và suy luận là hợp lệ, đặc biệt khi các tổng biên này được cố định bởi thiết kế nghiên cứu.

Mô hình log-linear được sử dụng để phân tích mối quan hệ giữa các biến định tính trong bảng tần suất, và chúng tương đương với GLM Poisson khi phản ứng là số đếm trong mỗi ô của bảng.

Chương này cũng đề cập đến các khái niệm như độc lập có điều kiện (conditional independence), độc lập một phần (partial independence), và hiện tượng Simpson’s Paradox.

Đối với dữ liệu đếm trong bảng có phản hồi nhị phân (hai mức), có sự tương đương giữa GLM Binomial với liên kết logit và mô hình log-linear Poisson, đặc biệt khi tổng số thử nghiệm m lớn và tỷ lệ thành công nhỏ. Điều này xảy ra vì dưới những điều kiện đó, phân phối Binomial xấp xỉ phân phối Poisson và hàm phương sai \(V(μ) = mπ(1-π)\) tiến đến \(mπ\).

Mô hình Poisson có thể được sử dụng để kiểm định mức độ phù hợp tổng thể (goodness-of-fit) cho dữ liệu bảng tần suất (khi số đếm đủ lớn) bằng cách so sánh deviance còn lại với phân phối chi-squared (\(χ²\)) với bậc tự do phù hợp.

Hiện tượng Quá phân tán (Overdispersion):

Giống như GLM Binomial, dữ liệu đếm theo phân phối Poisson cũng có thể gặp hiện tượng quá phân tán. Điều này xảy ra khi phương sai quan sát lớn hơn phương sai dự kiến của phân phối Poisson (tức là phương sai > kỳ vọng).

Quá phân tán chỉ ra rằng mô hình Poisson có thể không phù hợp hoàn toàn với dữ liệu. Nó dẫn đến ước lượng sai số chuẩn bị đánh giá thấp và khoảng tin cậy quá hẹp.

Có hai cách chính để xử lý quá phân tán cho dữ liệu đếm:

  • Mô hình Negative Binomial GLM: Sử dụng phân phối Negative Binomial làm thành phần ngẫu nhiên thay cho Poisson. Phân phối Negative Binomial là một EDM (nếu tham số k được biết). Hàm phương sai của nó là \(V(μ) = μ + μ²/k\) (với \(k > 0\)), cho phép phương sai lớn hơn kỳ vọng. Tham số \(k\) (hoặc phiên bản nghịch đảo của nó, \(θ\)) thường cần được ước lượng từ dữ liệu. Trong R, mô hình Negative Binomial thường được khớp bằng hàm glm.nb() trong gói MASS. Vì có hàm xác suất đầy đủ, phần dư quantile có thể được tính cho mô hình Negative Binomial.

  • Mô hình Quasi-Poisson: Đây là một mô hình bán tham số (semi-parametric), giả định hàm phương sai là \(V(μ) = \phiμ\), trong đó tham số phân tán φ được ước lượng từ dữ liệu (khác với Poisson nơi \(\phi = 1\)). Mô hình Quasi-Poisson được chỉ định trong R bằng family=quasipoisson(). Các ước lượng tham số và giá trị dự báo từ mô hình Quasi-Poisson sẽ giống hệt với mô hình Poisson tương ứng. Tuy nhiên, sai số chuẩn, kiểm định và khoảng tin cậy sẽ được điều chỉnh theo ước lượng của \(\phi\). Suy luận cho mô hình Quasi-Poisson sử dụng kiểm định F thay vì Chi-squared khi so sánh các mô hình lồng nhau trong phân tích deviance. Do không có hàm xác suất đầy đủ, phần dư quantile không thể được tính; thay vào đó, phần dư deviance chuẩn hóa (standardized deviance residuals) được sử dụng cho các biểu đồ chẩn đoán.

Các Khái niệm và Vấn đề Khác:

Dữ liệu đếm có thể có số 0 có cấu trúc (structural zeros), tức là các ô trong bảng tần suất mà giá trị đếm phải bằng 0 theo thiết kế (ví dụ: nam giới không thể mắc ung thư vú), khác với số 0 do lấy mẫu (sampling zeros). Cần xử lý phù hợp trong mô hình.

Dữ liệu đếm bị cắt cụt (truncated count data), nơi các giá trị nhỏ hơn một ngưỡng nhất định (ví dụ: 0) không được quan sát, đòi hỏi các phương pháp mô hình hóa khác với Poisson tiêu chuẩn.

1.11 Dữ liệu Liên tục Dương: GLMs Gamma và Inverse Gaussian

Chương 11 trong tài liệu tập trung vào việc mô hình hóa dữ liệu liên tục dương (positive continuous data) bằng cách sử dụng các Mô hình Hồi quy Tuyến tính Tổng quát (GLM). Dữ liệu liên tục dương là những biến phản hồi chỉ có thể nhận các giá trị dương và liên tục.

Sự khác biệt chính của loại dữ liệu này so với dữ liệu phù hợp với hồi quy tuyến tính thông thường là chúng thường có phân phối lệch phải do bị chặn dưới ở số 0. Quan trọng hơn, phương sai của dữ liệu liên tục dương thường có xu hướng tăng khi giá trị kỳ vọng (trung bình) tăng lên. Điều này xảy ra bởi vì giới hạn dưới ở số 0 làm cho phương sai phải tiến gần đến 0 khi giá trị kỳ vọng tiến gần đến 0. Mối quan hệ phương sai-trung bình tăng dần này khiến các mô hình hồi quy tuyến tính thông thường (vốn giả định phương sai không đổi) không phù hợp.

Để xử lý dữ liệu liên tục dương, GLM sử dụng các phân phối thuộc họ Mô hình Phân tán Hàm mũ (EDM) có hàm phương sai tăng theo trung bình. Hai phân phối phổ biến nhất trong họ EDM được sử dụng cho dữ liệu liên tục dương là phân phối Gamma và phân phối Inverse Gaussian. Các phân phối này phù hợp vì hàm phương sai của chúng có dạng \(V(μ) = μ²\) (Gamma) và \(V(μ) = μ³\) (Inverse Gaussian), cho phép phương sai tăng khi trung bình tăng.

Phân phối Gamma là lựa chọn thích hợp khi phương sai của phản hồi tỷ lệ thuận với bình phương của trung bình (\(V(μ) = μ²\)). Điều này tương đương với việc hệ số biến thiên (coefficient of variation - tỷ lệ độ lệch chuẩn trên trung bình) là không đổi. Do đó, GLM Gamma hữu ích trong các tình huống mà hệ số biến thiên xấp xỉ không đổi.

Phân phối Gamma cũng có thể mô hình hóa thời gian chờ đợi giữa các sự kiện xảy ra ngẫu nhiên theo phân phối Poisson. Hàm xác suất của phân phối Gamma được cung cấp trong tài liệu. Đối với phân phối Gamma, tham số phân tán \(\phi\) cần được ước lượng từ dữ liệu. Độ lệch deviance dư \(D(y, \hatμ)\) cho GLM Gamma được mô tả tốt bằng phân phối \(χ²\) với bậc tự do \(n-p'\) nếu \(\phi ≤ 1/3\).

Phân phối Inverse Gaussian đôi khi cũng phù hợp cho dữ liệu liên tục dương, đặc biệt khi dữ liệu lệch nhiều hơn so với phân phối Gamma. Phân phối này có hàm phương sai \(V(μ) = μ³\). Phân phối Inverse Gaussian có liên quan đến thời gian xảy ra lần đầu tiên trong chuyển động Brownian. Hàm xác suất của phân phối Inverse Gaussian cũng được đưa ra.

Tham số phân tán \(\phi\) của phân phối Inverse Gaussian cũng cần được ước lượng. Đối với Inverse Gaussian, độ lệch deviance dư \(D(y, \hatμ)\) được mô tả tốt bằng phân phối \(χ²\) với bậc tự do \(n-p'\) và thậm chí là chính xác khi phân phối này được xem là trường hợp đặc biệt \((ξ=3)\) của họ Tweedie. Mặc dù hàm liên kết chính tắc (canonical link) cho Inverse Gaussian là \(η = μ⁻²\), trong thực tế, các hàm liên kết khác thường được sử dụng để đảm bảo giá trị dự báo \(μ\) luôn dương và dễ diễn giải hơn.

Cả phân phối Gamma \((ξ=2)\) và Inverse Gaussian \((ξ=3)\) đều là các trường hợp đặc biệt của họ phân phối Tweedie (với hàm phương sai \(V(μ) = μ^ξ)\). Các phân phối Tweedie với \(ξ ≥ 2\) đều phù hợp để mô hình hóa dữ liệu liên tục dương.

Khi xây dựng GLM cho dữ liệu liên tục dương, việc lựa chọn hàm liên kết (link function) là rất quan trọng để mô tả mối quan hệ giữa trung bình dự báo \((μ)\) và bộ phận hệ thống (linear predictor). Các hàm liên kết phổ biến được phép cho cả GLM Gamma và Inverse Gaussian bao gồm “inverse”, “identity” và “log” (logarit).

Hàm liên kết logarit là một lựa chọn phổ biến vì nó đảm bảo rằng giá trị dự báo \(μ\) luôn dương. Ngoài ra, Inverse Gaussian cũng cho phép hàm liên kết chính tắc “\(1/mu^2\)”. Việc lựa chọn hàm liên kết phù hợp, cùng với các phép biến đổi biến giải thích, giúp mô tả các mối quan hệ đa dạng giữa biến phản hồi và biến giải thích.

Việc ước lượng tham số phân tán \(\phi\) là một phần quan trọng trong GLM Gamma và Inverse Gaussian. Đối với cả hai phân phối này, ước lượng Pearson của \(\phi\) được khuyến nghị. Đối với phân phối Inverse Gaussian, ước lượng khả năng xảy ra cực đại (MLE) của \(\phi\) là chính xác và được tính bằng \(D(y, \hatμ)/n\).

Giống như các loại GLM khác, việc chẩn đoán mô hình là cần thiết để kiểm tra sự phù hợp. Phần dư phản hồi \((y_i - \hatμ_i)\) không đủ cho GLM. Thay vào đó, các loại phần dư khác như phần dư Pearson, phần dư deviance, và đặc biệt là phần dư quantile (quantile residuals) được khuyến khích sử dụng.

Biểu đồ phần dư quantile là công cụ hữu ích để kiểm tra xem EDM và bộ phận hệ thống đã được chọn có phù hợp không. Ngoài ra, các chỉ số ảnh hưởng (influence measures) như khoảng cách Cook (Cook’s distance) cũng giúp xác định các quan sát có ảnh hưởng lớn đến mô hình.

Trong phần mềm R, GLM Gamma được chỉ định bằng cách sử dụng hàm glm() với family=Gamma() (lưu ý chữ ‘G’ viết hoa), và GLM Inverse Gaussian được chỉ định với family=inverse.gaussian() (lưu ý tất cả đều viết thường).

Chương này cũng bao gồm các ví dụ và nghiên cứu tình huống minh họa việc áp dụng GLM Gamma và Inverse Gaussian cho dữ liệu thực tế, chẳng hạn như dữ liệu về sinh khối tán lá của cây, độ thấm của vật liệu xây dựng, và thời gian giao hàng. Việc so sánh các mô hình khác nhau, bao gồm cả việc sử dụng AIC, có thể giúp lựa chọn phân phối và cấu trúc mô hình phù hợp nhất.

1.12 GLM Tweedie

Chương 12 giới thiệu về Mô hình Hồi quy Tuyến tính Tổng quát Tweedie (Tweedie GLMs), dựa trên phân phối Tweedie. Các mô hình này được sử dụng để phân tích dữ liệu mà phương sai của biến phản hồi tỷ lệ với một lũy thừa của giá trị trung bình. Chương này tập trung vào việc áp dụng Tweedie GLMs cho hai dạng dữ liệu: dữ liệu liên tục dương (positive continuous data) và dữ liệu liên tục dương có giá trị 0 chính xác (positive continuous data with exact zeros).

Phân phối Tweedie được định nghĩa là một Mô hình Phân tán Hàm mũ (EDM) với hàm phương sai có dạng \(V(μ) = μ^ξ\), trong đó \(ξ\) (đọc là “xi”) là tham số chỉ số Tweedie (đôi khi được ký hiệu là \(p\)). Mối quan hệ phương sai-trung bình dạng lũy thừa này đã được quan sát trong nhiều quần thể tự nhiên. Phân phối Tweedie phù hợp như một EDM chỉ khi tham số \(ξ\) đã được biết.

Nhiều phân phối phổ biến là trường hợp đặc biệt của họ Tweedie tại các giá trị \(ξ\) nhất định. Chẳng hạn, phân phối Chuẩn (Normal) tương ứng với \(ξ = 0\), phân phối Poisson tương ứng với \(ξ = 1\) (với tham số phân tán \(\phi = 1\)), phân phối Gamma tương ứng với \(ξ = 2\), và phân phối Inverse Gaussian tương ứng với \(ξ = 3\).

Đối với dữ liệu liên tục dương (chỉ nhận các giá trị dương và liên tục), Tweedie GLMs với tham số chỉ số \(ξ ≥ 2\) là phù hợp. Phân phối Gamma (\(ξ=2\)) và Inverse Gaussian (\(ξ=3\)) là hai trường hợp đặc biệt thường gặp nhất trong nhóm này.

Đối với dữ liệu liên tục dương có giá trị 0 chính xác (nhận cả giá trị 0 và các giá trị dương liên tục), Tweedie GLMs với tham số chỉ số trong khoảng \(1 < ξ < 2\) là thích hợp. Loại phân phối Tweedie này có thể được hiểu như tổng Poisson của các biến ngẫu nhiên tuân theo phân phối Gamma.

Quan trọng là, các phân phối Tweedie với \(1 < ξ < 2\) có khả năng gán một xác suất khác không cho giá trị 0, điều này phù hợp với dữ liệu có điểm khối tại 0. Hàm xác suất của Tweedie được cung cấp trong tài liệu, và tồn tại các trường hợp đặc biệt (\(ξ=2\)\(ξ=3\)) có hàm xác suất dạng đóng. Họ phân phối Tweedie không tồn tại cho \(0 < ξ < 1\).

Trong việc xây dựng Tweedie GLM, việc lựa chọn hàm liên kết (link function) cũng quan trọng. Đối với các trường hợp \(1 < ξ < 2\)\(ξ > 2\) được xem xét trong chương này, giá trị trung bình dự báo \(μ\) luôn lớn hơn 0.

Do đó, hàm liên kết logarit (logarithmic link function), \(η = log(μ)\), là lựa chọn thông thường. Đối với Inverse Gaussian (\(ξ=3\)), hàm liên kết chính tắc là nghịch đảo bình phương, \(η = μ⁻²\), nhưng logarit thường được dùng hơn. Tham số phân tán \(\phi\) của phân phối Tweedie thường được ước lượng bằng ước lượng Pearson. Độ lệch (deviance) đơn vị được xác định cho phân phối Tweedie, và độ lệch dư được mô tả tốt bằng phân phối \(χ²\) cho các trường hợp nhất định, và là chính xác cho Inverse Gaussian (\(ξ=3\)).

Một bước quan trọng khi sử dụng Tweedie GLMs là ước lượng tham số chỉ số \(ξ\), vì giá trị này thường không được biết trước từ dữ liệu. Mặc dù có thể ước lượng \(ξ\) bằng cách chia dữ liệu thành nhóm và vẽ biểu đồ logarit phương sai nhóm so với logarit trung bình nhóm, phương pháp này phụ thuộc vào cách chia nhóm.

Một phương pháp chặt chẽ hơn là sử dụng ước lượng hợp lý cực đại (MLE) cho \(ξ\), thường thông qua việc tính hợp lý biên (profile likelihood) cho các giá trị \(ξ\) khác nhau. Người ta sẽ chọn giá trị \(ξ\) nào cho giá trị log-hợp lý biên lớn nhất. Mối tương quan giữa \(ξ\) ước lượng (\(\hatξ\)) và các hệ số hồi quy (\(\hatβ\)) là nhỏ, nên việc ước lượng \(ξ\) có ít ảnh hưởng đến suy luận về \(β\).

Trong môi trường phần mềm R, Tweedie GLMs có thể được trang bị bằng cách sử dụng hàm glm() với family=tweedie() từ gói statmod. Tham số chỉ số \(ξ\) được chỉ định thông qua đối số var.power trong hàm family=tweedie(). Hàm tweedie.profile() từ gói tweedie là công cụ hữu ích để ước lượng \(ξ\) từ dữ liệu. Gói tweedie cũng cung cấp hàm tweedie.convert() để giúp diễn giải mô hình khi \(1 < ξ < 2\) dựa trên các thành phần Poisson và Gamma ngầm định.

Sau khi mô hình được trang bị, việc chẩn đoán mô hình là cần thiết, tương tự như các loại GLMs khác. Các phần dư chuẩn hóa (standardized residuals) và biểu đồ Q-Q của phần dư quantile (quantile residuals) là các công cụ chẩn đoán hữu ích. Các chỉ số ảnh hưởng (influence measures) như khoảng cách Cook (Cook’s distance) cũng có thể được xem xét.

Chương này cung cấp nhiều ví dụ và nghiên cứu tình huống ứng dụng Tweedie GLMs cho các bộ dữ liệu thực tế, bao gồm dữ liệu thời gian tồn tại của động vật khi bị nhiễm độc (poison data) cho thấy \(\hatξ\) gần 4, dữ liệu lượng mưa có nhiều giá trị 0, dữ liệu độ bền cách điện (breakdown data), dữ liệu thời gian đi bộ có giá trị 0, dữ liệu độ thấm vật liệu xây dựng (perm data) mà Inverse Gaussian \((ξ=3)\) và Gamma \((ξ=2)\) từng được dùng, dữ liệu tỷ lệ cho ăn của chim với giá trị 0, và dữ liệu thời gian ngủ của chuột lang có giá trị 0. Các ví dụ này minh họa cách ước lượng \(ξ\), trang bị mô hình, và diễn giải kết quả trong các ngữ cảnh dữ liệu khác nhau.

2 Thống kê mô tả file dữ liệu Supermarket Transactions

Dữ liệu Supermarket Transactions chứa thông tin giao dịch của khách hàng tại hệ thống siêu thị. Phân tích thống kê mô tả sẽ giúp hiểu rõ cấu trúc dữ liệu và đặc điểm của các biến

2.1 Tổng quan về dữ liệu

library(DT)

st <- read.csv(file.choose(), header = T)
datatable(st)
library(skimr)

skim(st)
Data summary
Name st
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 ▇▅▂▁▁

Số quan sát: 14.059 dòng – dữ liệu có quy mô trung bình-lớn, phù hợp cho các phân tích thống kê.

Số biến: 16 cột, bao gồm:

11 biến dạng ký tự (character) – chủ yếu là biến định tính.

5 biến định lượng (numeric).

2.2 Ý nghĩa các biến

library(knitr)

variable_info <- data.frame(
  Biến = c("CustomerID", "Gender", "MaritalStatus", "Homeowner",
           "Children", "AnnualIncome", "City", "StateorProvince", 
           "Country", "ProductFamily", "ProductDepartment", 
           "ProductCategory", "UnitsSold", "Revenue"),
  
  GiảiThích = c("Mã định danh duy nhất của khách hàng",
             "Giới tính của khách hàng (F = Nữ, M = Nam)",
             "Tình trạng hôn nhân (S = Độc thân, M = Đã kết hôn)",
             "Khách hàng có sở hữu nhà hay không (Y = Có, N = Không)",
             "Số lượng con của khách hàng",
             "Thu nhập hàng năm của khách hàng (USD)",
             "Thành phố nơi khách hàng sinh sống",
             "Tiểu bang hoặc tỉnh nơi cư trú",
             "Quốc gia của khách hàng",
             "Nhóm sản phẩm chính: Food, Drink, Non-Consumable",
             "Bộ phận sản phẩm cụ thể thuộc nhóm",
             "Danh mục sản phẩm chi tiết",
             "Số lượng sản phẩm đã bán",
             "Doanh thu mang lại từ số sản phẩm đó (USD)")
)

kable(variable_info, caption = "Ý nghĩa các biến trong bộ dữ liệu")
Ý nghĩa các biến trong bộ dữ liệu
Biến GiảiThích
CustomerID Mã định danh duy nhất của khách hàng
Gender Giới tính của khách hàng (F = Nữ, M = Nam)
MaritalStatus Tình trạng hôn nhân (S = Độc thân, M = Đã kết hôn)
Homeowner Khách hàng có sở hữu nhà hay không (Y = Có, N = Không)
Children Số lượng con của khách hàng
AnnualIncome Thu nhập hàng năm của khách hàng (USD)
City Thành phố nơi khách hàng sinh sống
StateorProvince Tiểu bang hoặc tỉnh nơi cư trú
Country Quốc gia của khách hàng
ProductFamily Nhóm sản phẩm chính: Food, Drink, Non-Consumable
ProductDepartment Bộ phận sản phẩm cụ thể thuộc nhóm
ProductCategory Danh mục sản phẩm chi tiết
UnitsSold Số lượng sản phẩm đã bán
Revenue Doanh thu mang lại từ số sản phẩm đó (USD)

2.3 Thống kê mô tả cho 1 biến định tính

2.3.1 Thống kê mô tả các biến Nhân khẩu học

2.3.1.1 Thống kê mô tả biến Gender - Giới tính

library(dplyr)

st %>%
  count(Gender) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  kable(caption = "Tần số và tần suất theo giới tính")
Tần số và tần suất theo giới tính
Gender n Percent
F 7170 51
M 6889 49
library(ggplot2)

GenderPie <- st
GenderPie <- table(st$Gender)
GenderPie <- st |> group_by(Gender) |> summarise(freq = n()) |> mutate(GenderPie, per = freq/sum(freq), label = paste0(round(per * 100, 1), "%"))
GenderPie |> ggplot(aes(x = '', y = per, fill = Gender)) +
  geom_bar(stat = 'identity') + 
  coord_polar('y') + 
  geom_text(aes(label = label), 
            position = position_stack(vjust = 0.5), 
            color = "white", size = 4) +
  labs(title = "Tỷ lệ giới tính")

Từ bảng tần suất và biểu đồ tròn thể hiện tỷ lệ giới tính trong tổng số 14.059 quan sát:

Giới tính nữ (F): chiếm 51%, tương đương 7.170 người.

Giới tính nam (M): chiếm 49%, tương đương 6.889 người.

→ Cơ cấu giới tính khá cân bằng, gần như chia đều giữa nam và nữ. Giới nữ chiếm tỷ lệ nhỉnh hơn một chút (hơn khoảng 1%) so với nam.

2.3.1.2 Thống kê mô tả biến MaritalStatus - Tình trạng hôn nhân

st %>%
  count(MaritalStatus) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  kable(caption = "Tần số và tần suất theo tình trạng hôn nhân")
Tần số và tần suất theo tình trạng hôn nhân
MaritalStatus n Percent
M 6866 48.84
S 7193 51.16
MaritalStatusPie <- st
MaritalStatusPie <- table(st$MaritalStatus)
MaritalStatusPie <- st |> group_by(MaritalStatus) |> summarise(freq = n()) |> mutate(MaritalStatusPie, per = freq/sum(freq), label = paste0(round(per * 100, 1), "%"))
MaritalStatusPie |> ggplot(aes(x = '', y = per, fill = MaritalStatus)) +
  geom_bar(stat = 'identity') + 
  coord_polar('y') + 
  geom_text(aes(label = label), 
            position = position_stack(vjust = 0.5), 
            color = "white", size = 4) +
  labs(title = "Tỷ lệ kết hôn")

Biểu đồ tròn và bảng tần suất thể hiện tỷ lệ giữa hai nhóm:

Độc thân (S): 7.193 người — chiếm 51.16%

Đã kết hôn (M): 6.866 người — chiếm 48.84%

→ Cơ cấu gần như cân bằng giữa người độc thân và người đã kết hôn. Nhóm độc thân chiếm tỷ lệ nhỉnh hơn một chút so với nhóm đã kết hôn (chênh lệch khoảng 2.3%). Điều này cho thấy dữ liệu đại diện tốt cho cả hai trạng thái hôn nhân, không bị thiên lệch mạnh về một phía.

2.3.1.3 Thống kê mô tả biến Homeowner - Chủ nhà

st %>%
  count(Homeowner) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  kable(caption = "Tần số và tần suất theo chủ nhà")
Tần số và tần suất theo chủ nhà
Homeowner n Percent
N 5615 39.94
Y 8444 60.06
HomeownerPie <- st
HomeownerPie <- table(st$Homeowner)
HomeownerPie <- st |> group_by(Homeowner) |> summarise(freq = n()) |> mutate(HomeownerPie, per = freq/sum(freq), label = paste0(round(per * 100, 1), "%"))
HomeownerPie |> ggplot(aes(x = '', y = per, fill = Homeowner)) +
  geom_bar(stat = 'identity') + 
  coord_polar('y') + 
  geom_text(aes(label = label), 
            position = position_stack(vjust = 0.5), 
            color = "white", size = 4) +
  labs(title = "Tỷ lệ có nhà")

Biểu đồ và bảng thể hiện tỷ lệ giữa hai nhóm:

Có sở hữu nhà (Y): 8.444 người — chiếm 60.06%

Không sở hữu nhà (N): 5.615 người — chiếm 39.94%

→ Tỷ lệ người sở hữu nhà (Homeowner = Y) chiếm phần lớn trong tập dữ liệu (hơn 60%). Chênh lệch tương đối rõ rệt: Khoảng 20% giữa hai nhóm. Điều này có thể phản ánh mức độ ổn định tài chính tương đối cao trong dữ liệu.

2.3.2 Thống kê mô tả các biến về Thông tin địa lý

2.3.2.1 Thống kê mô tả biến City - Thành phố

st %>%
  count(City) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  kable(caption = "Tần số và tần suất theo thành phố")
Tần số và tần suất theo thành phố
City n Percent
Acapulco 383 2.72
Bellingham 143 1.02
Beverly Hills 811 5.77
Bremerton 834 5.93
Camacho 452 3.22
Guadalajara 75 0.53
Hidalgo 845 6.01
Los Angeles 926 6.59
Merida 654 4.65
Mexico City 194 1.38
Orizaba 464 3.30
Portland 876 6.23
Salem 1386 9.86
San Andres 621 4.42
San Diego 866 6.16
San Francisco 130 0.92
Seattle 922 6.56
Spokane 875 6.22
Tacoma 1257 8.94
Vancouver 633 4.50
Victoria 176 1.25
Walla Walla 160 1.14
Yakima 376 2.67
# Tính tần suất và phần trăm
CityBar <- st |> 
  group_by(City) |> 
  summarise(freq = n()) |> 
  mutate(per = freq / sum(freq))

# Vẽ biểu đồ cột
ggplot(CityBar, aes(x = City, y = per, fill = City)) +
  geom_bar(stat = 'identity') +
  labs(title = "Tỷ lệ theo Thành phố", x = "Thành phố", y = "Tỷ lệ") +
  scale_y_continuous(labels = scales::percent) +
  theme_minimal() +
  theme(axis.text.x = element_blank())

Biểu đồ cột cho thấy sự chênh lệch rõ rệt về phân bố số lượng quan sát theo thành phố. Trong đó, Salem và Tacoma là hai thành phố có số lượng mẫu lớn nhất, lần lượt chiếm 9.86% và 8.94% tổng số quan sát. Các thành phố như Guadalajara, San Francisco và Bellingham có tần suất rất thấp, dưới 1.1%.

Điều này cho thấy các chi nhánh siêu thị trong dữ liệu này hoạt động mạnh nhất ở Salem và Tacoma. Và rất ít chi nhánh tại các thành phố Guadalajara, San Francisco và Bellingham vì thế nên số người ở các thành phố này chiếm tỷ lệ mua hàng rất thấp.

2.3.2.2 Thống kê mô tả biến StateorProvince - Tiểu bang

st %>%
  count(StateorProvince) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  kable(caption = "Tần số và tần suất theo tiểu bang")
Tần số và tần suất theo tiểu bang
StateorProvince n Percent
BC 809 5.75
CA 2733 19.44
DF 815 5.80
Guerrero 383 2.72
Jalisco 75 0.53
OR 2262 16.09
Veracruz 464 3.30
WA 4567 32.48
Yucatan 654 4.65
Zacatecas 1297 9.23
# Tính tần suất và phần trăm
StateorProvinceBar <- st |> 
  group_by(StateorProvince) |> 
  summarise(freq = n()) |> 
  mutate(per = freq / sum(freq))

# Vẽ biểu đồ cột
ggplot(StateorProvinceBar, aes(x = StateorProvince, y = per, fill = StateorProvince)) +
  geom_bar(stat = 'identity') +
  labs(title = "Tỷ lệ theo Tiểu bang", x = "Tiểu bang", y = "Tỷ lệ") +
  scale_y_continuous(labels = scales::percent) +
  theme_minimal() 

Biểu đồ cột cho thấy sự phân bố không đều về số lượng khách hàng giữa các tiểu bang, với một số tiểu bang chiếm tỷ lệ nổi bật so với phần còn lại.

Tiểu bang có số lượng khách hàng cao nhất:

WA (Washington): 4.567 người — chiếm 32.48% tổng mẫu.

CA (California): 2.733 người — chiếm 19.44%

OR (Oregon): 2.262 người — chiếm 16.09%

→ Tổng cộng 3 bang này đã chiếm gần 68% tổng số khách hàng, cho thấy đây là các khu vực trọng điểm hoạt động của hệ thống siêu thị.

Các tiểu bang có tần suất thấp hơn: Jalisco (0.53%), Guerrero (2.72%), Veracruz (3.30%), Yucatan (4.65%)

→ Điều này phản ánh rõ các trung tâm hoạt động chính của hệ thống siêu thị tập trung chủ yếu tại khu vực Tây Bắc nước Mỹ. Ngược lại, các bang của Mexico như Jalisco, Guerrero và Veracruz chỉ chiếm tỷ trọng nhỏ, cho thấy cơ hội mở rộng thị trường tại khu vực này nếu có chiến lược phù hợp.

2.3.2.3 Thống kê mô tả biến Country - Quốc gia

st %>%
  count(Country) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  kable(caption = "Tần số và tần suất theo quốc gia")
Tần số và tần suất theo quốc gia
Country n Percent
Canada 809 5.75
Mexico 3688 26.23
USA 9562 68.01
# Tính tần suất và phần trăm
CountryBar <- st |> 
  group_by(Country) |> 
  summarise(freq = n()) |> 
  mutate(per = freq / sum(freq))

# Vẽ biểu đồ cột
ggplot(CountryBar, aes(x = Country, y = per, fill = Country)) +
  geom_bar(stat = 'identity') +
  labs(title = "Tỷ lệ theo Quốc gia", x = "Quốc gia", y = "Tỷ lệ") +
  scale_y_continuous(labels = scales::percent) +
  theme_minimal() 

Phần lớn khách hàng thuộc quốc gia USA, chiếm đến 68.01% tổng số mẫu. Điều này cho thấy thị trường chủ yếu tập trung ở Mỹ. Mexico đứng thứ hai với tỷ lệ khoảng 26.23%, cũng là một thị trường đáng kể. Canada chiếm tỷ lệ nhỏ nhất, chỉ khoảng 5.75%.

Sự phân bố này phản ánh mức độ phổ biến và sự tập trung khách hàng theo khu vực địa lý, có thể do yếu tố dân số, quy mô thị trường hoặc mức độ phát triển của từng quốc gia.

2.3.3 Thống kê mô tả các biến về Phân loại sản phẩm

2.3.3.1 Thống kê mô tả biến ProductFamily - Nhóm sản phẩm

st %>%
  count(ProductFamily) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  kable(caption = "Tần số và tần suất theo nhóm sản phẩm")
Tần số và tần suất theo nhóm sản phẩm
ProductFamily n Percent
Drink 1250 8.89
Food 10153 72.22
Non-Consumable 2656 18.89
ProductFamilyPie <- st
ProductFamilyPie <- table(st$ProductFamily)
ProductFamilyPie <- st |> group_by(ProductFamily) |> summarise(freq = n()) |> mutate(ProductFamilyPie, per = freq/sum(freq), label = paste0(round(per * 100, 1), "%"))
ProductFamilyPie |> ggplot(aes(x = '', y = per, fill = ProductFamily)) +
  geom_bar(stat = 'identity') + 
  coord_polar('y') + 
  geom_text(aes(label = label), 
            position = position_stack(vjust = 0.5), 
            color = "white", size = 4) +
  labs(title = "Tỷ lệ các nhóm sản phẩm")

Nhóm sản phẩm Thực phẩm (Food )chiếm tỷ trọng áp đảo trong tổng số sản phẩm được tiêu thụ, với hơn 72%. Điều này cho thấy thực phẩm là mặt hàng cốt lõi, đóng vai trò chính trong doanh thu hoặc hoạt động của siêu thị.

Nhóm sản phẩm Không tiêu dùng (Non-Consumable) chiếm gần 19%, phản ánh rằng bên cạnh các mặt hàng tiêu dùng nhanh, siêu thị cũng bán một lượng đáng kể sản phẩm như đồ gia dụng, vật dụng cá nhân,…

Nhóm sản phẩm Đồ uống (Drink) là nhóm nhỏ nhất, chỉ chiếm 8.89%, cho thấy vai trò bổ trợ trong cơ cấu sản phẩm.

2.3.3.2 Thống kê mô tả biến ProductDepartment - Dòng sản phẩm

st %>%
  count(ProductDepartment) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  kable(caption = "Tần số và tần suất theo dòng sản phẩm")
Tần số và tần suất theo dòng sản phẩm
ProductDepartment n Percent
Alcoholic Beverages 356 2.53
Baked Goods 425 3.02
Baking Goods 1072 7.63
Beverages 680 4.84
Breakfast Foods 188 1.34
Canned Foods 977 6.95
Canned Products 109 0.78
Carousel 59 0.42
Checkout 82 0.58
Dairy 903 6.42
Deli 699 4.97
Eggs 198 1.41
Frozen Foods 1382 9.83
Health and Hygiene 893 6.35
Household 1420 10.10
Meat 89 0.63
Periodicals 202 1.44
Produce 1994 14.18
Seafood 102 0.73
Snack Foods 1600 11.38
Snacks 352 2.50
Starchy Foods 277 1.97
# Tính tần suất và phần trăm
ProductDepartmentBar <- st |> 
  group_by(ProductDepartment) |> 
  summarise(freq = n()) |> 
  mutate(per = freq / sum(freq))

# Vẽ biểu đồ cột
ggplot(ProductDepartmentBar, aes(x = ProductDepartment, y = per, fill = ProductDepartment)) +
  geom_bar(stat = 'identity') +
  labs(title = "Tỷ lệ theo Dòng sản phẩm", x = "Dòng sản phẩm", y = "Tỷ lệ") +
  scale_y_continuous(labels = scales::percent) +
  theme_minimal() +
  theme(axis.text.x = element_blank())

Biểu đồ cột cho thấy sự đa dạng và mức độ phổ biến không đồng đều giữa các dòng sản phẩm trong siêu thị. Một số dòng chiếm tỷ trọng lớn, trong khi nhiều dòng chỉ chiếm tỷ lệ rất nhỏ.

Nhóm sản phẩm phổ biến nhất:

Produce (Rau củ quả): 1.994 lần mua – chiếm 14.18%

Snack Foods (Đồ ăn vặt): 1.600 – 11.38%

Household (Đồ gia dụng): 1.420 – 10.10%

Frozen Foods (Đồ đông lạnh): 1.382 – 9.83%

→ Các nhóm này chiếm hơn 45% tổng số lượt mua, cho thấy đây là những dòng sản phẩm thiết yếu và có sức tiêu thụ cao. Điều này cho thấy người tiêu dùng có xu hướng ưu tiên các sản phẩm tươi, tiện lợi và thiết yếu.

Nhóm sản phẩm ít phổ biến: Carousel (0.42%), Checkout (0.58%), Meat (0.63%), Seafood (0.73%), Canned Products (0.78%).

→ Phản ánh nhu cầu hạn chế hoặc phân khúc khách hàng nhỏ. Phân tích này có thể định hướng cho việc quản lý danh mục sản phẩm, tối ưu tồn kho và marketing theo nhóm hàng chủ lực.

2.3.3.3 Thống kê mô tả biến ProductCategory - Danh mục sản phẩm

st %>%
  count(ProductCategory) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  kable(caption = "Tần số và tần suất theo danh mục sản phẩm")
Tần số và tần suất theo danh mục sản phẩm
ProductCategory n Percent
Baking Goods 484 3.44
Bathroom Products 365 2.60
Beer and Wine 356 2.53
Bread 425 3.02
Breakfast Foods 417 2.97
Candles 45 0.32
Candy 352 2.50
Canned Anchovies 44 0.31
Canned Clams 53 0.38
Canned Oysters 35 0.25
Canned Sardines 40 0.28
Canned Shrimp 38 0.27
Canned Soup 404 2.87
Canned Tuna 87 0.62
Carbonated Beverages 154 1.10
Cleaning Supplies 189 1.34
Cold Remedies 93 0.66
Dairy 903 6.42
Decongestants 85 0.60
Drinks 135 0.96
Eggs 198 1.41
Electrical 355 2.53
Frozen Desserts 323 2.30
Frozen Entrees 118 0.84
Fruit 765 5.44
Hardware 129 0.92
Hot Beverages 226 1.61
Hygiene 197 1.40
Jams and Jellies 588 4.18
Kitchen Products 217 1.54
Magazines 202 1.44
Meat 761 5.41
Miscellaneous 42 0.30
Packaged Vegetables 48 0.34
Pain Relievers 192 1.37
Paper Products 345 2.45
Pizza 194 1.38
Plastic Products 141 1.00
Pure Juice Beverages 165 1.17
Seafood 102 0.73
Side Dishes 153 1.09
Snack Foods 1600 11.38
Specialty 289 2.06
Starchy Foods 277 1.97
Vegetables 1728 12.29
# Tính tần suất và phần trăm
ProductCategoryBar <- st |> 
  group_by(ProductCategory) |> 
  summarise(freq = n()) |> 
  mutate(per = freq / sum(freq))

# Vẽ biểu đồ cột
ggplot(ProductCategoryBar, aes(x = ProductCategory, y = per, fill = ProductCategory)) +
  geom_bar(stat = 'identity') +
  labs(title = "Tỷ lệ theo Danh mục sản phẩm", x = "Danh mục sản phẩm", y = "Tỷ lệ") +
  scale_y_continuous(labels = scales::percent) +
  theme_minimal() +
  theme(axis.text.x = element_blank())

Biểu đồ cột minh họa rõ sự tập trung tiêu dùng vào một số ít danh mục chính, trong khi phần lớn các danh mục còn lại có tần suất khá thấp.

Danh mục sản phẩm chiếm tỷ trọng cao nhất:

Vegetables (Rau củ): 1.728 – 12.29%

Snack Foods (Đồ ăn vặt): 1.600 – 11.38%

Dairy (Sản phẩm từ sữa): 903 – 6.42%

Fruit (Trái cây): 765 – 5.44%

Meat (Thịt): 761 – 5.41%

Jams and Jellies (Mứt và thạch): 588 – 4.18%

→ Các danh mục này chiếm gần 45% tổng số lượt mua, là nhóm sản phẩm chủ lực cho thấy đây là những sản phẩm có nhu cầu cao, được tiêu thụ thường xuyên.

Danh mục sản phẩm có tần suất thấp (dưới 1%): Candles, Canned Clams, Sardines, Shrimp, Oysters, Anchovies, v.v.

→ Đây là những sản phẩm đặc thù, có tính chất mùa vụ hoặc phục vụ sở thích riêng biệt, do đó mức độ tiêu dùng thấp. Tuy chiếm tỷ trọng thấp nhưng tạo nên sự đa dạng cần thiết cho danh mục sản phẩm.

Sự phân bố này phản ánh mô hình tiêu dùng ưu tiên sự thiết yếu, tiện lợi và thường xuyên của khách hàng siêu thị.

2.4 Thống kê mô tả cho nhiều biến

2.4.1 Thu nhập hằng năm theo giới tính

st %>%
  count(Gender, AnnualIncome) %>%
  group_by(Gender) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  ungroup() %>%
  kable(caption = "Tần số và tần suất thu nhập hằng năm theo giới tính")
Tần số và tần suất thu nhập hằng năm theo giới tính
Gender AnnualIncome n Percent
F $10K - $30K 1587 22.13
F $110K - $130K 307 4.28
F $130K - $150K 390 5.44
F $150K + 140 1.95
F $30K - $50K 2243 31.28
F $50K - $70K 1224 17.07
F $70K - $90K 959 13.38
F $90K - $110K 320 4.46
M $10K - $30K 1503 21.82
M $110K - $130K 336 4.88
M $130K - $150K 370 5.37
M $150K + 133 1.93
M $30K - $50K 2358 34.23
M $50K - $70K 1146 16.64
M $70K - $90K 750 10.89
M $90K - $110K 293 4.25
ggplot(st, aes(Gender, fill = AnnualIncome)) + geom_bar(position = 'dodge') +
  labs(title = "Thu nhập hằng năm theo giới tính")

Từ bảng và biểu đồ ta có thể thấy được: Khoảng thu nhập phổ biến nhất đối với cả 2 giới là $30K - $50K, chiếm khoảng 31.28% nữ và 34.23% nam, tức đây là nhóm thu nhập trung bình – thấp chiếm đa số. Phân bố thu nhập giữa nam và nữ khá tương đồng ở hầu hết các nhóm, không có sự khác biệt lớn.

Ở các mức thu nhập cao hơn như $70K - $90K, nữ có tỷ lệ cao hơn một chút (13.38% so với 10.89%), trong khi ở các nhóm thu nhập thấp nhất ($10K - $30K), tỉ lệ 2 giới cũng gần tương đương.

Tỷ lệ có thu nhập trên $150K rất thấp, dưới 2% cho cả nam và nữ, cho thấy nhóm thu nhập cao chiếm phần rất nhỏ trong tổng thể mẫu.

2.4.2 Tình trạng hôn nhân và chỗ ở

st %>%
  count(Homeowner, MaritalStatus) %>%
  group_by(Homeowner) %>%
  mutate(Percent = round(n / sum(n) * 100, 2)) %>%
  ungroup() %>%
  kable(caption = "Tần số và tần suất trình trạng hôn nhân và chỗ ở")
Tần số và tần suất trình trạng hôn nhân và chỗ ở
Homeowner MaritalStatus n Percent
N M 1719 30.61
N S 3896 69.39
Y M 5147 60.95
Y S 3297 39.05
df_summary0 <- st %>%
  count(Homeowner, MaritalStatus)

ggplot(df_summary0, aes(x = Homeowner, y = n, fill = MaritalStatus)) +
  geom_col(position = "stack") +
  labs(title = "Tình trạng hôn nhân và chỗ ở",
       x = "Chỗ ở", y = "Số lượng") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Trong nhóm không có nhà (N), phần lớn là người độc thân (S), chiếm tới 69.39%, còn người đã kết hôn chỉ chiếm 30.61%. Điều này có thể lý giải vì người độc thân thường ít có khả năng hoặc ít quan tâm mua nhà riêng.

Trong nhóm có nhà (Y), phần lớn là người đã kết hôn, chiếm tới 60.95%, cao hơn hẳn nhóm độc thân (39.05%). Điều này phản ánh thực tế là người đã kết hôn thường có xu hướng ổn định chỗ ở hơn, có khả năng sở hữu nhà nhiều hơn.

2.4.3 Tổng doanh thu dựa trên tiểu bang và tình trạng hôn nhân

st %>%
  group_by(StateorProvince, MaritalStatus) %>%
  summarise(TotalRevenue = sum(Revenue, na.rm = TRUE)) %>%
  group_by(StateorProvince) %>%
  mutate(Percent = round(TotalRevenue / sum(TotalRevenue) * 100, 2)) %>%
  ungroup() %>%
  kable(caption = "Tổng doanh thu và phần trăm theo Tiểu bang và Tình trạng hôn nhân")
Tổng doanh thu và phần trăm theo Tiểu bang và Tình trạng hôn nhân
StateorProvince MaritalStatus TotalRevenue Percent
BC M 5387.46 48.68
BC S 5679.57 51.32
CA M 17004.62 48.96
CA S 17725.79 51.04
DF M 5088.17 47.58
DF S 5606.19 52.42
Guerrero M 2441.69 47.31
Guerrero S 2719.62 52.69
Jalisco M 98.34 18.79
Jalisco S 424.98 81.21
OR M 13588.91 45.09
OR S 16549.53 54.91
Veracruz M 3289.21 52.67
Veracruz S 2956.01 47.33
WA M 29613.81 50.69
WA S 28805.86 49.31
Yucatan M 4347.89 49.74
Yucatan S 4392.56 50.26
Zacatecas M 8360.26 48.86
Zacatecas S 8749.96 51.14
df_summary1 <- st %>%
  group_by(StateorProvince, MaritalStatus) %>%
  summarise(total_revenue = sum(Revenue, na.rm = TRUE))

ggplot(df_summary1, aes(x = StateorProvince, y = total_revenue, fill = MaritalStatus)) +
  geom_col(position = "stack") +
  labs(title = "Tổng Danh thu theo Tiểu bang và Tình trạng hôn nhân",
       x = "Tiểu bang",
       y = "Tổng danh thu") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Ở hầu hết các tiểu bang, người độc thân (S) chiếm phần trăm doanh thu cao hơn so với người đã kết hôn (M), thường cao hơn khoảng 1-6%.

CA: Độc thân 51.04% > Kết hôn 48.96%

DF: Độc thân 52.42% > Kết hôn 47.58%

OR: Độc thân 54.91% > Kết hôn 45.09%

Ngoại lệ đáng chú ý là một số tiểu bang như Veracruz và WA, nơi người đã kết hôn chiếm tỷ lệ doanh thu cao hơn một chút.

Jalisco có sự chênh lệch rất lớn: người độc thân chiếm đến 81.21% doanh thu, trong khi người đã kết hôn chỉ 18.79%, đây có thể là điểm cần kiểm tra lại dữ liệu hoặc do đặc thù vùng miền.

Tổng doanh thu ở các tiểu bang lớn như WA, CA, OR cao nhất, phù hợp với quy mô kinh tế và dân số lớn.

2.4.4 Số lượng mua các nhóm sản phẩm dựa vào số con trong gia đình

st %>%
  group_by(Children, ProductFamily) %>%
  summarise(TotalUnits = sum(UnitsSold, na.rm = TRUE)) %>%
  group_by(Children) %>%
  mutate(Percent = round(TotalUnits / sum(TotalUnits) * 100, 2)) %>%
  ungroup() %>%
  kable(caption = "Phần trăm và tổng số sản phẩm đã mua theo Số con và Nhóm sản phẩm")
Phần trăm và tổng số sản phẩm đã mua theo Số con và Nhóm sản phẩm
Children ProductFamily TotalUnits Percent
0 Drink 472 8.95
0 Food 3832 72.67
0 Non-Consumable 969 18.38
1 Drink 976 9.14
1 Food 7704 72.16
1 Non-Consumable 1997 18.70
2 Drink 997 8.83
2 Food 8130 72.02
2 Non-Consumable 2162 19.15
3 Drink 987 8.31
3 Food 8710 73.34
3 Non-Consumable 2180 18.35
4 Drink 1080 9.04
4 Food 8627 72.19
4 Non-Consumable 2243 18.77
5 Drink 583 9.25
5 Food 4477 71.03
5 Non-Consumable 1243 19.72
df_summary2 <- st %>%
  group_by(Children, ProductFamily) %>%
  summarise(total_units = sum(UnitsSold, na.rm = TRUE))

ggplot(df_summary2, aes(x = Children, y = total_units, fill = ProductFamily)) +
  geom_col(position = "dodge") +
  labs(title = "Số lượng mua các nhóm sản phẩm dựa vào số con trong gia đình",
       x = "Số con",
       y = "Số lượng mua") +
  theme_minimal()

Nhóm Food chiếm tỷ lệ cao nhất trong tổng số sản phẩm đã mua, dao động khoảng 71-73% ở tất cả các nhóm số con. Đây là nhóm sản phẩm chủ lực trong chi tiêu của khách hàng bất kể số lượng con.

Nhóm Non-Consumable chiếm tỷ lệ khoảng 18-19%, tương đối ổn định, không bị ảnh hưởng nhiều bởi số con.

Nhóm Drink chiếm tỷ lệ thấp nhất, dao động quanh 8-9%, cũng khá ổn định theo số con.

Khi số con tăng, tổng số sản phẩm mua trong từng nhóm tăng lên, đặc biệt nhóm Food tăng lên rõ rệt, ví dụ từ 3832 (0 con) lên tới 8710 (3 con). Tuy nhiên, tỷ lệ phần trăm của nhóm Food vẫn duy trì ổn định.

Ở nhóm 5 con, tổng số sản phẩm mua giảm so với nhóm 4 con, có thể do số lượng khách hàng có 5 con ít hơn hoặc thay đổi thói quen mua sắm.