1. Mô hình thống kê
Một mô hình thống kê mô tả mối quan hệ giữa biến phản hồi \(Y\) và các biến giải thích \(X_1, X_2, ..., X_p\). Mô hình này bao gồm hai thành phần chính:
Thành phần hệ thống (systematic component): mô tả ảnh hưởng của các biến \(X\) lên giá trị kỳ vọng của \(Y\).
Thành phần ngẫu nhiên (random component): mô tả sự biến thiên không giải thích được của \(Y\) quanh giá trị kỳ vọng.
Công thức tổng quát: \[ Y_i = \mu_i + \epsilon_i \] với: - \(\mu_i = E(Y_i)\): kỳ vọng của biến phản hồi.
Trong mô hình tuyến tính đơn giản, \(\mu_i\) là tổ hợp tuyến tính: \[ \mu_i = \beta_0 + \beta_1 X_{1i} + \dots + \beta_p X_{pi} \]
2. Tổng quát hóa: Generalized Linear Models (GLMs)
GLM là mở rộng của hồi quy tuyến tính, với ba thành phần chính:
Thành phần ngẫu nhiên (Random component) Biến phản hồi \(Y\) có phân phối thuộc họ hàm mũ (exponential family), bao gồm: phân phối chuẩn, nhị phân (Bernoulli), Poisson, Gamma, v.v.
Thành phần hệ thống (Systematic component) Tương tự hồi quy tuyến tính: \[ \eta_i = \beta_0 + \beta_1 x_{1i} + \dots + \beta_p x_{pi} \] Trong đó \(\eta_i\) là predictor tuyến tính.
Hàm liên kết (Link function) Liên hệ giữa giá trị kỳ vọng \(\mu_i = E(Y_i)\) và predictor tuyến tính \(\eta_i\) được mô tả qua hàm liên kết: \[ g(\mu_i) = \eta_i \quad \text{hay tương đương} \quad \mu_i = g^{-1}(\eta_i) \]
3. Diễn giải công thức GLM tổng quát
GLM có thể được viết dưới dạng: \[ Y_i \sim \text{ExponentialFamily}(\mu_i, \phi) \] \[ g(\mu_i) = \eta_i = \mathbf{x}_i^\top \boldsymbol{\beta} \]
Trong đó: - \(Y_i\): biến phản hồi.
\(\mathbf{x}_i = (1, x_{1i}, x_{2i}, ..., x_{pi})\): vector biến giải thích (gồm cả hệ số chặn).
\(\boldsymbol{\beta}\): vector hệ số cần ước lượng.
\(g\): hàm liên kết.
\(\phi\): tham số phân tán (nếu có).
Ví dụ:
| Mô hình | Phân phối \(Y\) | Hàm liên kết \(g(\mu)\) | Dùng cho dữ liệu |
|---|---|---|---|
| Hồi quy tuyến tính | Chuẩn (Normal) | \(\mu\) | Liên tục, phân phối chuẩn |
| Logistic | Nhị phân (Bernoulli) | \(\log\left(\frac{\mu}{1-\mu}\right)\) | Dữ liệu nhị phân |
| Poisson | Poisson | \(\log(\mu)\) | Dữ liệu đếm |
4. Vai trò của mô hình thống kê
Mục tiêu:
Dự đoán (prediction).
Diễn giải mối quan hệ (explanation).
Kiểm định giả thuyết (hypothesis testing).
Hỗ trợ ra quyết định trong các nghiên cứu khoa học, kinh tế, y tế,…
Mô hình cần đạt sự cân bằng giữa độ chính xác (accuracy) và tính gọn nhẹ (parsimony). Mô hình càng đơn giản nhưng vẫn mô tả tốt thì càng có giá trị.
5. Dữ liệu và biểu diễn
Dữ liệu bao gồm cả biến liên tục và phân loại.
Các biến phân loại cần được mã hóa bằng biến giả (dummy variables).
Việc vẽ đồ thị dữ liệu trước khi mô hình hóa là rất cần thiết để nắm được cấu trúc cơ bản.
6. Phân biệt nghiên cứu quan sát và thực nghiệm
Thí nghiệm (experiments): có thể kiểm soát các yếu tố gây nhiễu → cho phép kết luận nhân quả.
Quan sát (observational studies): chỉ rút ra mối liên hệ, không kết luận nhân quả được.
⇒ Việc sử dụng mô hình cần luôn được đặt trong bối cảnh loại dữ liệu nghiên cứu.
7. Sử dụng R trong mô hình hóa
Sách sử dụng ngôn ngữ R xuyên suốt:
Sử dụng các gói như GLMsData để cung cấp dữ liệu
mẫu.
Hàm quan trọng: glm(), plot(),
summary(), factor(), v.v.
Code được trình bày đầy đủ và có thể chạy lại dễ dàng.
8. Kết luận chương
Chương này đặt nền móng cho toàn bộ cuốn sách:
Mô hình thống kê là công cụ không thể thiếu để hiểu và phân tích dữ liệu.
Generalized Linear Models cung cấp một khung mô hình mạnh mẽ, linh hoạt.
Việc hiểu kỹ nền tảng mô hình hóa giúp áp dụng GLM hiệu quả trong các tình huống thực tế.
1. Tổng quan
Hồi quy tuyến tính (Linear Regression) là một trong những mô hình phổ biến và cơ bản nhất trong thống kê. Mô hình này không chỉ là công cụ phân tích độc lập mà còn là một trường hợp đặc biệt của GLM, nên việc hiểu rõ hồi quy tuyến tính là nền tảng để nắm vững các mô hình tuyến tính tổng quát.
2. Thành phần của mô hình hồi quy tuyến tính
Mỗi mô hình hồi quy tuyến tính bao gồm hai thành phần:
Thành phần hệ thống (Systematic component): \[ \mu_i = E[Y_i] = \beta_0 + \beta_1 x_{1i} + \dots + \beta_p x_{pi} \] Trong đó \(\mu_i\) là kỳ vọng của biến phản hồi \(Y_i\), được mô tả như một hàm tuyến tính của các biến giải thích \(x_j\).
Thành phần ngẫu nhiên (Random component): \[ Y_i = \mu_i + \varepsilon_i, \quad \varepsilon_i \sim \mathcal{N}(0, \sigma^2) \] Tức là sai số tuân theo phân phối chuẩn với phương sai không đổi.
3. Mô hình tổng quát
Mô hình hồi quy tuyến tính nhiều biến có thể viết gọn bằng ký hiệu ma trận:
\[ \mathbf{Y} = \mathbf{X} \boldsymbol{\beta} + \boldsymbol{\varepsilon} \]
Trong đó: - \(\mathbf{Y}\): vector \(n \times 1\) của biến phản hồi
\(\mathbf{X}\): ma trận thiết kế \(n \times (p+1)\), bao gồm cột hệ số chặn
\(\boldsymbol{\beta}\): vector hệ số cần ước lượng
\(\boldsymbol{\varepsilon}\): vector sai số ngẫu nhiên
Giả định:
\(\boldsymbol{\varepsilon} \sim \mathcal{N}(0, \sigma^2 I)\)
\(\mathbf{X}\) không suy biến (full rank)
4. Ước lượng hệ số bằng phương pháp bình phương tối tiểu
Mục tiêu: Tìm \(\hat{\boldsymbol{\beta}}\) sao cho tổng bình phương sai số (RSS) là nhỏ nhất: \[ RSS = \sum_{i=1}^n (Y_i - \hat{Y}_i)^2 = (\mathbf{Y} - \mathbf{X}\hat{\boldsymbol{\beta}})^T (\mathbf{Y} - \mathbf{X}\hat{\boldsymbol{\beta}}) \]
Giải pháp: \[ \hat{\boldsymbol{\beta}} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{Y} \]
5. Giải thích hệ số
\(\beta_j\) biểu diễn thay đổi trung bình của \(Y\) khi \(X_j\) tăng một đơn vị, giữ các biến khác cố định.
Hệ số chặn \(\beta_0\) là giá trị kỳ vọng của \(Y\) khi tất cả \(X_j = 0\).
6. Phân tích phương sai (ANOVA)
Dùng để kiểm định sự phù hợp của mô hình. Tổng phương sai được chia thành: - TSS (Total Sum of Squares)
ESS (Explained Sum of Squares)
RSS (Residual Sum of Squares)
Kiểm định F: \[ F = \frac{\text{ESS} / p}{\text{RSS} / (n - p - 1)} \sim F_{p, n-p-1} \]
7. So sánh mô hình
Mô hình lồng nhau: dùng kiểm định F để xem mô hình đầy đủ có cải thiện đáng kể không.
Mô hình không lồng nhau: dùng tiêu chí AIC hoặc BIC để lựa chọn.
8. Các giả định của hồi quy tuyến tính
\(\varepsilon_i \sim \mathcal{N}(0, \sigma^2)\)
Phương sai không đổi (homoscedasticity)
Không tự tương quan (independence)
Tính tuyến tính giữa biến phản hồi và biến giải thích
Không đa cộng tuyến nghiêm trọng
9. Ứng dụng với R
R cung cấp hàm lm() để xây dựng mô hình hồi quy tuyến
tính:
model <- lm(Y ~ X1 + X2, data = mydata) summary(model) plot(model)
1. Mục tiêu chương
Chương này hướng dẫn người đọc cách kiểm tra độ phù hợp của mô hình hồi quy tuyến tính đã xây dựng và cách chọn mô hình tốt nhất cho một tập dữ liệu thông qua phân tích đồ thị, kiểm định thống kê và công cụ chọn mô hình.
2. Tính toán phần dư (residuals) và biểu đồ phần dư
Phần dư thông thường: \[ e_i = y_i - \hat{y}_i \]
Phân tích phần dư là phương pháp then chốt để phát hiện các vấn đề như:
Phi tuyến tính
Phương sai thay đổi (heteroscedasticity)
Ngoại lệ (outliers)
Tự tương quan (autocorrelation)
Các loại phần dư:
Raw residuals: \(e_i\)
Standardized residuals: phần dư chia cho ước lượng độ lệch chuẩn
Studentized residuals: tương tự, nhưng loại trừ ảnh hưởng điểm \(i\)
Partial residuals: phần còn lại của từng biến giải thích sau khi điều chỉnh các biến còn lại
Đồ thị quan trọng:
Residuals vs. fitted values
QQ plot
Scale-Location (Spread-Location)
Cook’s distance
Partial residual plots
plot(model) termplot(model, partial.resid = TRUE)
1. Động lực: Khi nào hồi quy tuyến tính thất bại?
Mô hình hồi quy tuyến tính giả định rằng:
Biến phản hồi có phân phối chuẩn.
Phương sai không đổi.
Biến phản hồi có thể nhận mọi giá trị thực.
Tuy nhiên, trong thực tế, ta gặp nhiều kiểu dữ liệu không phù hợp với các giả định này:
| Loại dữ liệu | Vấn đề phát sinh |
|---|---|
| Tỷ lệ (0–1) | Không thể dùng phân phối chuẩn |
| Dữ liệu đếm (0,1,2…) | Phân phối chuẩn không phù hợp, phương sai biến động |
| Dữ liệu dương liên tục | Có độ lệch, phân phối chuẩn không hợp lý |
=> Cần mô hình hóa những tình huống này bằng các phương pháp tổng quát hơn — cụ thể là GLM, dựa trên ước lượng hợp lý cực đại (MLE) thay vì bình phương tối tiểu.
2. Phương pháp ước lượng hợp lý cực đại (Maximum Likelihood Estimation – MLE)
MLE tìm tham số \(\theta\) để hàm hợp lý \(L(\theta)\) là lớn nhất:
\[ L(\theta) = \prod_{i=1}^n f(y_i; \theta) \]
Lấy log để đơn giản hóa:
\[ \ell(\theta) = \log L(\theta) = \sum_{i=1}^n \log f(y_i; \theta) \]
Ước lượng MLE được tìm bằng cách giải:
\[ \frac{d \ell(\theta)}{d\theta} = 0 \]
3. Ước lượng MLE cho một tham số
Giả sử \(Y_1, Y_2, ..., Y_n \sim f(y; \theta)\), hàm hợp lý và log-likelihood được thiết lập. Giải phương trình đạo hàm cấp 1 để tìm \(\hat{\theta}\). Kiểm tra đạo hàm cấp 2 để xác nhận cực đại.
1. Tổng quan
Generalized Linear Models (GLMs) mở rộng mô hình hồi quy tuyến tính nhằm xử lý các loại dữ liệu không phù hợp với giả định phân phối chuẩn. Chương này trình bày ba thành phần cốt lõi của một GLM và cách chúng phối hợp để tạo thành một hệ thống mô hình hóa linh hoạt cho nhiều loại dữ liệu.
2. Cấu trúc tổng quát của GLM
Một mô hình GLM gồm ba thành phần chính:
\[ f(y_i; \theta_i, \phi) = \exp\left\{ \frac{y_i \theta_i - b(\theta_i)}{a(\phi)} + c(y_i, \phi) \right\} \]
Các phân phối quen thuộc trong họ này:
Chuẩn
Nhị phân (Bernoulli)
Poisson
Gamma
Inverse Gaussian
\[ \eta_i = \beta_0 + \beta_1 x_{1i} + \dots + \beta_p x_{pi} \]
\[ g(\mu_i) = \eta_i \quad \Rightarrow \quad \mu_i = g^{-1}(\eta_i) \]
3. Ví dụ tổng quát
GLM được viết dưới dạng:
\[ Y_i \sim \text{EDM}(\mu_i, \phi), \quad g(\mu_i) = \eta_i = \mathbf{x}_i^\top \boldsymbol{\beta} \]
4. Hàm liên kết chuẩn (Canonical link)
Mỗi phân phối có một hàm liên kết chuẩn giúp đơn giản hóa việc tính toán, vì nó đồng nhất với tham số tự nhiên \(\theta\). Một số ví dụ:
| Phân phối | Hàm liên kết chuẩn \(g(\mu)\) | Dạng phổ biến |
|---|---|---|
| Normal | \(\mu\) | Hồi quy tuyến tính |
| Bernoulli | \(\log\left( \frac{\mu}{1 - \mu} \right)\) | Hồi quy logistic |
| Poisson | \(\log(\mu)\) | Hồi quy Poisson |
| Gamma | \(1/\mu\) hoặc \(\log(\mu)\) | Dữ liệu dương |
| Inverse Gaussian | \(1/\mu^2\) hoặc \(\log(\mu)\) | Dữ liệu dương có phương sai tăng mạnh |
5. Tính linh hoạt của GLM
GLM linh hoạt nhờ:
Chọn phân phối phù hợp với loại dữ liệu.
Chọn hàm liên kết để điều chỉnh tuyến tính hóa hoặc kiểm soát giải thích.
Dễ mở rộng sang nhiều bài toán: phân loại nhị phân, đếm, dự báo rủi ro,…
6. Vai trò của hàm liên kết
Hàm liên kết giúp: - Đảm bảo mô hình hợp lệ về mặt toán học (ví dụ: \(\mu \in (0, 1)\) với phân phối Bernoulli).
Dễ giải thích theo dạng odds, tỷ lệ, log…
Đơn giản hóa tính toán khi dùng hàm liên kết chuẩn.
7. Ví dụ bằng R
Sử dụng GLM trong R:
Hồi quy logistic glm(y ~ x1 + x2, data = mydata, family = binomial(link = “logit”))
Hồi quy Poisso glm(y ~ x1 + x2, data = mydata, family = poisson(link = “log”))
Hồi quy Gamma glm(y ~ x1 + x2, data = mydata, family = Gamma(link = “log”))
1. Mục tiêu chương
Chương này trình bày cách ước lượng các tham số trong GLM: bao gồm các hệ số hồi quy \(\beta\) và (nếu có) tham số phân tán \(\phi\). Việc ước lượng dựa trên nguyên lý hợp lý cực đại (MLE) và sử dụng các thuật toán như Fisher scoring hay Iteratively Reweighted Least Squares (IRLS).
2. Tính toán đạo hàm log-likelihood
Xét một quan sát \(y \sim \text{EDM}(\mu, \phi/w)\), ta có:
\[ \frac{\partial \log P(y; \mu, \phi/w)}{\partial \mu} = \frac{w(y - \mu)}{\phi V(\mu)} \]
Trong đó: - \(w\): trọng số (weight)
\(\phi\): tham số phân tán
\(V(\mu)\): hàm phương sai
3. Phương trình điểm (Score Equations) và thuật toán Fisher Scoring
Trong GLM, đạo hàm của log-likelihood theo \(\beta\):
\[ \frac{\partial \ell(\boldsymbol{\beta})}{\partial \beta_j} = \sum_{i=1}^n \frac{\partial \ell_i}{\partial \mu_i} \cdot \frac{\partial \mu_i}{\partial \eta_i} \cdot \frac{\partial \eta_i}{\partial \beta_j} \]
Biểu diễn ma trận: - U (score vector): \[ U = X^T W (y - \mu)/\phi \] - Ma trận thông tin Fisher: \[ I = X^T W X / \phi \] - Trong đó: - \(X\): ma trận thiết kế - \(W\): ma trận chéo trọng số \(w_i \cdot (d\mu_i/d\eta_i)^2 / V(\mu_i)\)
4. Thuật toán IRLS (Iteratively Reweighted Least Squares)
Cốt lõi của IRLS là lặp lại việc giải hệ phương trình tuyến tính có trọng số cho đến khi hội tụ:
\[ \beta^{(k+1)} = \left( X^T W^{(k)} X \right)^{-1} X^T W^{(k)} z^{(k)} \]
Trong đó: - \(z^{(k)}\): biến phụ (working response): \[ z_i^{(k)} = \eta_i^{(k)} + (y_i - \mu_i^{(k)}) \left( \frac{d\eta_i}{d\mu_i} \right) \]
Mỗi vòng lặp sử dụng trọng số cập nhật \(W^{(k)}\), và lặp lại cho đến khi thay đổi giữa các \(\beta^{(k)}\) là đủ nhỏ.
5. Độ lệch còn lại (Residual Deviance)
Độ lệch (deviance) đo mức độ khác biệt giữa mô hình và dữ liệu thực:
\[ D(y, \hat{\mu}) = 2 \sum_{i=1}^n \left[ y_i \log\left( \frac{y_i}{\hat{\mu}_i} \right) - (y_i - \hat{\mu}_i) \right] \]
Có thể chia ra:
Deviance tuyệt đối: từ mô hình
Deviance từng phần: cho từng quan sát
Deviance chuẩn hóa (scaled): chia cho \(\phi\)
6. Ước lượng độ lệch chuẩn và khoảng tin cậy
Sai số chuẩn của \(\hat{\beta}_j\): \[ \text{SE}(\hat{\beta}_j) = \sqrt{\phi \cdot v_j} \] với \(v_j\): phần tử chéo của \((X^T W X)^{-1}\)
Khoảng tin cậy: \[ \hat{\beta}_j \pm z_{1 - \alpha/2} \cdot \text{SE}(\hat{\beta}_j) \]
7. Mối liên hệ với hồi quy tuyến tính
Trong GLM, các bước của IRLS rất giống với hồi quy tuyến tính có trọng số. Do đó: - Có thể áp dụng các chẩn đoán giống hồi quy tuyến tính. - Một số lượng như fitted values, leverage, Cook’s D… vẫn có thể tính từ vòng lặp cuối của IRLS.
8. Ước lượng tham số phân tán \(\phi\)
Nếu \(\phi\) không biết (như trong Gamma hoặc Inverse Gaussian), có thể ước lượng bằng:
Trong R, summary(glm_model) tự động ước lượng và hiển
thị \(\phi\) nếu cần.
9. Triển khai trong R
Sử dụng hàm glm():
model <- glm(y ~ x1 + x2, family = poisson, data = mydata) summary(model)
1. Giới thiệu
Suy luận thống kê (inference) trong GLM nhằm kiểm tra giả thuyết, xây
dựng khoảng tin cậy và đánh giá mô hình.
Ba loại kiểm định chính gồm:
Kiểm định Wald (Wald test): kiểm tra hệ số hồi quy dựa trên ước lượng và sai số chuẩn.
Kiểm định tỉ số hợp lý (Likelihood Ratio Test – LRT): so sánh mô hình lồng nhau qua độ lệch (deviance).
Kiểm định score (Score test): đánh giá sự thay đổi hợp lý của hàm hợp lý tại giá trị giả thuyết.
2. Inference khi hệ số phân tán \(\phi\) đã biết
\[ Z = \frac{\hat{\beta}_j - \beta_{j,0}}{\text{SE}(\hat{\beta}_j)} \sim N(0,1) \]
\[ \hat{\beta}_j \pm z_{\alpha/2} \cdot \text{SE}(\hat{\beta}_j) \]
\[
\eta_i = x_i^T \hat{\beta} \Rightarrow \mu_i = g^{-1}(\eta_i)
\]
Khoảng tin cậy cho \(\eta_i\) được biến
đổi qua hàm link ngược \(g^{-1}\).
\[ D = 2 (\ell_{\text{full}} - \ell_{\text{reduced}}) \sim \chi^2_{df} \]
Sử dụng bảng anova(fit1, fit2, test = "Chisq") để kiểm
tra mô hình lồng nhau.
Không cần ước lượng mô hình đầy đủ. Dựa trên đạo hàm của log-likelihood tại giá trị giả thuyết.
3. Goodness-of-fit khi \(\phi\) đã biết
Deviance test:
\[ D(y, \hat{\mu}) \sim \chi^2_{n - p'} \]
Pearson test:
\[ X^2 = \sum \frac{(y_i - \hat{\mu}_i)^2}{V(\hat{\mu}_i)} \sim \chi^2_{n - p'} \]
4. Inference khi \(\phi\) chưa biết
Thay vì sử dụng phân phối chuẩn hoặc chi bình phương, ta dùng phân phối Student hoặc F.
Wald test (với \(\hat{\phi}\)):
\[ T = \frac{\hat{\beta}_j}{\text{SE}(\hat{\beta}_j)} \sim t_{n - p'} \]
Kiểm định LRT dùng F:
\[ F = \frac{(D_{\text{reduced}} - D_{\text{full}})/(df)}{\hat{\phi}} \sim F_{df_1, df_2} \]
Phân tích độ lệch với kiểm định F:
Sử dụng anova(..., test = "F") trong R.
5. So sánh Wald, Score và LRT
| Tiêu chí | Wald | LRT | Score |
|---|---|---|---|
| Dễ tính | v | x | x |
| Độ chính xác | x (khi n nhỏ) | v | v |
| Phụ thuộc mô hình đầy đủ | v | v | x |
6. So sánh mô hình không lồng nhau
Sử dụng tiêu chí:
AIC (Akaike Information Criterion)
BIC (Bayesian Information Criterion)
Mô hình có AIC hoặc BIC thấp hơn được ưu tiên.
7. Lựa chọn mô hình tự động trong R
Các hàm thường dùng:
step(fit, direction = “both”, trace = FALSE) add1(fit, scope = …, test = “F”) drop1(fit, test = “Chi”)
1. Giới thiệu
Chẩn đoán mô hình giúp phát hiện các vấn đề trong mô hình GLM, như
sai giả định, outliers hoặc biến ảnh hưởng lớn.
Các kỹ thuật chẩn đoán dựa trên residuals, leverage và các biểu đồ kiểm
tra.
2. Giả định cơ bản của GLMs
Không có điểm ngoại lệ (outliers) quá lớn
Mô hình có link function đúng: \(g(\mu) = \eta\)
Hàm phương sai \(V(\mu)\) phù hợp
Hệ số phân tán \(\phi\) là hằng số
Các quan sát độc lập
Phân phối phản hồi thuộc họ EDM
3. Các loại residuals
Response residual:
\[
r_i = y_i - \hat{\mu}_i
\]
Pearson residual: \[ r_{P,i} = \frac{y_i - \hat{\mu}_i}{\sqrt{V(\hat{\mu}_i) / w_i}} \]
Deviance residual: \[ r_{D,i} = \text{sign}(y_i - \hat{\mu}_i) \cdot \sqrt{w_i \cdot d(y_i, \hat{\mu}_i)} \]
Quantile residual:
\[
r_{Q,i} = \Phi^{-1}(F(y_i; \hat{\mu}_i, \hat{\phi}))
\]
Đặc biệt hữu ích cho dữ liệu rời rạc (như nhị phân hoặc đếm). 4.
Residual chuẩn hóa (Standardized residuals)
Chuẩn hóa để so sánh giữa các quan sát, loại bỏ ảnh hưởng của leverage.
\[
r^{*}_{P,i} = \frac{r_{P,i}}{\sqrt{\hat{\phi}(1 - h_i)}}
\]
\[
r^{*}_{D,i} = \frac{r_{D,i}}{\sqrt{\hat{\phi}(1 - h_i)}}
\]
Trong đó \(h_i\) là leverage (giá trị đường chéo của hat matrix).
5. Leverage và ma trận hat
\[ \mathbf{H} = \mathbf{W}^{1/2} \mathbf{X} (\mathbf{X}^T \mathbf{W} \mathbf{X})^{-1} \mathbf{X}^T \mathbf{W}^{1/2} \]
Leverage cao → quan sát ảnh hưởng mạnh đến fitted values
Dùng hatvalues(fit) trong R để trích xuất
6. Biểu đồ chẩn đoán trong R
plot(fitted(fit), residuals(fit, type = "pearson")):
kiểm tra phương sai
qqnorm(rstandard(fit)): kiểm tra phân phối
chuẩn
plot(residuals(fit) ~ η̂): kiểm tra link
function
acf(residuals(fit)): kiểm tra độc lập
Partial residual plots: kiểm tra mối quan hệ phi tuyến
7. Phát hiện điểm ảnh hưởng & ngoại lệ
Cook’s distance:
cooks.distance(fit)
DFBETAs: dfbetas(fit)
DFFITS: dffits(fit)
Covariance ratio:
covratio(fit)
Tổng hợp:
influence.measures(fit)
8. Quasi-likelihood và extended quasi-likelihood
Khi không chắc chắn phân phối của dữ liệu nhưng biết mối quan hệ giữa \(\mu\) và \(V(\mu)\):
Ví dụ trong R:
glm(y ~ x, family = quasi(link = “log”, variance = “mu^2”))
1. Giới thiệu
Binomial GLMs là một trong những mô hình GLM phổ biến nhất, dùng để mô hình hóa tỷ lệ hoặc xác suất, như số lượng thành công trên tổng số thử nghiệm.
2. Mô hình hóa tỷ lệ
Phân phối binomial:
\[
P(y; \mu, m) = \binom{m}{y} \mu^y (1 - \mu)^{m - y}
\]
Với \(\mu\) là xác suất thành công,
\(m\) là số thử.
3. Hàm liên kết phổ biến
4. Odds và log-odds
5. ED50 và mô hình liều – đáp ứng
ED50 là liều lượng tại đó xác suất thành công là 0.5
Có thể tính bằng dose.p() trong R.
6. Overdispersion và underdispersion
7. Ước lượng trong R
glm(cbind(success, fail) ~ x, family = binomial) glm(prop ~ x, weights = m, family = binomial)
1. Giới thiệu
Dữ liệu đếm phát sinh phổ biến trong nghiên cứu y tế, sinh học, kinh
tế,…
Poisson là phân phối cơ bản; nếu overdispersion xảy ra, có thể dùng
Negative Binomial hoặc quasi-Poisson.
2. Mô hình Poisson
\[
P(y; \mu) = \frac{e^{-\mu} \mu^y}{y!}
\]
Hàm phương sai: \(V(\mu) = \mu\)
Hàm liên kết chuẩn:
\[
g(\mu) = \log(\mu)
\]
3. Mô hình hóa tỉ lệ (rate)
Thêm offset \(\log(t_i)\) vào tuyến
tính để mô hình hóa:
\[
\log\left(\frac{\mu_i}{t_i}\right) = x_i^T \beta
\]
4. Bảng tần số (log-linear models)
5. Quá phân tán (Overdispersion)
Nếu \(\phi > 1\), Poisson không còn phù hợp
Chọn Negative Binomial GLM: \(V(\mu) = \mu + \alpha \mu^2\)
Hoặc dùng quasi-Poisson
6. R code ví dụ
glm(y ~ x, family = poisson) glm(y ~ x, family = quasipoisson) library(MASS) glm.nb(y ~ x) # Negative Binomial
1. Giới thiệu
Khi biến phản hồi là số dương liên tục (thời gian, chi phí), phân phối gamma và inverse Gaussian thường được dùng.
2. Phân phối gamma
\[ V(\mu) = \mu^2 \]
Phù hợp cho mô hình hóa thời gian chờ giữa các sự kiện.
3. Phân phối inverse Gaussian
\[ V(\mu) = \mu^3 \]
Mô hình hóa thời gian đến sự kiện đầu tiên (Brownian motion)
4. Hàm liên kết thường dùng
Log: \(\log(\mu)\)
Inverse: \(1/\mu\)
Identity: \(\mu\)
5. Ước lượng hệ số phân tán \(\phi\)
Dùng phương pháp Pearson hoặc deviance
MLE cho inverse Gaussian là chính xác hơn
6. R code ví dụ
glm(y ~ x, family = Gamma(link = “log”)) glm(y ~ x, family = inverse.gaussian(link = “identity”))
1. Giới thiệu
Tweedie GLMs bao phủ nhiều phân phối quen thuộc:
Normal (ξ = 0)
Poisson (ξ = 1)
Gamma (ξ = 2)
Inverse Gaussian (ξ = 3)
2. Hàm phương sai Tweedie
\[
V(\mu) = \mu^\xi
\]
Thích hợp với dữ liệu dương có nhiều số 0 (1 < ξ < 2)
3. Ước lượng chỉ số ξ
Dùng tweedie.profile() từ gói tweedie để
ước lượng:
library(tweedie) tweedie.profile(y ~ x, data = mydata)
data <- read.csv("C:/Users/Ngo Trang/Documents/Supermarket Transactions.csv", header = TRUE)
Các biến được sử dụng trong file dữ liệu bào gồm :Ngày mua hàng, ID khách hàng, Giới tính, Tình trạng hôn nhân, Chủ nhà, Số người con, Thu nhập hàng năm, Thành phố, Tiểu bang hoặc Tỉnh, Quốc gia, Sản phẩm, Gia đình, Bộ phận sản phẩm, Danh mục sản phẩm, Đơn vị đã bán, Doanh thu. Cca biến trên bap gồm cả biến định lượng và biến định tính.
cols_factor <- c("Gender", "MaritalStatus", "Homeowner", "AnnualIncome",
"City", "StateorProvince", "Country",
"ProductFamily", "ProductDepartment", "ProductCategory")
data[cols_factor] <- lapply(data[cols_factor], factor)
data$AnnualIncome <- factor(data$AnnualIncome, ordered = TRUE)
data$PurchaseDate <- as.Date(data$PurchaseDate)
a. Children, UnitsSold, Revenue
# Tóm tắt thống kê cơ bản
summary(data[, c("Children", "UnitsSold", "Revenue")])
## Children UnitsSold Revenue
## Min. :0.00 Min. :1.000 Min. : 0.53
## 1st Qu.:1.00 1st Qu.:3.000 1st Qu.: 6.84
## Median :3.00 Median :4.000 Median :11.25
## Mean :2.53 Mean :4.081 Mean :13.00
## 3rd Qu.:4.00 3rd Qu.:5.000 3rd Qu.:17.37
## Max. :5.00 Max. :8.000 Max. :56.70
# Độ lệch chuẩn
sapply(data[, c("Children", "UnitsSold", "Revenue")], sd, na.rm = TRUE)
## Children UnitsSold Revenue
## 1.491852 1.174421 8.215543
Nhận xét
Children(Số người con): Trung bình khách hàng có khoảng 2.53 người con, khá phổ biến với hộ gia đình nhỏ. Giá trị trung vị là 3, cho thấy phân bố có phần hơi lệch trái. Có khách hàng không có con (min = 0), cao nhất là 5. Phân phối khá đều, không quá lệch, với độ lệch chuẩn vừa phải (1.49).
UnitsSold(Đơn vị đã bán): Trung bình mỗi giao dịch bán được khoảng 4 sản phẩm, trung vị cũng là 4 → phân phối gần chuẩn. Mức dao động từ 1 đến 8 sản phẩm, không có giá trị bất thường rõ rệt. Độ lệch chuẩn nhỏ (1.17) cho thấy các giao dịch tương đối đồng đều về số lượng bán.
Revenue(Doang thu): Trung bình mỗi giao dịch thu về 13 đơn vị tiền tệ, nhưng giá trị trung vị thấp hơn (11.25) → có thể có một vài giao dịch doanh thu cao kéo trung bình lên. Độ lệch chuẩn cao (8.22), thể hiện mức dao động lớn, phân phối lệch phải (skewed). Có thể có outlier về doanh thu, nên cần kiểm tra boxplot hoặc histogram.
b. AnnualIncome – Biến phân loại có thứ tự
# Chuyển thành factor có thứ tự đúng
data$AnnualIncome <- factor(data$AnnualIncome,
levels = c("$30K - $50K", "$50K - $70K", "$70K - $90K", "$90K - $110K", "$110K - $150K"),
ordered = TRUE
)
# Thống kê mô tả
table(data$AnnualIncome)
##
## $30K - $50K $50K - $70K $70K - $90K $90K - $110K $110K - $150K
## 4601 2370 1709 613 0
prop.table(table(data$AnnualIncome)) * 100
##
## $30K - $50K $50K - $70K $70K - $90K $90K - $110K $110K - $150K
## 49.510384 25.503067 18.390186 6.596363 0.000000
Nhận xét
$30K – $50K: 49.5% (chiếm tỷ lệ lớn nhất)
$50K – $70K: 25.5%
$70K – $90K: 18.4%
$90K – $110K: chỉ chiếm 6.6%
$110K – $150K: không có khách hàng nào
⇒ Tập khách hàng chủ yếu thuộc thu nhập trung bình đến trung bình thấp. Nhóm thu nhập cao gần như không xuất hiện.
c. CustomerID – Biến định danh
Dùng để nhận diện từng khách hàng duy nhất
Mỗi giá trị là duy nhất (unique)
Không có ý nghĩa thống kê khi đếm, lấy tần suất, hay tính tỷ lệ
Không thể gom nhóm hay tạo bảng tần suất như các biến dạng factor
# Tần suất và tỷ lệ phần trăm
prop.table(table(data$Gender)) * 100
##
## F M
## 50.99936 49.00064
prop.table(table(data$Homeowner)) * 100
##
## N Y
## 39.93883 60.06117
# Bảng chéo ví dụ
table(data$MaritalStatus, data$Homeowner)
##
## N Y
## M 1719 5147
## S 3896 3297
Nhận xét
Giới tính phân bố gần như đều:
Nữ (F): 50.0%
Nam (M): 49.9%
→ Không có sự mất cân bằng giới tính trong tập dữ liệu.
Tình trạng sở hữu nhà (Homeowner):
Có nhà (Y): ~60%
Không có nhà (N): ~40%
→ Nhóm khách hàng phần lớn là chủ sở hữu nhà, có thể liên quan đến khả năng chi tiêu cao hơn.
Liên hệ giữa tình trạng hôn nhân và sở hữu nhà:
| Marital Status | Không có nhà (N) | Có nhà (Y) | Tổng số |
|---|---|---|---|
| Đã kết hôn (M) | 1719 | 5147 | 6866 |
| Độc thân (S) | 3896 | 3297 | 7185 |
→ Trong nhóm đã kết hôn, khoảng 75% có nhà.
→ Trong nhóm độc thân, chỉ khoảng 46% có nhà.
⇒ Nhận xét: Người đã kết hôn có xu hướng sở hữu nhà cao hơn, điều này phản ánh mối liên hệ giữa yếu tố gia đình và tình hình kinh tế/cư trú.
# Khoảng thời gian
range(data$PurchaseDate)
## [1] "2007-12-18" "2009-12-31"
# Giao dịch theo năm
data$Year <- format(data$PurchaseDate, "%Y")
table(data$Year)
##
## 2007 2008 2009
## 35 4692 9332
Nhận xét
Số lượng giao dịch theo năm:
2007: 35 giao dịch (dữ liệu chỉ có vài ngày cuối năm)
2008: 4,692 giao dịch
2009: 9,332 giao dịch
⇒ Dữ liệu chủ yếu tập trung vào năm 2008 và 2009, trong đó 2009 chiếm gần 2/3 tổng số giao dịch.
5. Biểu đồ minh họa
library(ggplot2)
# Giới tính
ggplot(data, aes(x = Gender)) +
geom_bar(fill = "steelblue") +
theme_minimal()
# Histogram doanh thu
ggplot(data, aes(x = Revenue)) +
geom_histogram(bins = 30, fill = "orange") +
theme_minimal()
# Boxplot doanh thu theo giới tính
ggplot(data, aes(x = Gender, y = Revenue)) +
geom_boxplot(fill = "lightgreen") +
theme_minimal()