TÓM TẮT SÁCH

Chương 1 – Tổng quan về Mô hình Thống kê và Cơ sở của GLM

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.

  • \(\epsilon_i\): sai số ngẫu nhiên, có thể có phân phối khác nhau tùy loại mô hình.

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:

  1. 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.

  2. 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.

  3. 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)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ụcphâ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ế.


Chương 2 – Mô hình Hồi quy Tuyến tính

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)


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

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)


Chương 4 – Vượt ra ngoài Hồi quy Tuyến tính: Phương pháp Ước lượng Hợp lý Cực đại (MLE)

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.


Chương 5 – Cấu trúc của Mô hình Tuyến tính Tổng quát (GLM)

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:

  1. Thành phần ngẫu nhiên (Random Component) Biến phản hồi \(Y_i\) có phân phối thuộc họ hàm mũ mở rộng (Exponential Dispersion Models - EDM):

\[ 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

  1. Thành phần hệ thống (Systematic Component) Tổ hợp tuyến tính các biến giải thích:

\[ \eta_i = \beta_0 + \beta_1 x_{1i} + \dots + \beta_p x_{pi} \]

  1. Hàm liên kết (Link Function) Liên kết kỳ vọng \(\mu_i = E(Y_i)\) với predictor tuyến tính:

\[ 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”))


Chương 6 – Ước lượng trong Mô hình Tuyến tính Tổng quát (GLM)

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:

  • Deviance-based estimate: \[ \hat{\phi}_D = \frac{D(y, \hat{\mu})}{n - p} \]
  • Pearson-based estimate: \[ \hat{\phi}_P = \frac{1}{n - p} \sum \frac{(y_i - \hat{\mu}_i)^2}{V(\hat{\mu}_i)} \]

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)


Chương 7 – Suy luận thống kê trong Mô hình Tuyến tính Tổng quát (GLM)

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

  • Kiểm định Wald:

\[ Z = \frac{\hat{\beta}_j - \beta_{j,0}}{\text{SE}(\hat{\beta}_j)} \sim N(0,1) \]

  • Khoảng tin cậy cho hệ số \(\beta_j\):

\[ \hat{\beta}_j \pm z_{\alpha/2} \cdot \text{SE}(\hat{\beta}_j) \]

  • Khoảng tin cậy cho giá trị kỳ vọng \(\mu\):

\[ \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}\).

  • Kiểm định tỉ số hợp lý (LRT):

\[ D = 2 (\ell_{\text{full}} - \ell_{\text{reduced}}) \sim \chi^2_{df} \]

  • Phân tích độ lệch (Analysis of Deviance):

Sử dụng bảng anova(fit1, fit2, test = "Chisq") để kiểm tra mô hình lồng nhau.

  • Kiểm định score:

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”)


Chương 8 – Chẩn đoán Mô hình Tuyến tính Tổng quát (Diagnostics for GLMs)

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

  • Hat matrix trong GLMs:

\[ \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(\mu)\):

Ví dụ trong R:

glm(y ~ x, family = quasi(link = “log”, variance = “mu^2”))


Chương 9 – Mô hình tỷ lệ: Binomial GLMs

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

  • logit: \(\log\left(\frac{\mu}{1-\mu}\right)\)
  • probit: \(\Phi^{-1}(\mu)\)
  • cloglog: \(\log(-\log(1 - \mu))\)

4. Odds và log-odds

  • Odds: \(\mu / (1 - \mu)\)
  • Log-odds chính là giá trị tuyến tính \(\eta\)

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

  • Sự phân tán cao/thấp hơn binomial lý tưởng
  • Sử dụng quasi-binomial hoặc beta-binomial để điều chỉnh

7. Ước lượng trong R

glm(cbind(success, fail) ~ x, family = binomial) glm(prop ~ x, weights = m, family = binomial)


Chương 10 – Mô hình đếm: Poisson và Negative Binomial GLMs

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)

  • Mô hình Poisson dùng cho bảng 2 chiều hoặc 3 chiều
  • So sánh các dạng độc lập (full, partial, conditional)

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


Chương 11 – Dữ liệu dương liên tục: Gamma và Inverse Gaussian GLMs

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”))


Chương 12 – Mô hình Tweedie GLMs

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)

THỐNG KÊ MÔ TẢ CÁC BIẾN

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.

1. Chuyển các biến định tính sang kiểu factor

cols_factor <- c("Gender", "MaritalStatus", "Homeowner", "AnnualIncome",
                 "City", "StateorProvince", "Country",
                 "ProductFamily", "ProductDepartment", "ProductCategory")
data[cols_factor] <- lapply(data[cols_factor], factor)
  • AnnualIncome (Thu nhập hàng năm) có thứ tự nên có thể dùng ordered factor nếu cần
data$AnnualIncome <- factor(data$AnnualIncome, ordered = TRUE)
  • Chuyển cột ngày mua hàng (PurchaseDate) sang kiểu Date
data$PurchaseDate <- as.Date(data$PurchaseDate)

2. Thống kê mô tả biến định lượng

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

  • Nhóm thu nhập chủ yếu nằm trong khoảng từ $30K đến $90K, chiếm gần 93% tổng số khách hàng:

$30K – $50K: 49.5% (chiếm tỷ lệ lớn nhất)

$50K – $70K: 25.5%

$70K – $90K: 18.4%

  • Các nhóm thu nhập cao hơn:

$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

3. Thống kê mô tả biến định tính

# 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ú.

4. Thống kê thời gian

# 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()