Chương này trình bày những khái niệm nền tảng về mô hình thống kê, trong đó mô hình tuyến tính tổng quát (generalized linear model) là trọng tâm chính của toàn bộ cuốn sách. Phần mở đầu giới thiệu các ký hiệu, định nghĩa và những vấn đề cốt lõi trong lĩnh vực này. Các nội dung cụ thể bao gồm:
Cách sử dụng ngôn ngữ toán học để biểu diễn dữ liệu.
Vai trò của đồ thị trong việc hiểu và phân tích dữ liệu.
Phương pháp chuyển các biến định tính sang dạng số để đưa vào mô hình.
Hai yếu tố thiết yếu của mô hình thống kê: phần hệ thống và phần ngẫu nhiên.
Giới thiệu các mô hình hồi quy – nhóm mô hình được sử dụng xuyên suốt nội dung sách.
Cách phân tích và diễn giải các mô hình thống kê.
Đối chiếu giữa mô hình thống kê và mô hình vật lý nhằm nêu bật những điểm giống và khác nhau.
Mục tiêu của việc xây dựng mô hình thống kê.
Hai yếu tố then chốt để đánh giá mô hình: mức độ chính xác và sự đơn giản.
Những giới hạn của mô hình thống kê, cùng sự phân biệt giữa dữ liệu thực nghiệm và dữ liệu quan sát.
Khả năng áp dụng mô hình vào các trường hợp ngoài phạm vi mẫu ban đầu.
Giới thiệu sơ lược về việc sử dụng phần mềm R trong mô hình hóa thống kê.
Dữ liệu được biểu diễn theo cách toán học: biến phản hồi \(y\), biến giải thích \(x_1, x_2, \ldots, x_p\).
Phân loại biến
Plotting Data - Vẽ biểu đồ - Dùng đồ thị như scatter plots, strip charts, boxplots để phát hiện xu hướng, outlier.
Coding for Factors - Mã hóa biến phân loại
Biến giả (Dummy variables): dùng \(k-1\) biến giả cho một yếu tố có \(k\) mức.
R mặc định sử dụng mã hóa “treatment coding”
Statistical Models Describe Both Random and Systematic Features of Data - Mô hình thống kê mô tả cả yếu tố ngẫu nhiên và có hệ thống của dữ liệu
Thành phần hệ thống: mô tả trung bình của phản hồi \(E(y) = μ = β₀ + β₁x₁ + ... + βₚxₚ\)
Thành phần ngẫu nhiên (Random): \(Var(y) = σ²\)
Thành phần ngẫu nhiên (random component) mô tả phân phối giá trị phản hồi ứng với mỗi tổ hợp biến giải thích.
Thành phần hệ thống (systematic component) mô tả mối quan hệ toán học giữa trung bình phản hồi và các biến giải thích (chiều cao, tuổi, giới tính, hút thuốc).
Mô hình thống kê = thành phần ngẫu nhiên + thành phần hệ thống, mô tả cả hai đặc điểm của dữ liệu thực tế.
\[ \mu_i = \beta_0 + \beta_1 x_{1i} + \beta_2 x_{2i} + \beta_3 x_{3i} + \beta_4 x_{4i} \]
\(\mu_i = E[y_i]\) là kỳ vọng của phản hồi \(y_i\) tại quan sát \(i\).
\(\beta_j\) là tham số hồi quy chưa biết với \(j = 0, 1, 2, 3, 4\).
\(x_1, x_2\): tuổi và chiều cao.
\(x_3, x_4\): biến giả cho giới tính và hút thuốc.
Mối quan hệ FEV – chiều cao có thể phi tuyến.
Có thể sử dụng các thành phần hệ thống khác như spline, đa thức bậc hai.
Giả sử phương sai không đổi: \(\mathrm{Var}(y_i) = \sigma^2\).
Giả định phổ biến:
\[ y_i \sim N(\mu_i, \sigma^2) \]
Nghĩa là \(y_i\) phân phối chuẩn với trung bình \(\mu_i\) và phương sai \(\sigma^2\).
Dữ liệu thực tế có thể có phương sai thay đổi theo giá trị trung bình, do đó giả định phương sai không đổi có thể chưa phù hợp.
Regression Models - Mô hình hồi quy
Trong phân tích dữ liệu, mô hình hồi quy là một cách phổ biến để mô tả mối quan hệ giữa giá trị trung bình của biến phản hồi \(y\) và các biến giải thích \(x_1, x_2, \ldots, x_p\).
Một mô hình hồi quy giả định rằng kỳ vọng của \(y_i\) phụ thuộc vào các biến giải thích \(x_{i1}, x_{i2}, \ldots, x_{ip}\) qua một hàm hệ thống liên quan đến các tham số hồi quy \(\beta_j\):
\[ E[y_i] = \mu_i = f(x_{i1}, \ldots, x_{ip}; \beta_0, \beta_1, \ldots, \beta_p) \]
Phổ biến nhất là khi mô hình tuyến tính trong các tham số:
\[ \mu_i = f(\beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip}) \tag{1.5} \]
\[ E[y_i] = \mu_i = \beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip} \tag{1.6} \]
\[ \mu_i = g^{-1}(\beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip}) \]
hoặc:
\[ g(\mu_i) = \beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip} \]
Trong đó \(g(\cdot)\) là một hàm liên kết đơn điệu (chẳng hạn như hàm logarit).
Các mô hình hồi quy tuyến tính là trường hợp đặc biệt của mô hình hồi quy tuyến tính tổng quát, với hàm liên kết \(g\) là hàm đồng nhất.
Interpreting Regression Models - Diễn giải mô hình hồi quy
Mô hình chỉ thực sự hữu ích khi có thể diễn giải một cách hợp lý. Hai thành phần hệ thống sau được so sánh:
\[ \mu = \beta_0 + \beta_1 x \tag{1.17} \]
\[ \log \mu = \beta_0 + \beta_1 x \tag{1.18} \]
Cụ thể, viết lại phương trình (1.18):
\[ \mu_x = \exp(\beta_0 + \beta_1 x) = \exp(\beta_0) \exp(\beta_1)^x \]
Khi \(x\) tăng từ \(x\) lên \(x + 1\), ta có:
\[ \mu_{x+1} = \exp(\beta_0) \exp(\beta_1)^{x+1} = \mu_x \exp(\beta_1) \]
Do đó, mỗi khi \(x\) tăng 1, \(\mu\) tăng lên một hệ số là \(\exp(\beta_1)\).
Nhà nghiên cứu cần lựa chọn mô hình có khả năng diễn giải hợp lý hơn với ngữ cảnh thực tế. Những mô hình dựa trên lý thuyết nền tảng (như mô hình (1.17) cho hồi quy tuyến tính) sẽ cho cách diễn giải dễ hiểu, trong khi cả hai mô hình (1.17) và (1.18) đều thích hợp cho hồi quy tuyến tính tổng quát (GLM).
Ngoài ra, khi có nhiều biến giải thích, cần cẩn trọng vì các biến có thể liên quan đến nhau (ví dụ: tuổi và chiều cao đều ảnh hưởng đến dung tích phổi). Khi đó, việc diễn giải các hệ số hồi quy cần xem xét mối quan hệ giữa các biến giải thích để tránh nhầm lẫn.
Các mô hình thống kê là cách để hiểu dữ liệu, nhưng chúng không phải là đại diện hoàn hảo cho thực tế. Box và Draper (1987) từng nói: “Tất cả các mô hình đều sai, nhưng một số thì hữu ích.”
Ý chính:
- Mô hình thống kê giúp đơn giản hóa, cô đọng thông tin để phục vụ một
mục tiêu cụ thể. - Chúng không nhất thiết phải chính xác tuyệt đối, mà
chỉ cần đủ để nắm được các đặc điểm quan trọng nhất của thực tế trong
bối cảnh sử dụng.
Mục đích xây dựng mô hình ảnh hưởng lớn đến cách mô hình được phát triển.
Dự đoán (Prediction) Mô hình dùng để dự báo các giá trị tương lai dựa trên dữ liệu hiện tại.
Diễn giải (Interpretation) Mô hình giúp hiểu mối quan hệ giữa các biến, ví dụ như biến nào ảnh hưởng mạnh đến kết quả.
Trong mô hình thống kê, có rất nhiều cách chọn thành phần hệ thống và ngẫu nhiên. Vấn đề đặt ra là: làm sao chọn được một mô hình phù hợp từ vô số mô hình khả dĩ?
Ba cách tiếp cận chính để chọn mô hình thống kê:
Theo nguyên lý Occam’s Razor, mô hình tốt nhất là mô hình đơn giản nhất mà vẫn mô tả đúng dữ liệu.
Mô hình quá đơn giản sẽ bỏ sót xu hướng dữ liệu; mô hình quá phức tạp thì dễ bị overfitting – tức là chỉ phù hợp với tập dữ liệu hiện tại nhưng kém tổng quát hóa với dữ liệu mới.
Dữ liệu sinh ra từ mô hình:
\[ y \sim \mathcal{N}(\mu, 0.35),\quad \mu =
x^3 - 3x + 5 \]
Ba mô hình thử nghiệm:
*Cubic model là mô hình được ưu tiên theo tiêu chí cân bằng giữa accuracy và parsimony**.
Experiments vs Observational Studies – Causality vs Association: Thí nghiệm vs Nghiên cứu quan sát: Nhân quả vs Tương quan
Mọi mô hình thống kê cần được sử dụng và hiểu trong bối cảnh cách dữ liệu được thu thập. Cách thu thập ảnh hưởng đến kết luận có thể rút ra từ mô hình.
Nghiên cứu quan sát (Observational Study)
Thí nghiệm (Designed Experiment)
Tính khái quát (generalizability) của mô hình phụ thuộc vào nguồn dữ liệu được thu thập. Kết luận từ một mô hình thống kê chỉ có giá trị trong phạm vi của quần thể mà dữ liệu được lấy từ đó.
Nếu dữ liệu được thu thập từ phụ nữ trên 60 tuổi ở Nhật Bản, thì kết quả phân tích không thể áp dụng cho:
Thu thập từ thanh thiếu niên tại Boston (tuổi 3–19) trong giai đoạn giữa đến cuối thập niên 1970.
Dữ liệu phản ánh hành vi hút thuốc của thanh thiếu niên ở thời điểm và địa phương đó.
Suy luận cho:
đều cần thận trọng vì có thể không còn phù hợp.
Chiều cao trong dữ liệu nằm trong khoảng 46–74 inches ⇒ mô hình không thể áp dụng cho chiều cao ngoài khoảng đó.
Không thể kỳ vọng rằng FEV sẽ tăng tuyến tính mãi mãi với tuổi và chiều cao.
Kết luận: Khi sử dụng mô hình thống kê, cần hiểu rõ phạm vi ứng dụng của kết luận, tránh việc khái quát hóa sai từ mẫu đến quần thể khác.
Ghi nhớ: Dữ liệu chỉ đại diện cho những gì bạn đo lường — đừng dùng mô hình cho những thứ nằm ngoài phạm vi bạn chưa từng khảo sát.
Ghi nhớ: Linear regression không chỉ là mô hình đầu tiên mà còn là cửa ngõ để khám phá các mô hình thống kê phức tạp hơn.
Linear regression model gồm 2 thành phần chính:
\[ \mu_i = E[y_i] = \beta_0 + \beta_1 x_i,\quad \text{Var}[y_i] = \sigma^2 / w_i \]
\[ S(\beta_0, \beta_1) = \sum_{i=1}^n w_i (y_i - \beta_0 - \beta_1 x_i)^2 \]
\[ \bar{x}_w = \frac{\sum_{i=1}^{n} w_i x_i}{\sum_{i=1}^{n} w_i},\quad \bar{y}_w = \frac{\sum_{i=1}^{n} w_i y_i}{\sum_{i=1}^{n} w_i} \]
\[ \hat{\beta}_1 = \frac{\sum_{i=1}^n w_i (x_i - \bar{x}_w)(y_i)}{\sum_{i=1}^n w_i (x_i - \bar{x}_w)^2} \]
\[ \hat{\beta}_0 = \bar{y}_w - \hat{\beta}_1 \bar{x}_w \]
\[ e_i = y_i - \hat{\mu}_i = y_i - \hat{\beta}_0 - \hat{\beta}_1 x_i \]
\[ \text{RSS} = \sum_{i=1}^n w_i e_i^2 \]
\[ s^2 = \frac{\text{RSS}}{n - 2} \]
\[ \text{Var}[\hat{\beta}_1] = \frac{\sigma^2}{\sum_{i=1}^n w_i (x_i - \bar{x}_w)^2} \]
\[ \text{SE}[\hat{\beta}_1] = \sqrt{ \frac{s^2}{\sum_{i=1}^n w_i (x_i - \bar{x}_w)^2} } \]
\[ \text{SE}[\hat{\beta}_0] = \sqrt{ s^2 \left( \frac{1}{\sum w_i} + \frac{\bar{x}_w^2}{\sum w_i (x_i - \bar{x}_w)^2} \right) } \]
\[ \hat{\mu}_i = \hat{\beta}_0 + \hat{\beta}_1 x_i \]
\[ \text{SE}[\hat{\mu}_i] = s \cdot \sqrt{ \frac{1}{\sum w_i} + \frac{(x_i - \bar{x}_w)^2}{\sum w_i (x_i - \bar{x}_w)^2} } \]
Ghi nhớ: Kiểm tra các giả định của mô hình là rất quan trọng: tuyến tính, phương sai không đổi, độc lập và mô hình áp dụng phù hợp cho toàn bộ mẫu.
Dạng ma trận của mô hình:
Mô hình hồi quy tuyến tính có thể được viết dưới dạng ma trận:
\[ y = X\beta + \varepsilon \] Trong đó:
Ước lượng OLS:
\[ \hat{\beta} = (X^T W X)^{-1} X^T W y \]
Phần dư và phương sai ước lượng:
\[ \hat{\mu}_i = \hat{y}_i = \hat{\beta}_0 + \sum_{j=1}^{p} \hat{\beta}_j x_{ji} \]
\[ s^2 = \frac{RSS}{n - p'} \]
\[ SE(\hat{\beta}_j) = \sqrt{s^{2} \cdot \bigl( X^{T} X \bigr)^{-1}_{jj}} \]
\[ \hat{\beta}_j \pm t_{\alpha/2, \, n - p} \times SE(\hat{\beta}_j) \]
Mô hình hóa: model <- lm(y ~ x1 + x2, data = dataset)
Kết quả mô hình:
summary(model)
confint(model)
anova(model)
\(\beta_0\): giá trị trung bình của \(y\) khi tất cả các biến \(x_j = 0\).
\(\beta_j\): mức thay đổi kỳ vọng của \(y\) khi \(x_j\) tăng 1 đơn vị, giữ các biến khác không đổi.
\[ H_0: \beta_j = 0 \]
\[ t = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \sim t_{n-p} \]
Trong đó:
\(\hat{\beta}_j\) là hệ số ước lượng của biến \(j\),
\(SE(\hat{\beta}_j)\) là sai số chuẩn của \(\hat{\beta}_j\),
\(t_{n-p}\) là phân phối t với \(n-p\) bậc tự do.
\[ TSS = \sum_{i=1}^{n} (y_i - \bar{y})^2 \]
\[ TSS = SSR + RSS \]
Trong đó:
\[ SSR = \sum_{i=1}^{n} (\hat{y}_i - \bar{y})^2 \]
\[ RSS = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \]
\[ R^2 = \frac{SSR}{TSS} = 1 - \frac{RSS}{TSS} \]
Định nghĩa: Hai mô hình được gọi là lồng nhau (nested models) khi mô hình đơn giản hơn (reduced model) là một trường hợp đặc biệt của mô hình phức tạp hơn (full model), tức là nó được tạo ra bằng cách loại bỏ một hay nhiều biến khỏi mô hình đầy đủ.
\[ F = \frac{(RSS_{\text{reduced}} - RSS_{\text{full}}) / (p_{\text{full}} - p_{\text{reduced}})}{s^2_{\text{full}}} \]
Trong đó:
\(RSS_{\text{reduced}}\) là tổng bình phương phần dư của mô hình rút gọn,
\(RSS_{\text{full}}\) là tổng bình phương phần dư của mô hình đầy đủ,
\(p_{\text{full}}\) và \(p_{\text{reduced}}\) lần lượt là số tham số của mô hình đầy đủ và mô hình rút gọn,
\(s^2_{\text{full}}\) là ước lượng phương sai phần dư của mô hình đầy đủ, được tính bằng:
\[ s^2_{\text{full}} = \frac{RSS_{\text{full}}}{n - p_{\text{full}}} \]
với \(n\) là số quan sát.
Định nghĩa: Hai mô hình được gọi là không lồng (non-nested) nếu không có mô hình nào là một trường hợp đặc biệt (submodel) của mô hình còn lại.
\[ AIC = -2 \cdot \ell(\hat{\theta}) + 2k \]
Trong đó:
\(\ell(\hat{\theta})\) là log-likelihood tại ước lượng MLE \(\hat{\theta}\),
\(k\) là số tham số trong mô hình (bao gồm cả hệ số hằng số \(\beta_0\)).
BIC (Bayesian Information Criterion) tương tự AIC nhưng mức phạt độ phức tạp mạnh hơn, được tính bằng:
\[ BIC = -2 \cdot \ell(\hat{\theta}) + \log(n) \cdot k \]
Trong đó:
\(n\) là kích thước mẫu,
\(k\) và \(\ell(\hat{\theta})\) như trên.
Nguyên tắc chọn mô hình:
AIC/BIC càng nhỏ càng tốt.
Nếu AIC của mô hình A < mô hình B khoảng 2 điểm trở lên, mô hình A được ưu tiên hơn đáng kể.
Định nghĩa:Lựa chọn mô hình là quá trình tìm ra tập hợp biến giải thích tốt nhất (phù hợp, đơn giản) để mô hình hóa biến phản hồi.
Có nhiều chiến lược lựa chọn mô hình:
Forward selection: bắt đầu từ mô hình rỗng, thêm biến từng bước.
Backward elimination: bắt đầu từ mô hình đầy đủ, loại bỏ từng biến.
Stepwise selection: kết hợp cả thêm và bớt biến ở mỗi bước.
Một số hàm sử dụng:
step(): chọn mô hình theo hướng forward/backward/stepwise.
drop1(), add1(): thêm hoặc bớt biến với kiểm định F.
extractAIC(): trả về AIC và số tham số.
Linear Regression Models: Diagnostics and Model-Building (Chẩn đoán mô hình hồi quy tuyến tính)
Sau khi xây dựng mô hình hồi quy tuyến tính, quá trình phân tích không chỉ dừng lại ở việc ước lượng các hệ số và kiểm định mức ý nghĩa thống kê. Một bước quan trọng tiếp theo là chẩn đoán mô hình, nhằm đánh giá mức độ phù hợp giữa mô hình và dữ liệu thực tế.
Chẩn đoán mô hình hồi quy đóng vai trò thiết yếu trong phân tích dữ liệu bởi vì nó giúp chúng ta:
Kiểm tra xem các giả định nền tảng của mô hình hồi quy tuyến tính có được đáp ứng hay không, chẳng hạn như: mối quan hệ tuyến tính giữa các biến, phương sai đồng nhất, phân phối chuẩn của phần dư…
Phát hiện các giá trị bất thường trong dữ liệu như điểm ngoại lai hoặc các quan sát có ảnh hưởng lớn – những điểm này có thể làm sai lệch kết quả ước lượng hoặc các kiểm định thống kê.
Đánh giá mức độ tin cậy của các hệ số hồi quy đã được ước lượng.
Xác định hướng điều chỉnh hoặc cải thiện mô hình, ví dụ: biến đổi biến độc lập, thêm hoặc loại bỏ biến giải thích, hoặc sử dụng các mô hình nâng cao như hồi quy phi tuyến hoặc mô hình tuyến tính tổng quát (GLM).
Nếu bỏ qua bước chẩn đoán, người phân tích dễ mắc phải các sai lầm nghiêm trọng như: xây dựng mô hình quá phức tạp (overfitting), hiểu sai bản chất mối quan hệ giữa các biến, hoặc đưa ra dự báo thiếu chính xác. Vì thế, chẩn đoán mô hình không phải là một lựa chọn tùy ý, mà là một phần bắt buộc trong quy trình phân tích hồi quy chuyên nghiệp.
Trong chương này, chúng ta sẽ tìm hiểu cách:
Kiểm định các giả định cơ bản của mô hình hồi quy.
Phân tích phần dư (residuals) để đánh giá mức độ phù hợp của mô hình.
Phát hiện và xử lý các điểm có ảnh hưởng lớn đến kết quả phân tích.
Đo lường hiện tượng đa cộng tuyến và áp dụng các biện pháp nhằm giảm thiểu tác động của nó.
Một mô hình hồi quy tuyến tính tiêu chuẩn đòi hỏi phải thỏa mãn 4 giả định cơ bản:
1. Giả định 1: Quan hệ tuyến tính
Mô hình giả định rằng trung bình của biến phản hồi \(y\) là hàm tuyến tính của các biến giải thích \(x_1, x_2, \ldots, x_p\).
Nếu quan hệ thật sự là phi tuyến mà ta vẫn dùng mô hình tuyến tính, kết quả ước lượng có thể bị thiên lệch và dự đoán sai.
\(\Rightarrow\) Cách kiểm tra: vẽ biểu đồ phần dư so với giá trị dự đoán, nếu thấy xu hướng cong (parabola, S-shape…) thì có thể là mô hình sai dạng.
2. Giả định 2: Phương sai không đổi (Homoscedasticity)
\[ \text{Var}(y_i) = \sigma^2 \]
\(\Rightarrow\) Cách kiểm tra: vẽ đồ thị phần dư. Nếu phần dư có dạng hình nón (rộng dần hoặc hẹp lại) thì có thể bị heteroscedasticity.
3. Giả định 3: Độc lập
Các quan sát \((x_i, y_i)\) phải độc lập nhau.
Nếu dữ liệu có tính chuỗi thời gian, dữ liệu lồng ghép (nested data) hoặc phân nhóm (clustered), thì mô hình tuyến tính cơ bản không còn phù hợp.
\(\Rightarrow\) Cách kiểm tra: nếu dữ liệu theo thời gian, nên kiểm tra phần dư có xu hướng (autocorrelation) hay không.
4. Giả định 4: Phân phối chuẩn của sai số
\(\Rightarrow\) Cách kiểm tra: dùng biểu đồ Q-Q plot (quantile-quantile) để so sánh phần dư với phân phối chuẩn.
Phần dư là công cụ trung tâm để chẩn đoán mô hình. Có nhiều cách tính phần dư:
1. Raw residual (Phần dư thô):
\[ e_i = y_i - \hat{y}_i \] Đơn giản là hiệu giữa giá trị thực tế và giá trị dự đoán.
2. Standardized residual (Phần dư chuẩn hóa):
\[ r_i = \frac{e_i}{\hat{\sigma} \sqrt{1 - h_{ii}}} \]
Giúp so sánh phần dư giữa các điểm có leverage khác nhau.
\(h_{ii}\): leverage – mức ảnh hưởng của điểm \(i\) lên dự đoán \(\hat{y}_i\).
3. Studentized residual:
\[ t_i = \frac{e_i}{\hat{\sigma}_{(i)} \sqrt{1 - h_{ii}}} \]
Giống standardized residual nhưng dùng \(\hat{\sigma}_{(i)}\) – phương sai ước lượng không dùng quan sát \(i\) \(\rightarrow\) chính xác hơn.
Dùng để phát hiện ngoại lai vì nó gần với phân phối t.
Một số biểu đồ quan trọng:
Residual vs Fitted Plot: kiểm tra tuyến tính và phương sai không đổi.
Normal Q-Q Plot: kiểm tra phân phối chuẩn của phần dư.
Scale-Location Plot: chuẩn hóa phần dư để dễ phát hiện heteroscedasticity.
Residuals vs Leverage Plot: xác định điểm ảnh hưởng lớn.
Định nghĩa: Là các điểm dữ liệu mà giá trị phản hồi \(y_i\) khác biệt lớn so với dự đoán từ mô hình, dù biến \(x_i\) không bất thường.
Dùng studentized residual để kiểm tra.
Quy tắc ngưỡng:
\(|t_i| > 2\): nghi ngờ.
\(|t_i| > 3\): có thể là ngoại lai đáng kể.
\(\Rightarrow\) Ngoại lai không nhất thiết có ảnh hưởng lớn, nhưng cần kiểm tra kỹ.
Định nghĩa: Là những điểm dữ liệu mà nếu bị loại bỏ, mô hình sẽ thay đổi đáng kể.
Các chỉ số phổ biến để đo ảnh hưởng:
1. Leverage (Hệ số đòn bẩy):
\[ h_{ii} = x_i^T (X^T X)^{-1} x_i \]
Đo khoảng cách của \(x_i\) đến trung tâm của các điểm \(x\).
Nếu \(h_{ii} > \frac{2p}{n}\): điểm có leverage cao.
2. Cook’s Distance (Khoảng cách Cook):
\[ D_i = \frac{p \hat{\sigma}^2 e_i^2}{(1 - h_{ii})^2 h_{ii}} \]
Kết hợp giữa độ lệch (residual) và leverage.
Nếu \(D_i > 0.5\): có thể có ảnh hưởng.
Nếu \(D_i > 1\): ảnh hưởng lớn cần xem xét kỹ.
3. DFBETAS:
\[ \text{DFBETAS}_{ij} = \frac{\hat{\beta}_j - \hat{\beta}_{j(i)}}{\text{SE}(\hat{\beta}_{j(i)})} \]
Mức thay đổi của hệ số \(\beta_j\) khi loại bỏ quan sát \(i\).
Dùng để kiểm tra ảnh hưởng của từng điểm lên từng hệ số cụ thể.
Định nghĩa: Xảy ra khi hai hay nhiều biến giải thích có tương quan cao, khiến cho ước lượng \(\beta_j\) không ổn định (nhỏ thay đổi dữ liệu \(\rightarrow\) lớn thay đổi hệ số).
Variance Inflation Factor (VIF):
\[ \mathrm{VIF}_j = \frac{1}{1 - R_j^2} \]
\(R_j^2\) : hệ số xác định khi hồi quy \(x_j\) lên tất cả các biến còn lại.
Nếu \(\mathrm{VIF}_j > 5\) hoặc \(> 10\): có vấn đề cần xử lý.
Khi mô hình vi phạm giả định:
Dùng biến đổi (log, sqrt, Box-Cox…).
Dùng mô hình phi tuyến hoặc mô hình GLM.
Loại bỏ hoặc thay thế điểm ảnh hưởng quá lớn.
Thêm biến bị thiếu hoặc loại bớt biến gây nhiễu.
Maximum likehood estimation - MLE (ước lượng hợp lý tối đa)
Phương pháp bình phương tối thiểu (OLS) chỉ hoạt động hiệu quả khi dữ liệu thỏa mãn các giả định như phân phối chuẩn, phương sai không đổi, và biến phản hồi liên tục. Tuy nhiên, nhiều loại dữ liệu thực tế không tuân theo những điều kiện đó – ví dụ: dữ liệu nhị phân, đếm, hoặc dương liên tục. Khi đó, Maximum Likelihood Estimation (MLE) là phương pháp mạnh mẽ hơn, dùng để ước lượng các tham số trong mô hình tổng quát.
MLE là nền tảng cho mô hình tuyến tính tổng quát (GLM), vốn là trung tâm của phần còn lại trong sách.
Định nghĩa: Hàm hợp lý là một hàm xác suất của toàn bộ dữ liệu đã quan sát, biểu diễn như một hàm của tham số \(\theta\).
Giả sử ta có một mẫu gồm \(n\) quan sát độc lập \(y_1, y_2, \ldots, y_n\), với mỗi \(y_i\) có phân phối xác suất \(f(y_i; \theta)\), thì:
Hàm hợp lý:
\[ L(\theta) = \prod_{i=1}^{n} f(y_i; \theta) \]
\(L(\theta)\): hàm hợp lý
\(\theta\): vector các tham số cần ước lượng
\(f(y_i; \theta)\): mật độ xác suất (hoặc khối xác suất) của \(y_i\)
Log-hợp lý (log-likelihood):
\[ \ell(\theta) = \log L(\theta) = \sum_{i=1}^{n} \log f(y_i; \theta) \]
Dễ đạo hàm hơn vì tích thành tổng.
Giá trị cực đại của \(\ell(\theta)\) trùng với \(L(\theta)\).
Định nghĩa: MLE là giá trị \(\hat{\theta}\) của tham số \(\theta\) sao cho log-likelihood đạt cực đại.
\[ \hat{\theta} = \arg\max_{\theta} \, \ell(\theta) \] Để tìm \(\hat{\theta}\), ta giải:
\[ \frac{d\ell(\theta)}{d\theta} = 0 \]
\(\Rightarrow\) Đây gọi là phương trình điểm (score equation).
1. Hàm điểm (Score Function):
\[ U(\theta) = \frac{d\ell(\theta)}{d\theta} \]
2. Ma trận thông tin Fisher:
\[ I(\theta) = -\mathbb{E} \left[ \frac{d^2 \ell(\theta)}{d\theta^2} \right] \]
\(I(\theta)\): kỳ vọng âm của đạo hàm bậc hai log-likelihood → đo độ cong.
Là xấp xỉ ngược lại của phương sai: \[ \mathrm{Var}(\hat{\theta}) \approx \frac{1}{I(\theta)} \]
MLE có nhiều tính chất tốt về mặt lý thuyết, đặc biệt khi kích thước mẫu n lớn:
| Tính chất | Giải thích |
|---|---|
| Nhất quán | \(\hat{\theta} \to \theta\) khi \(n \to \infty\) |
| Không chệch tiệm cận | Độ lệch giữa \(\hat{\theta}\) và \(\theta\) tiến về 0 |
| Hiệu quả | MLE đạt giới hạn Cramér–Rao, là ước lượng “tốt nhất” |
| Tiệm cận chuẩn | Khi \(n\) lớn, phân phối của \(\hat{\theta}\) gần chuẩn: \(\hat{\theta} \sim \mathcal{N}(\theta, I(\theta)^{-1})\) |
\[ H_0: \theta = \theta_0 \]
1. Wald Test:
\[ Z = \frac{\hat{\theta} - \theta_0}{SE(\hat{\theta})}, \quad Z \sim N(0,1) \]
2. Likelihood Ratio Test (LRT):
\[ LR = 2 \left[ \ell(\hat{\theta}) - \ell(\theta_0) \right] \sim \chi^2_{df} \]
So sánh log-likelihood của mô hình đầy đủ và mô hình rút gọn.
\(df\): số tham số bị ràng buộc trong \(H_0\).
3. Score Test (Lagrange Multiplier Test):
\[ S = \frac{U(\theta_0)^2}{I(\theta_0)} \sim \chi^2_1 \]
Không cần ước lượng mô hình đầy đủ.
Khi không thể dùng kiểm định LRT (do mô hình không lồng), ta dùng:
1. AIC – Akaike Information Criterion:
\[ \text{AIC} = -2\ell + 2k \]
\(k\): số tham số trong mô hình
\(\ell\): log-likelihood tại MLE
2. BIC – Bayesian Information Criterion:
\[ \text{BIC} = -2\ell + \log(n) \cdot k \]
→ Chọn mô hình có AIC/BIC thấp hơn.
\[ y_i \sim \text{Bernoulli}(\pi_i), \quad \log\left(\frac{\pi_i}{1 - \pi_i}\right) = x_i^T \beta \]
\[ y_i \sim \text{Poisson}(\mu_i), \quad \log(\mu_i) = x_i^T \beta \]
\[ y_i \sim \text{Gamma}(\alpha, \mu_i), \quad \log(\mu_i) = x_i^T \beta \]
→ Cả ba đều dùng MLE để ước lượng \(\beta\), chứ không dùng OLS.
Mô hình tuyến tính tổng quát (GLM) là một khuôn khổ mạnh mẽ cho việc mô hình hóa các loại dữ liệu khác nhau – không chỉ dữ liệu liên tục có phân phối chuẩn như trong hồi quy tuyến tính. GLM bao gồm hồi quy logistic, hồi quy Poisson, hồi quy Gamma… và mở rộng khả năng phân tích đến dữ liệu nhị phân, đếm, tỷ lệ và dương liên tục.
Mỗi GLM được xây dựng trên cùng một nguyên lý chung gồm ba thành phần chính: phân phối xác suất, hàm liên kết, và thành phần tuyến tính.
1. Thành phần ngẫu nhiên (Random component)
Biến phản hồi \(y_i\) được giả định phân phối theo một phân phối thuộc họ hàm mũ một tham số (One-Parameter Exponential Family):
\[ f(y_i; \theta_i, \phi) = \exp \left\{ \frac{y_i \theta_i - b(\theta_i)}{\phi} + c(y_i, \phi) \right\} \]
Ý nghĩa các ký hiệu:
→ Họ hàm mũ bao gồm Normal, Poisson, Binomial, Gamma,…
2. Thành phần hệ thống (Systematic component)
Giống như hồi quy tuyến tính, GLM vẫn dùng một predictor tuyến tính:
\[ \eta_i = x_i^T \beta = \beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip} \]
Ý nghĩa:
Đây là thành phần chứa ảnh hưởng của các biến độc lập lên mô hình.
3. Hàm liên kết (Link function)
GLM dùng một hàm liên kết \(g(\cdot)\) để kết nối trung bình \(\mu_i = E[y_i]\) với predictor tuyến tính \(\eta_i\):
\[ g(\mu_i) = \eta_i \quad \text{hay} \quad \mu_i = g^{-1}(\eta_i) \]
→ Cho phép mô hình hóa các biến phản hồi có đặc tính phi tuyến, không âm, giới hạn trong khoảng (0,1),…
Hàm liên kết thường dùng:
| Phân phối | \(\mu_i = E[y_i]\) | Link function \(g(\mu)\) | Ghi chú |
|---|---|---|---|
| Normal | \(\mu \in \mathbb{R}\) | \(g(\mu) = \mu\) (identity) | Hồi quy tuyến tính chuẩn |
| Binomial | \(\mu \in (0,1)\) | \(g(\mu) = \log \frac{\mu}{1-\mu}\) | Logistic regression |
| Poisson | \(\mu > 0\) | \(g(\mu) = \log(\mu)\) | Hồi quy đếm |
| Gamma | \(\mu > 0\) | \(g(\mu) = \log(\mu)\) hoặc \(g(\mu) = \frac{1}{\mu}\) | Mô hình dữ liệu dương |
1. Hồi quy Logistic (nhị phân)
\[ y_i \sim \text{Bernoulli}(\pi_i) \]
\[ g(\pi_i) = \log \left(\frac{\pi_i}{1-\pi_i}\right) = \eta_i \]
\[ \pi_i = P(y_i = 1 \mid x_i) \]
2. Hồi quy Poisson (đếm)
\[ y_i \sim \text{Poisson}(\mu_i) \]
\[ \log(\mu_i) = x_i^T \beta \]
\(\mu_i\): số sự kiện kỳ vọng xảy ra.
Dùng cho dữ liệu: số ca bệnh, số lần vi phạm, số giao dịch…
3. Hồi quy Gamma (dương liên tục)
\[ y_i \sim \text{Gamma}(\alpha, \mu_i) \]
Hàm liên kết:
\[ g(\mu_i) = \log(\mu_i) \quad \text{hoặc} \quad g(\mu_i) = \frac{1}{\mu_i} \]
Trong GLM, phương sai của \(y_i\) không cần bằng nhau mà được mô hình hóa như hàm của \(\mu_i\):
\[ \text{Var}(y_i) = \phi \cdot V(\mu_i) \]
Trong đó:
Hàm \(V(\mu)\) tùy theo phân phối như sau:
| Phân phối | \(V(\mu)\) |
|---|---|
| Normal | 1 |
| Binomial | \(\mu (1 - \mu)\) |
| Poisson | \(\mu\) |
| Gamma | \(\mu^2\) |
Việc mô hình hóa phương sai như trên giúp xử lý được hiện tượng phương sai thay đổi (heteroscedasticity), vốn là một giả định bị vi phạm trong phương pháp OLS (Hồi quy tuyến tính thông thường).
Canonical Link Function là hàm liên kết sao cho predictor tuyến tính chính là tham số tự nhiên \(\theta\) trong phân phối họ hàm mũ:
\[ \theta_i = \eta_i = x_i^T \beta \]
Ví dụ về hàm liên kết chuẩn (canonical link):
| Phân phối | Hàm liên kết (Link function) |
|---|---|
| Binomial | logit: \(\log\frac{\mu}{1-\mu}\) |
| Poisson | log: \(\log(\mu)\) |
| Normal | identity: \(\mu\) |
Lưu ý: Dù GLM gọi là “tuyến tính”, nhưng mối quan hệ giữa \(y\) và \(x\) có thể phi tuyến do sử dụng hàm liên kết (link function).
Sau khi xác định được cấu trúc của một GLM (gồm phân phối xác suất, hàm liên kết và thành phần tuyến tính), bước tiếp theo là ước lượng các hệ số hồi quy \(\beta\) trong mô hình.
Khác với hồi quy tuyến tính cổ điển – nơi ta dùng phương pháp bình phương tối thiểu (OLS) – trong GLM, các hệ số được ước lượng bằng phương pháp hợp lý tối đa (Maximum Likelihood Estimation - MLE) thông qua một thuật toán gọi là Iteratively Reweighted Least Squares (IRLS).
Phương pháp IRLS thực hiện việc cập nhật các ước lượng \(\beta\) lặp đi lặp lại, mỗi lần dựa trên trọng số được điều chỉnh sao cho phù hợp với phân phối của dữ liệu và hàm liên kết được chọn.
Cho dữ liệu gồm:
Biến phản hồi: \(y_1, y_2, \ldots, y_n\) có thể là biến đếm, nhị phân hoặc liên tục dương…
Biến giải thích: \(x_{i1}, \ldots, x_{ip}\) với \(i=1, \ldots, n\).
Mô hình GLM được biểu diễn như sau:
\[ g(\mu_i) = \eta_i = \mathbf{x}_i^T \boldsymbol{\beta} \]
với
\[ \mu_i = E[y_i] = g^{-1}(\mathbf{x}_i^T \boldsymbol{\beta}) \]
Mục tiêu là tìm ước lượng \(\hat{\boldsymbol{\beta}}\) sao cho hàm log-likelihood đạt cực đại:
\[ \ell(\boldsymbol{\beta}) = \sum_{i=1}^n \log f(y_i; \theta_i) \]
Trong đó:
\(f(y_i; \theta_i)\) là hàm mật độ xác suất (hoặc hàm khối xác suất) của biến \(y_i\),
\(\theta_i\) là tham số tự nhiên trong phân phối thuộc họ hàm mũ,
\(\theta_i\) có quan hệ với \(\mu_i\), từ đó liên hệ với \(\boldsymbol{\beta}\).
Việc ước lượng này thường được thực hiện bằng phương pháp hợp lý tối đa (MLE), sử dụng thuật toán Iteratively Reweighted Least Squares (IRLS).
1. Thuật toán IRLS (Iteratively Reweighted Least Squares):
GLM sử dụng thuật toán IRLS để tìm ước lượng \(\hat{\boldsymbol{\beta}}\). Thuật toán dựa trên việc lặp lại các bước hồi quy tuyến tính có trọng số.
2. Ý tưởng cơ bản:
Ở mỗi vòng lặp, mô hình GLM được xấp xỉ bằng một hồi quy tuyến tính với trọng số.
Biến giả (working response) \(\mathbf{z}\) và ma trận trọng số \(\mathbf{W}\) được cập nhật liên tục ở mỗi bước.
3. Hệ phương trình IRLS:
\[ \mathbf{X}^T \mathbf{W} \mathbf{X} \hat{\boldsymbol{\beta}} = \mathbf{X}^T \mathbf{W} \mathbf{z} \]
Trong đó:
\(\mathbf{X}\) là ma trận thiết kế,
\(\mathbf{W}\) là ma trận trọng số kích thước \(n \times n\),
\(\mathbf{z}\) là vector biến giả \(n \times 1\), tính theo công thức:
\[ z_i = \eta_i + \frac{y_i - \mu_i}{\frac{d \mu_i}{d \eta_i}} \]
\[ W_i = \left(\frac{d \mu_i}{d \eta_i}\right)^2 \Big/ \mathrm{Var}(y_i) \]
Quá trình này được lặp lại cho đến khi các ước lượng \(\boldsymbol{\beta}\) hội tụ.
Hàm điểm (Score Function)
Hàm điểm là đạo hàm của log-likelihood theo vector hệ số \(\boldsymbol{\beta}\):
\[ U(\boldsymbol{\beta}) = \frac{\partial \ell(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} \]
Đây là hệ phương trình mà khi giải \(U(\boldsymbol{\beta}) = 0\), ta thu được ước lượng cực đại \(\hat{\boldsymbol{\beta}}\).
Ma trận thông tin Fisher
Ma trận thông tin Fisher là kỳ vọng âm của đạo hàm bậc hai của log-likelihood:
\[ \mathcal{I}(\boldsymbol{\beta}) = - \mathbb{E} \left[ \frac{\partial^2 \ell(\boldsymbol{\beta})}{\partial \boldsymbol{\beta} \, \partial \boldsymbol{\beta}^T} \right] \]
Ma trận này đóng vai trò như một thước đo độ “sắc nét” của log-likelihood tại điểm cực đại và được dùng để đánh giá độ chính xác của ước lượng.
Phương sai của \(\hat{\boldsymbol{\beta}}\)
Khi đã có ma trận thông tin Fisher, phương sai hiệp phương sai của vector hệ số ước lượng được tính là:
\[ \mathrm{Var}(\hat{\boldsymbol{\beta}}) = \mathcal{I}(\hat{\boldsymbol{\beta}})^{-1} \]
Nếu sử dụng thuật toán IRLS, ma trận thông tin Fisher được xấp xỉ bởi:
\[ \mathrm{Var}(\hat{\boldsymbol{\beta}}) = (\mathbf{X}^T \mathbf{W} \mathbf{X})^{-1} \]
Trong đó:
\(\mathbf{X}\): ma trận thiết kế,
\(\mathbf{W}\): ma trận trọng số tại nghiệm hội tụ,
Công thức này xuất hiện tự nhiên từ bước giải hệ phương trình IRLS.
Ghi chú
Công thức phương sai trên rất quan trọng để tính khoảng tin cậy và kiểm định giả thuyết trong GLM.
Với các mô hình lớn, ma trận \((\mathbf{X}^T \mathbf{W} \mathbf{X})^{-1}\) thường được tính thông qua giải hệ phương trình thay vì đảo trực tiếp để tránh sai số số học.
Sai số chuẩn (Standard Error)
Sau khi có được ước lượng \(\hat{\boldsymbol{\beta}}\) và ma trận phương sai hiệp phương sai \(\mathrm{Var}(\hat{\boldsymbol{\beta}})\), ta tính sai số chuẩn cho từng hệ số \(\hat{\beta}_j\) như sau:
\[ \mathrm{SE}(\hat{\beta}_j) = \sqrt{[\mathrm{Var}(\hat{\boldsymbol{\beta}})]_{jj}} \]
Trong đó, \([\cdot]_{jj}\) là phần tử hàng \(j\), cột \(j\) trong ma trận phương sai.
Khoảng tin cậy \(100(1 - \alpha)\%\)
Khoảng tin cậy cho hệ số \(\hat{\beta}_j\) được tính bằng công thức:
\[ \hat{\beta}_j \pm z_{\alpha/2} \cdot \mathrm{SE}(\hat{\beta}_j) \]
Trong đó:
\(z_{\alpha/2}\) là bách phân vị \(1 - \alpha/2\) của phân phối chuẩn chuẩn hóa (thường tra từ bảng Z),
Ví dụ: với \(\alpha = 0.05\), \(z_{0.025} \approx 1.96\) (tương ứng khoảng tin cậy 95%).
Kiểm định Wald
Kiểm định Wald giúp đánh giá giả thuyết:
\[ H_0: \beta_j = 0 \quad \text{vs} \quad H_1: \beta_j \neq 0 \]
Thống kê kiểm định:
\[ Z = \frac{\hat{\beta}_j}{\mathrm{SE}(\hat{\beta}_j)} \sim \mathcal{N}(0, 1) \]
Dựa vào giá trị \(Z\), ta có thể tính p-value và đưa ra kết luận thống kê.
Ghi chú
Kiểm định Wald được dùng phổ biến do tính đơn giản và có thể thực hiện ngay sau khi có ước lượng và phương sai.
Nếu \(|Z| > z_{\alpha/2}\), bác bỏ \(H_0\), tức là hệ số \(\beta_j\) có ý nghĩa thống kê.
Trong một số mô hình GLM, đặc biệt là khi phân phối thuộc họ phân phối mũ (exponential family) không chuẩn hóa, ta cần ước lượng tham số phân tán \(\phi\).
Công thức ước lượng:
\[ \hat{\phi} = \frac{1}{n - p} \sum_{i=1}^{n} \frac{(y_i - \hat{\mu}_i)^2}{V(\hat{\mu}_i)} \]
Trong đó:
\(n\): số quan sát
\(p\): số tham số trong mô hình (bao gồm hệ số chặn nếu có)
\(\hat{\mu}_i = \mathbb{E}[y_i] = g^{-1}(\eta_i)\): giá trị kỳ vọng được ước lượng
\(V(\hat{\mu}_i)\): hàm phương sai, phụ thuộc vào phân phối:
| Phân phối | Hàm phương sai \(V(\mu)\) |
|---|---|
| Gaussian | \(1\) |
| Poisson | \(\mu\) |
| Binomial (logit) | \(\mu(1 - \mu)\) |
ĐÁNH GIÁ MỨC ĐỘ PHÙ HỢP VÀ LỰA CHỌN MÔ HÌNH TRONG GLM
Sau khi ước lượng các tham số \(\beta\) trong GLM, bước tiếp theo là đánh giá xem mô hình có phù hợp với dữ liệu không, và nếu có nhiều mô hình cạnh tranh, thì nên chọn mô hình nào là tốt nhất.
Các công cụ đánh giá bao gồm:
Deviance (độ lệch)
Kiểm định \(\chi^2\)
AIC, BIC
So sánh mô hình lồng và không lồng
Đồ thị phần dư và điểm ảnh hưởng
Định nghĩa:
Deviance là đại lượng đo sự khác biệt giữa mô hình hiện tại và mô hình đầy đủ (saturated model) – tức mô hình khớp hoàn toàn với dữ liệu.
\[ D(y; \hat{\mu}) = 2 \left[ \ell(y; y) - \ell(\hat{\mu}; y) \right] \]
Giải thích ký hiệu:
\(\ell(y; y)\): log-likelihood của mô hình bão hòa (saturated model)
\(\ell(\hat{\mu}; y)\): log-likelihood của mô hình đang xét
\(\Rightarrow\) Deviance càng nhỏ → mô hình càng gần với mô hình bão hòa → phù hợp hơn.
Khi hai mô hình lồng nhau, ta có thể so sánh bằng kiểm định sai biệt deviance:
Công thức kiểm định:
\[ \Delta D = D_{\text{reduced}} - D_{\text{full}} \sim \chi^2_{df} \]
Trong đó:
\(\Rightarrow\) Nếu \(\Delta D\) lớn và p-value nhỏ → mô hình đầy đủ tốt hơn.
Khi các mô hình không lồng nhau, ta dùng tiêu chí thông tin để so sánh:
AIC (Akaike Information Criterion):
\[ AIC = -2\ell + 2k \]
\(\ell\): log-likelihood
\(k\): số tham số trong mô hình
BIC (Bayesian Information Criterion):
\[ BIC = -2\ell + \log(n) \cdot k \]
\(\Rightarrow\) Chọn mô hình có AIC/BIC thấp hơn.
\(\Rightarrow\) BIC phạt các mô hình phức tạp nhiều hơn so với AIC.
Phần dư (residuals):
\[ e_i = y_i - \hat{\mu}_i \]
\[ r_i = \frac{y_i - \hat{\mu}_i}{\sqrt{V(\hat{\mu}_i)}} \]
\[ d_i = \text{sign}(y_i - \hat{\mu}_i) \cdot \sqrt{2\left[\ell(y_i; y_i) - \ell(\hat{\mu}_i; y_i)\right]} \]
Biểu đồ kiểm tra mô hình (Diagnostic plots):
Residuals vs Fitted
Normal Q-Q (nếu mô hình gần phân phối chuẩn)
Scale-Location plot
Cook’s distance vs Leverage
Các biểu đồ này giúp phát hiện điểm ngoại lai và điểm ảnh hưởng mạnh đến mô hình.
Phép kiểm định Pearson đo sự khác biệt giữa dữ liệu quan sát và giá trị kỳ vọng từ mô hình:
\[ X^2 = \sum_{i=1}^n \frac{(y_i - \hat{\mu}_i)^2}{V(\hat{\mu}_i)} \]
Nếu \(X^2\) lớn hơn mức kỳ vọng theo phân phối \(\chi^2_{df}\) → mô hình có thể không phù hợp với dữ liệu.
Một số mô hình GLM như Poisson hoặc Binomial giả định hệ số phân tán là:
\[ \phi = 1 \]
Tuy nhiên, trong thực tế, nếu phương sai quan sát lớn hơn phương sai lý thuyết, ta gọi là overdispersion (quá phân tán).
Kiểm tra overdispersion:
Hệ số phân tán ước lượng được tính theo công thức:
\[ \hat{\phi} = \frac{\text{Deviance}}{n - p} \]
\(n\): số quan sát
\(p\): số tham số trong mô hình
\(\Rightarrow\) Nếu:
\[ \hat{\phi} > 1.5 \]
→ Mô hình có thể bị overdispersed (quá phân tán)
\(\Rightarrow\) Trong trường hợp này, cần điều chỉnh mô hình, ví dụ:
Sử dụng quasi-Poisson
Hoặc Negative Binomial
Hồi quy logistic là một trong những mô hình phổ biến nhất thuộc họ GLM, được dùng để mô hình hóa dữ liệu nhị phân (binary), tức khi biến phản hồi
\[ y \in \{0,1\} \]
Ví dụ: bệnh/không bệnh, mua/không mua, đạt/không đạt.
Đặc điểm:
\[
\mu_i = E[y_i] = P(y_i=1) \in (0,1)
\]
Sử dụng hàm liên kết logit:
\[
g(\mu_i) = \log\left(\frac{\mu_i}{1-\mu_i}\right) = \eta_i = x_i^T \beta
\]
Biến phản hồi
\[
y_i \in \{0,1\}
\]
phân phối theo:
\[ y_i \sim \text{Bernoulli}(\pi_i) \]
Trong đó:
\[
\pi_i = P(y_i=1)
\]
và:
\[
\log\left(\frac{\pi_i}{1-\pi_i}\right) = x_i^T \beta
\]
Log-likelihood cho toàn bộ mẫu:
\[
\ell(\beta) = \sum_{i=1}^n \left[ y_i \log(\pi_i) + (1 - y_i)
\log(1-\pi_i) \right]
\]
Không có nghiệm giải tường minh → dùng IRLS để tìm \(\hat{\beta}\).
Khi dùng logit link:
\[
\eta_i = \log\left(\frac{\pi_i}{1-\pi_i}\right) = x_i^T \beta
\]
→ \(\beta_j\) đại diện cho log odds
ratio:
\[
\text{Odds ratio} = \exp(\beta_j)
\]
Nếu \(\beta_j > 0\): biến \(x_j\) làm tăng khả năng \(y=1\)
Nếu \(\beta_j < 0\): biến \(x_j\) làm giảm khả năng \(y=1\)
Sau khi ước lượng \(\hat{\beta}\), ta kiểm định từng hệ số:
Kiểm định Wald:
\[
Z_j = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \sim N(0,1)
\]
Khoảng tin cậy 95%:
\[
\hat{\beta}_j \pm z_{0.975} \cdot SE(\hat{\beta}_j)
\]
Chuyển sang odds ratio bằng
\[
\exp(\hat{\beta}_j)
\]
Deviance:
\[
D = -2 \left[ \ell(\hat{\beta}) - \ell_{\text{saturated}} \right]
\]
Kiểm định deviance giữa mô hình đầy đủ và mô hình rút gọn.
Pseudo-\(R^2\):
\[
R^2 = 1 - \frac{D_{\text{model}}}{D_{\text{null}}}
\]
Có thể mở rộng logistic regression để bao gồm nhiều biến giải thích:
\[ \log\left(\frac{\pi_i}{1-\pi_i}\right) = \beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip} \]
→ Mô hình đa biến logistic.
Khi dữ liệu không phải từng quan sát riêng lẻ, mà là tổng hợp
\[
\frac{y_i}{n_i}
\]
ta dùng:
\[
y_i \sim \text{Binomial}(n_i, \pi_i)
\]
Log-likelihood:
\[
\ell(\beta) = \sum_{i=1}^n \left[ y_i \log(\pi_i) + (n_i - y_i)
\log(1-\pi_i) \right]
\]
Hồi quy Poisson là một mô hình thuộc họ GLM, được sử dụng để mô hình hóa các biến phản hồi là số lượng sự kiện đếm được trên một đơn vị quan sát, chẳng hạn như:
Số lần nhập viện
Số vụ tai nạn giao thông
Số lỗi phần mềm phát sinh
Đặc biệt phù hợp khi:
Biến phản hồi \(y \in \{0, 1, 2, \ldots \}\)
Dữ liệu không âm, rời rạc
Mục tiêu là ước lượng số sự kiện trung bình theo các đặc tính \(x\)
Hàm xác suất:
\[
P(y_i) = \frac{e^{-\mu_i} \mu_i^{y_i}}{y_i!}, \quad y_i = 0, 1, 2,
\ldots
\]
Trong đó:
\[ \mu_i = E[y_i] : \text{số sự kiện kỳ vọng của quan sát thứ } i \]
\[ \text{Var}(y_i) = \mu_i \quad : \text{đặc điểm then chốt} \]
Hàm liên kết (canonical):
\[ \eta_i = \log(\mu_i) = x_i^T \beta \implies \mu_i = e^{x_i^T \beta} \]
Hàm log đảm bảo:
\[ \mu_i > 0 \]
Mối quan hệ tuyến tính trên log-scale.
Log-likelihood của mô hình:
\[ \ell(\beta) = \sum_{i=1}^n \left[ y_i \log(\mu_i) - \mu_i - \log(y_i!) \right] \]
Thay \(\mu_i = e^{x_i^T \beta}\), ta được:
\[ \ell(\beta) = \sum_{i=1}^n \left[ y_i x_i^T \beta - e^{x_i^T \beta} - \log(y_i!) \right] \]
Score function (đạo hàm log-likelihood):
\[ U(\beta) = \sum_{i=1}^n x_i (y_i - \mu_i) \]
Giải phương trình \(U(\beta) = 0\) → tìm \(\hat{\beta}\) bằng IRLS.
Trong hồi quy Poisson:
Mỗi \(\beta_j\) là tác động log tuyến tính đến số sự kiện trung bình.
\(e^{\beta_j}\) là tỷ lệ thay đổi kỳ vọng \(\mu\) khi \(x_j\) tăng 1 đơn vị, giữ các biến khác không đổi.
Ví dụ:
\(\beta_j = 0.693 \Rightarrow e^{0.693} = 2\): số sự kiện kỳ vọng gấp đôi khi \(x_j\) tăng 1 đơn vị.
\(\beta_j = -0.223\) → giảm khoảng 20%.
Offset là gì?
Khi quan sát không đồng nhất về thời gian/phạm vi, cần điều chỉnh bằng
offset.
Ví dụ:
Quan sát 1: 5 tai nạn trong 10 ngày
Quan sát 2: 2 tai nạn trong 2 ngày
Không thể so sánh số tuyệt đối → dùng tỷ lệ:
\[
\frac{\mu_i}{t_i} \implies \log(\mu_i) = \log(t_i) + x_i^T \beta
\]
Trong đó \(\log(t_i)\) là offset – không có hệ số, nhưng được đưa vào mô hình.
Trong lý thuyết:
\[ \mathrm{Var}(y_i) = \mu_i \]
Nhưng thực tế thường thấy:
\[ \mathrm{Var}(y_i) > \mu_i \quad \Rightarrow \quad \text{overdispersion} \]
Nguyên nhân do bỏ sót biến quan trọng, quá nhiều giá trị 0, hoặc biến động ngẫu nhiên vượt mức.
Hệ số phân tán:
\[ \hat{\phi} = \frac{\text{Deviance}}{n - p} \]
Nếu \(\hat{\phi} > 1.5\) thì đáng lo ngại.
Cách xử lý:
Sử dụng quasi-Poisson: điều chỉnh phương sai mà không thay đổi kỳ vọng.
Dùng Negative Binomial: thêm tham số \(\alpha\) để điều chỉnh phương sai.
Deviance: kiểm tra mức độ phù hợp của mô hình.
AIC: chọn mô hình tốt nhất.
Kiểm định deviance: so sánh hai mô hình lồng nhau. Biểu đồ phần dư: - Residuals vs fitted
Deviance residuals
Cook’s distance
Kiểm định Pearson chi-square:
\[ X^2 = \sum_{i=1}^n \frac{(y_i - \mu_i)^2}{\mu_i} \quad \Rightarrow \quad X^2 \sim \chi^2_{n-p} \]
| Mô hình | Khi nào dùng |
|---|---|
| Poisson | Dữ liệu đếm, phương sai gần bằng kỳ vọng (\(\mathrm{Var}(y) \approx E(y)\)) |
| Quasi-Poisson | Khi có overdispersion nhẹ, giữ cùng hàm liên kết (link function) |
| Negative Binomial | Khi overdispersion nặng hoặc dữ liệu có quá nhiều giá trị 0 |
Hồi quy Gamma là một mô hình thuộc họ GLM dùng để mô hình hóa các biến phản hồi dương liên tục có phương sai tăng theo giá trị trung bình.
Ví dụ ứng dụng:
Chi phí y tế
Thời gian sống (survival time)
Lượng tiêu thụ năng lượng
Giả định biến ngẫu nhiên \(y_i\) phân phối Gamma với tham số:
\[ y_i \sim Gamma(\alpha, \mu_i) \]
Trong đó:
\(\mu_i = E[y_i]\) là kỳ vọng.
Phương sai:
\[
Var(y_i) = \frac{\mu_i^2}{\alpha} = \phi \mu_i^2
\]
Phương sai tỷ lệ với bình phương kỳ vọng, phù hợp khi biến thiên tỷ lệ không đổi.
Hàm mật độ xác suất:
\[ f(y; \mu, \phi) = \frac{1}{\Gamma(1/\phi)} \left(\frac{1}{\phi \mu}\right)^{1/\phi} y^{\frac{1}{\phi}-1} \exp\left(-\frac{y}{\phi \mu}\right) \]
Hàm này thuộc họ hàm mũ (exponential family), với:
\[ \theta = -\frac{1}{\mu} \]
\[ b(\theta) = -\log(-\theta) \]
Hàm phương sai:
\[ V(\mu) = \mu^2 \]
\(\phi\) là tham số phân tán.
Mặc định trong GLM:
\[ g(\mu_i) = \log(\mu_i) = \eta_i = x_i^T \beta \]
Các tùy chọn khác:
Identity: \(g(\mu) = \mu\)
Inverse: \(g(\mu) = \frac{1}{\mu}\)
Link log được dùng phổ biến nhất vì đảm bảo \(\mu > 0\).
Ước lượng tham số \(\beta\) bằng phương pháp hợp lý tối đa (MLE) qua thuật toán IRLS.
Hàm log-likelihood:
\[ \ell(\beta) = \sum_{i=1}^n \left[-\log(\mu_i) - \frac{y_i}{\mu_i} \right] + \text{hằng số} \]
với:
\[ \mu_i = e^{x_i^T \beta} \]
Phương trình điểm:
\[ \frac{\partial \ell}{\partial \beta} = \sum_{i=1}^n x_i \left( y_i - \frac{\mu_i}{\mu_i^2} \cdot \frac{d\mu_i}{d\eta_i} \right) = 0 \]
Dùng IRLS để giải phương trình và tìm nghiệm \(\hat{\beta}\).
Với link log:
\[ \log(\mu_i) = \beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip} \implies \mu_i = e^{x_i^T \beta} \]
Mỗi hệ số \(\beta_j\) được hiểu là tác động trên log-scale, nghĩa là ảnh hưởng đến log của kỳ vọng trung bình.
\[ e^{\beta_j} \]
tức là hệ số tỷ lệ thay đổi của \(\mu\).
\[ Z_j = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \sim \mathcal{N}(0,1) \]
\[ \hat{\beta}_j \pm z_{\alpha/2} \cdot SE(\hat{\beta}_j) \]
\[ \left(e^{\hat{\beta}_j - z_{\alpha/2} SE(\hat{\beta}_j)}, \quad e^{\hat{\beta}_j + z_{\alpha/2} SE(\hat{\beta}_j)} \right) \]
\[ D = 2 \sum_{i=1}^n \left[ \frac{y_i - \mu_i}{\mu_i} - \log\left(\frac{y_i}{\mu_i}\right) \right] \]
\[ X^2 = \sum_{i=1}^n \left( \frac{y_i - \mu_i}{\mu_i} \right)^2 \]
Hai chỉ số này dùng để đánh giá độ phù hợp của mô hình và phát hiện hiện tượng overdispersion nếu có.
| Mô hình | Khi dùng |
|---|---|
| Hồi quy tuyến tính | Khi dữ liệu phân phối chuẩn, phương sai không đổi |
| Hồi quy Gamma | Khi dữ liệu dương, phương sai tỷ lệ với bình phương trung bình |
| Hồi quy log-normal | Khi \(\log(y)\) phân phối chuẩn (sau biến đổi log) |
Dữ liệu nhị phân dạng 0/1 được mô hình hóa bằng hồi quy logistic. Tuy nhiên, nếu dữ liệu có dạng tổng hợp (grouped) hoặc thể hiện dưới dạng tỷ lệ, ví dụ:
20 thành công trong 30 thử nghiệm → \(y = 20, n = 30\)
Tỷ lệ mắc bệnh ở mỗi quận
Tỷ lệ sinh viên đậu trong từng lớp
→ Cần dùng GLM dạng nhị thức tổng quát (binomial GLM), áp dụng cho số lần thành công trên số lần thử.
Với \(y_i \sim \text{Binomial}(n_i, \pi_i)\), ta mô hình hóa:
\[ \log \left(\frac{\pi_i}{1 - \pi_i}\right) = \eta_i = x_i^T \beta \implies \pi_i = \frac{e^{x_i^T \beta}}{1 + e^{x_i^T \beta}} \]
Trong đó:
\(y_i\): số thành công trong nhóm \(i\)
\(n_i\): tổng số thử nghiệm trong nhóm \(i\)
\(\pi_i\): xác suất thành công
\(\mu_i = E[y_i] = n_i \pi_i\)
\(\text{Var}(y_i) = n_i \pi_i (1 - \pi_i)\)
→ Phù hợp cho dữ liệu dạng “n trials, k successes”.
Hàm log-likelihood:
\[ \ell(\beta) = \sum_{i=1}^n \left[ y_i \log(\pi_i) + (n_i - y_i) \log(1 - \pi_i) \right] \]
Tối đa hóa log-likelihood bằng IRLS (như logistic), nhưng có thêm yếu tố \(n_i\).
Biến giả và trọng số:
\[ w_i = n_i \pi_i (1 - \pi_i) \]
\[ z_i = \eta_i + \frac{y_i - n_i \pi_i}{n_i \pi_i (1 - \pi_i)} \]
| Dạng dữ liệu | Mô hình tương ứng | Ghi chú |
|---|---|---|
| 0/1 từng cá nhân | Hồi quy logistic | \(y_i \sim \text{Bernoulli}(\pi_i)\) |
| Nhóm nhiều cá nhân | Binomial GLM với \(y_i / n_i\) | \(y_i \sim \text{Binomial}(n_i, \pi_i)\) |
→ Mô hình nhóm cho kết quả ước lượng chính xác hơn vì dùng nhiều thông tin hơn trên mỗi quan sát.
Nếu \(y_i / n_i\) được ghi dưới dạng tỷ lệ (0 < tỷ lệ < 1), ta vẫn dùng mô hình:
\[ \log \left(\frac{y_i / n_i}{1 - y_i / n_i}\right) = x_i^T \beta \]
→ Nhưng phải chỉ rõ số lần thử \(n_i\) để tính đúng phương sai.
Wald test cho các hệ số
Kiểm định deviance giữa mô hình đầy đủ và rút gọn
AIC/BIC để chọn mô hình
Phần dư Pearson / deviance để phát hiện điểm bất thường
Giống hồi quy logistic, mô hình binomial giả định:
\[ \text{Var}(y_i) = n_i \pi_i (1 - \pi_i) \]
Nếu thấy phương sai quan sát lớn hơn → overdispersion.
Kiểm tra:
\[ \hat{\phi} = \frac{\text{Deviance}}{n - p} \]
→ Nếu \(\hat{\phi} > 1.5\): cần chuyển sang mô hình quasi-binomial
Mô hình Tweedie GLM mở rộng họ hàm mũ bằng cách cho phép phân phối có đặc điểm trung gian giữa các phân phối quen thuộc như:
Gaussian
Poisson
Gamma
Inverse Gaussian
Mô hình Tweedie phù hợp với các loại dữ liệu có đặc điểm:
Liên tục dương + rất nhiều giá trị 0
(ví dụ: dữ liệu chi phí, có người không tiêu dùng)
Phân tán quá mức (overdispersion)
Có cả phần rời rạc (0, 1, 2, …) lẫn liên tục dương
→ Ứng dụng rộng rãi trong bảo hiểm, tài chính, y tế, và các bài toán zero-inflated data.
Tweedie là một lớp phân phối thuộc họ hàm mũ (exponential family), với hàm phương sai có dạng:
\[ \text{Var}(Y) = \phi \mu^p \]
Trong đó:
\(\mu = \mathbb{E}[Y]\): kỳ vọng
\(\phi > 0\): hệ số phân tán
\(p\): chỉ số sức mạnh (power index)
| \(p\) | Phân phối tương ứng |
|---|---|
| 0 | Gaussian (Normal) |
| 1 | Poisson |
| \((1, 2)\) | Tweedie hỗn hợp (0 + dương liên tục) |
| 2 | Gamma |
| 3 | Inverse Gaussian |
→ Với \(1 < p < 2\), mô hình Tweedie hỗn hợp có thể:
Tái hiện được số lượng lớn giá trị 0
Mô hình hóa được giá trị dương liên tục
Rất phù hợp cho các bài toán như chi phí bảo hiểm, tổn thất, dữ liệu có số 0 và giá trị tiền tệ.
Thực hiện thống kê mô tả cho các biến trong file: Supermarket Transactions.csv
library(csv)
## Warning: package 'csv' was built under R version 4.3.3
library(readr)
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(skimr)
## Warning: package 'skimr' was built under R version 4.3.3
library(psych)
## Warning: package 'psych' was built under R version 4.3.3
Tệp Supermarket Transactions được lưu dưới định dạng csv. Đọc bộ dữ liệu này vào phần mềm R
Sau khi đọc, bộ dữ liệu được gán vào biến data để dễ dàng thao tác.
data <- read.csv("C:/Users/PC_Dell/Downloads/Supermarket Transactions.csv", header = T)
Bộ dữ liệu Supermarket Transactions này gồm 14,059 giao dịch mua hàng tại siêu thị, với các thông tin liên quan đến khách hàng và sản phẩm bao gồm mã định danh khách hàng vầ các thông tin liên quan, vị trí địa lý, và chi tiết các sản phẩm được mua.
Dữ liệu này có thể được sử dụng để phân tích hành vi mua sắm của khách hàng, phân khúc thị trường, hoặc đánh giá hiệu quả kinh doanh theo từng sản phẩm, khu vực và nhóm nhân khẩu học.
Tên của các biến trong bộ dữ liệu bao gồm:
names(data)
## [1] "X..PurchaseDate...CustomerID...Gender...MaritalStatus...Homeowner...Children...AnnualIncome...City...StateorProvince...Country...ProductFamily...ProductDepartment...ProductCategory...UnitsSold...Revenue."
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'ggplot2' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%() masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(knitr)
## Warning: package 'knitr' was built under R version 4.3.3
# Tạo bảng mô tả các biến và dịch thuật
variable_desc <- tibble::tibble(
Biến = c(
"X", "PurchaseDate", "CustomerID", "Gender", "MaritalStatus", "Homeowner",
"Children", "AnnualIncome", "City", "StateorProvince", "Country",
"ProductFamily", "ProductDepartment", "ProductCategory", "UnitsSold", "Revenue"
),
Dịch_thuật = c(
"Số thứ tự dòng", "Ngày mua hàng", "Mã khách hàng", "Giới tính", "Tình trạng hôn nhân", "Sở hữu nhà",
"Số con", "Thu nhập hàng năm", "Thành phố", "Bang/Tỉnh", "Quốc gia",
"Nhóm sản phẩm", "Bộ phận sản phẩm", "Loại sản phẩm", "Số lượng bán", "Doanh thu"
)
)
kable(variable_desc, caption = "Tên biến, Dịch thuật")
| Biến | Dịch_thuật |
|---|---|
| X | Số thứ tự dòng |
| PurchaseDate | Ngày mua hàng |
| CustomerID | Mã khách hàng |
| Gender | Giới tính |
| MaritalStatus | Tình trạng hôn nhân |
| Homeowner | Sở hữu nhà |
| Children | Số con |
| AnnualIncome | Thu nhập hàng năm |
| City | Thành phố |
| StateorProvince | Bang/Tỉnh |
| Country | Quốc gia |
| ProductFamily | Nhóm sản phẩm |
| ProductDepartment | Bộ phận sản phẩm |
| ProductCategory | Loại sản phẩm |
| UnitsSold | Số lượng bán |
| Revenue | Doanh thu |
dim(data)
## [1] 14059 1
Để nắm được cái nhìn tổng quan về bộ dữ liệu, chúng ta cần bắt đầu bằng việc kiểm tra các yếu tố cơ bản như số lượng biến, kiểu dữ liệu của từng biến và một số thống kê mô tả sơ bộ. Bước này đóng vai trò quan trọng trong việc hiểu cấu trúc dữ liệu và hỗ trợ định hướng cho các phân tích chuyên sâu sau này.
str(data)
## 'data.frame': 14059 obs. of 1 variable:
## $ X..PurchaseDate...CustomerID...Gender...MaritalStatus...Homeowner...Children...AnnualIncome...City...StateorProvince...Country...ProductFamily...ProductDepartment...ProductCategory...UnitsSold...Revenue.: chr "1,\"2007-12-18\",7223,\"F\",\"S\",\"Y\",2,\"$30K - $50K\",\"Los Angeles\",\"CA\",\"USA\",\"Food\",\"Snack Foods"| __truncated__ "2,\"2007-12-20\",7841,\"M\",\"M\",\"Y\",5,\"$70K - $90K\",\"Los Angeles\",\"CA\",\"USA\",\"Food\",\"Produce\",\"| __truncated__ "3,\"2007-12-21\",8374,\"F\",\"M\",\"N\",2,\"$50K - $70K\",\"Bremerton\",\"WA\",\"USA\",\"Food\",\"Snack Foods\""| __truncated__ "4,\"2007-12-21\",9619,\"M\",\"M\",\"Y\",3,\"$30K - $50K\",\"Portland\",\"OR\",\"USA\",\"Food\",\"Snacks\",\"Candy\",4,4.44" ...
Trong bộ dữ liệu thể hiện các biến như sau:
Thời gian mua hàng:
Khách hàng:
CustomerID: Mã định danh của từng 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à (Y: có nhà, N: không có nhà).
Children: Số lượng con cái của khách hàng
AnnualIncome: Thu nhập hằng năm phân loại theo nhóm (dưới dạng khoảng).
City, StateorProvince, Country: Địa chỉ sinh sống ( Thành phó, Bang/Tỉnh, Quốc gia)
Sản phẩm:
ProductFamily: Nhóm sản phẩm lớn (ví dụ: Thực phẩm, Đồ uống, v.v.)
ProductDepartment: Bộ phận sản phẩm cụ thể hơn trong siêu thị
ProductCategory: Loại sản phẩm chi tiết
UnitsSold: Số lượng sản phẩm đã bán trong giao dịch.
Revenue: Doanh thu từ giao dịch đó (USD).
Bộ dữ liệu được cung cấp bao gồm cả các biến định và biến định lượng, trong đó các biến định tính được đề cập đến như sau:
# Xác định biến định tính (kiểu character hoặc factor)
categorical_vars <- names(select_if(data, is.character))
# Xác định biến định lượng (kiểu số)
numerical_vars <- names(select_if(data, is.numeric))
# Hiển thị danh sách các biến
cat("Các biến định tính:", paste(categorical_vars, collapse = ", "), "\n\n")
## Các biến định tính: X..PurchaseDate...CustomerID...Gender...MaritalStatus...Homeowner...Children...AnnualIncome...City...StateorProvince...Country...ProductFamily...ProductDepartment...ProductCategory...UnitsSold...Revenue.
cat("Các biến định lượng:", paste(numerical_vars, collapse = ", "))
## Các biến định lượng:
# Sử dụng summary để mô tả các biến định lượng
summary(select(data, all_of(numerical_vars)))
## < table of extent 0 x 0 >
library(knitr)
# Tạo bảng thống kê mô tả thủ công từ kết quả bạn đã cung cấp
desc_table <- data.frame(
`Thống kê` = c("Min", "1st Qu.", "Median", "Mean", "3rd Qu.", "Max"),
`Children` = c(0, 1, 3, 2.53, 4, 5),
`UnitsSold` = c(1, 3, 4, 4.08, 5, 8),
`Revenue` = c(0.53, 6.84, 11.25, 13.00, 17.37, 56.70)
)
kable(desc_table, align = "c", caption = "Thống kê mô tả cho các biến định lượng")
| Thống.kê | Children | UnitsSold | Revenue |
|---|---|---|---|
| Min | 0.00 | 1.00 | 0.53 |
| 1st Qu. | 1.00 | 3.00 | 6.84 |
| Median | 3.00 | 4.00 | 11.25 |
| Mean | 2.53 | 4.08 | 13.00 |
| 3rd Qu. | 4.00 | 5.00 | 17.37 |
| Max | 5.00 | 8.00 | 56.70 |
Nhận xét
Children (Số lượng con của khách hàng)
Số con trung bình của mỗi khách hàng là 2.53, trong khi trung vị là 3, cho thấy phần lớn khách hàng có từ 2 đến 3 con.
Nhóm khách hàng có từ 3 đến 5 người con chiếm tỷ lệ lớn, phản ánh đặc điểm của nhóm gia đình truyền thống hoặc tầng lớp trung lưu.
Sự xuất hiện của khách hàng không có con (giá trị nhỏ nhất = 0) cũng là một điểm đáng chú ý – đây có thể là nhóm người độc thân hoặc các cặp vợ chồng trẻ, với hành vi tiêu dùng có thể khác biệt so với nhóm gia đình.
UnitsSold (Số lượng sản phẩm bán ra trong mỗi giao dịch)
Trung bình mỗi giao dịch bán được khoảng 4.08 sản phẩm, với trung vị là 4, cho thấy phân phối rất cân đối.
Khoảng 50% số giao dịch rơi vào khoảng 3–5 sản phẩm, phản ánh hành vi mua sắm “vừa đủ dùng” trong 1 lần mua, phổ biến ở khách hàng đi siêu thị định kỳ.
Mức cao nhất là 8 sản phẩm/giao dịch cho thấy một số khách hàng mua số lượng lớn – có thể là khách hàng mua sỉ hoặc gia đình đông người.
Revenue (Doanh thu mỗi giao dịch - USD)
Trung bình mỗi giao dịch mang lại 13 USD, trong khi trung vị là 11.25 USD, tức là có sự lệch phải nhẹ: một số giao dịch có doanh thu cao kéo trung bình tăng lên.
Đa số giao dịch có doanh thu trong khoảng 6.84 – 17.37 USD, phù hợp với mức chi tiêu bình quân cho một đợt mua sắm nhanh tại siêu thị.
Giá trị lớn nhất là 56.70 USD, chỉ ra rằng vẫn tồn tại các giao dịch mua sắm lớn – có thể là dịp lễ, mua tích trữ hoặc khách hàng thân thiết.
install.packages("dplyr")
## Warning: package 'dplyr' is in use and will not be installed
install.packages("janitor", repos = "https://cran.rstudio.com/")
## Installing package into 'C:/Users/PC_Dell/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'janitor' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\PC_Dell\AppData\Local\Temp\RtmpIxCfxq\downloaded_packages
install.packages("janitor", repos = "https://cran.rstudio.com/")
## Installing package into 'C:/Users/PC_Dell/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'janitor' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\PC_Dell\AppData\Local\Temp\RtmpIxCfxq\downloaded_packages
library(dplyr)
library(janitor)
## Warning: package 'janitor' was built under R version 4.3.3
##
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.3.3
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
library(ggplot2)
categorical_vars <- sapply(data, is.factor)
cat_data <- data[, categorical_vars]
# Bảng tần suất
lapply(cat_data, table)
## named list()
Nhận Xét
PurchaseDate là biến định tính thể hiện ngày mua hàng, được định dạng như một nhãn phân loại (factor). Thời gian giao dịch trải dài từ tháng 12 năm 2007 đến tháng 11 năm 2008.
Phân bố tần suất của biến này tương đối đồng đều theo ngày. Không có ngày nào chiếm tỷ trọng nổi bật, cho thấy hành vi mua sắm trải đều trong năm mà không tập trung mạnh vào một khoảng thời gian cụ thể.
Một số ngày có tần suất mua hàng rất thấp (1–3 lần), trong khi một vài ngày khác ghi nhận lượng giao dịch cao bất thường, như ngày 2008-02-02 với 23 lượt mua, hay 2008-07-17 với 26 lượt.
Những đỉnh cao bất thường về số lượng giao dịch theo ngày có thể liên quan đến các yếu tố như chương trình khuyến mãi, dịp lễ, cuối tuần hoặc chu kỳ chi tiêu của khách hàng.
Việc thống kê này mở ra khả năng phân tích hành vi theo thời gian, chẳng hạn như kiểm tra xu hướng mua sắm theo tuần, tháng, hoặc theo mùa vụ.
Vì PurchaseDate là biến định tính mang đặc điểm thời gian, có thể cân nhắc chuyển sang định dạng chuỗi thời gian để phân tích chuyên sâu hơn (ví dụ: kiểm tra tính mùa vụ, xu hướng dài hạn…).
Tóm lại, việc mô tả và đánh giá phân bố của biến PurchaseDate giúp hình dung được cách thức các giao dịch phân bố theo thời gian, đồng thời tạo nền tảng quan trọng cho các phân tích tiếp theo liên quan đến hành vi tiêu dùng và lập kế hoạch tiếp thị theo thời điểm.