Tài liệu này đóng vai trò như một giáo trình, tập trung vào các mô hình tuyến tính tổng quát (GLMs), phát triển dựa trên những kiến thức nền tảng của hồi quy tuyến tính. Nó giới thiệu nhiều khái niệm thống kê nâng cao và các công cụ được sử dụng trong phân tích GLM, bao gồm các họ phân phối khác nhau và các phương pháp xấp xỉ. Nội dung nhấn mạnh vào ứng dụng thực tiễn thông qua ngôn ngữ lập trình R, với các ví dụ phân tích các bộ dữ liệu thực tế như dung tích phổi, nhiệt dung và dữ liệu sinh học. Các chủ đề chính được đề cập bao gồm: ước lượng và chẩn đoán mô hình, kiểm định giả thuyết, so sánh mô hình, và xử lý các vấn đề phổ biến như phương sai vượt mức (overdispersion) và biến tương quan trong khuôn khổ GLM. Cuốn sách cung cấp cả cơ sở lý thuyết lẫn hướng dẫn triển khai thực hành cho các mô hình thống kê này.
Mô hình thống kê giúp mô tả và hiểu dữ liệu bằng cách kết hợp hai thành phần:
-Thành phần hệ thống (Systematic component): biểu diễn tác động của các biến độc lập.
-Thành phần ngẫu nhiên (Random component): biểu diễn sai số do các yếu tố không quan sát được.
+) Biến phản hồi: \(y_i\), với \(i = 1, 2, ..., n\)
+) Covariates: \(x_{ij}\), với \(j = 1, 2, ..., p\)
\[ \mathbf{X} = \begin{bmatrix} x_{11} & x_{12} & \dots & x_{1p} \\ x_{21} & x_{22} & \dots & x_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \dots & x_{np} \end{bmatrix} \]
Việc trực quan hóa dữ liệu là bước đầu tiên trong việc hiểu mối quan hệ giữa các biến. Các loại biểu đồ phổ biến:
-plot(x, y)
-boxplot(y ~ x)
-interaction.plot()
Trong R, biến định tính (categorical) được mã hóa thành các chỉ số nhị phân (dummy variables). Ví dụ:
-Biến gender với hai mức: “male”, “female”
-Mã hóa “male” = 0, “female” = 1 (hoặc ngược lại)
Mô hình thống kê mô tả mối quan hệ:
\[ Y = f(X) + \varepsilon \]
Trong đó:
-\(Y\): biến phụ thuộc
-\(X\): biến độc lập
-\(f(X)\): thành phần hệ thống
-\(\varepsilon\): thành phần ngẫu nhiên, \(\varepsilon \sim N(0, \sigma^2)\)
Mô hình hồi quy tuyến tính đơn:
\[ y_i = \beta_0 + \beta_1 x_i + \varepsilon_i \]
Mô hình hồi quy tuyến tính bội:
\[ y_i = \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + \dots + \beta_p x_{ip} + \varepsilon_i \]
Ước lượng tham số bằng phương pháp bình phương tối thiểu (OLS):
\[ \hat{\boldsymbol{\beta}} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{y} \]
Việc giải thích mô hình thống kê là cần thiết và phải xem xét cả ý nghĩa thống kê lẫn bối cảnh dữ liệu.
-\(\beta_0\): hằng số (intercept)
-\(\beta_j\): hệ số hồi quy ứng với biến \(x_j\), thể hiện sự thay đổi trung bình của \(y\) khi \(x_j\) tăng 1 đơn vị (giữ các biến khác không đổi)
Không có mô hình nào là hoàn hảo — mô hình là sự đơn giản hóa thực tế. Cần đánh giá độ phù hợp của mô hình bằng phân tích phần dư, kiểm định giả thuyết…
-Dự báo (prediction): cần mô hình chính xác
-Giải thích (interpretation): cần mô hình đơn giản, dễ hiểu
-Mô hình quá phức tạp có thể overfitting.
-Mô hình quá đơn giản có thể underfitting.
→ Cần cân bằng giữa độ chính xác và sự đơn giản (nguyên lý Occam).
-Thí nghiệm (experiment): có kiểm soát và gán ngẫu nhiên → cho phép suy ra nhân quả
-Quan sát (observational study): không có kiểm soát → chỉ xác định được mối liên hệ
Chất lượng dữ liệu ảnh hưởng trực tiếp đến kết quả phân tích. Mẫu phải đại diện cho tổng thể để đảm bảo khả năng khái quát hóa (generalizability).
Một số hàm cơ bản trong R:
lm(y ~ x1 + x2, data = dataset) # Hồi quy tuyến tính
plot(x, y) # Vẽ biểu đồ phân tán
summary(model) # Tóm tắt kết quả mô hình
Chương 1 trình bày những khái niệm cơ bản về mô hình thống kê:
-Mô hình gồm 2 phần: hệ thống và ngẫu nhiên
-Biến định tính cần được mã hóa
-Mô hình hồi quy là khởi đầu cho các GLM
-Sử dụng R để phân tích dữ liệu thực tế
-Nhấn mạnh việc hiểu rõ mục tiêu mô hình: dự đoán hay giải thích
Hồi quy tuyến tính là mô hình phổ biến nhất trong thống kê, là nền tảng cho việc mở rộng sang các mô hình tuyến tính tổng quát (GLMs).
Mô hình gồm hai thành phần:
-Thành phần ngẫu nhiên:
\[ \text{var}(y_i) = \frac{\sigma^2}{w_i}
\]
-Thành phần hệ thống (tuyến tính):
\[ \mu_i = \beta_0 + \beta_1 x_{1i} + \cdots
+ \beta_p x_{pi} \]
Kết hợp: \[ \begin{cases} \text{var}(y_i) = \frac{\sigma^2}{w_i} \\ \mu_i = \beta_0 + \sum_{j=1}^{p} \beta_j x_{ji} \end{cases} \]
Minimize: \[ S(\beta_0, \beta_1) = \sum_{i=1}^{n} w_i (y_i - \mu_i)^2 \]
\[ \hat{\beta}_1 = \frac{\sum w_i(x_i - \bar{x}_w)(y_i - \bar{y}_w)}{\sum w_i(x_i - \bar{x}_w)^2} \\ \hat{\beta}_0 = \bar{y}_w - \hat{\beta}_1 \bar{x}_w \]
Residual sum of squares (RSS):
\[ RSS = \sum w_i (y_i - \hat{\mu}_i)^2 \]
Ước lượng không chệch của phương sai:
\[ s^2 = \frac{RSS}{n - 2} \]
\[ \text{var}(\hat{\beta}_0) = \sigma^2 \left( \frac{1}{\sum w_i} + \frac{\bar{x}_w^2}{SS_x} \right), \quad \text{var}(\hat{\beta}_1) = \frac{\sigma^2}{SS_x} \]
Sai số chuẩn:
\[ se(\hat{\beta}_j) = \sqrt{\text{var}(\hat{\beta}_j)} \]
Tại \(x = x_g\):
\[ \text{var}(\hat{\mu}_g) = \sigma^2 \left( \frac{1}{\sum w_i} + \frac{(x_g - \bar{x}_w)^2}{SS_x} \right) \]
Tổng quát với p biến giải thích.
Hàm mất mát: \[ S = \sum w_i (y_i - \mu_i)^2 \]
Giải hệ p+1 phương trình đạo hàm riêng:
\[ \hat{\beta}_j = \frac{\sum w_i x_{ij}^* y_i}{\sum w_i (x_{ij}^*)^2} \]
\[ rss = \sum w_i (y_i - \hat{\mu}_i)^2 \\ s^2 = \frac{rss}{n - p'} \]
\[ \text{var}(\hat{\beta}_j) = \frac{\sigma^2}{I_j^*}, \quad se(\hat{\beta}_j) = \frac{s}{\sqrt{I_j^*}} \]
\[ \mathbf{y}: n \times 1, \quad \mathbf{X}: n \times p', \quad \boldsymbol{\beta}: p' \times 1 \\ \mu = \mathbf{X} \boldsymbol{\beta}, \quad \text{var}(\mathbf{y}) = W^{-1} \sigma^2 \]
Hệ phương trình:
\[ \mathbf{X}^T W \mathbf{X} \hat{\boldsymbol{\beta}} = \mathbf{X}^T W \mathbf{y} \]
Giải:
\[ \hat{\boldsymbol{\beta}} = (\mathbf{X}^T W \mathbf{X})^{-1} \mathbf{X}^T W \mathbf{y} \]
\[ \hat{\mu} = \mathbf{X} \hat{\boldsymbol{\beta}}, \quad RSS = (\mathbf{y} - \hat{\mu})^T W (\mathbf{y} - \hat{\mu}) \\ s^2 = \frac{RSS}{n - p'} \]
\[ \text{var}(\hat{\boldsymbol{\beta}}) = \sigma^2 (\mathbf{X}^T W \mathbf{X})^{-1} \\ \widehat{\text{var}}(\hat{\boldsymbol{\beta}}) = s^2 (\mathbf{X}^T W \mathbf{X})^{-1} \]
Sai số chuẩn: \[ se(\hat{\beta}_j) = \sqrt{\widehat{\text{var}}(\hat{\beta}_j)} \]
Tại \(\mathbf{x}_g\):
\[ \hat{\mu}_g = \mathbf{x}_g^T \hat{\boldsymbol{\beta}} \\ \text{var}(\hat{\mu}_g) = \sigma^2 \mathbf{x}_g^T (\mathbf{X}^T W \mathbf{X})^{-1} \mathbf{x}_g \]
fit <- lm(y ~ x1 + x2 + ..., data = data_frame)
summary(fit)
\(\beta_j\): mức thay đổi trung bình của \(y\) khi \(x_j\) tăng 1 đơn vị (các biến khác giữ nguyên).
Kiểm định giả thuyết:
\(H_0: \beta_j = 0\) (không ảnh hưởng)
\(H_1: \beta_j \ne 0\)
Thống kê kiểm định:
\[ t_j = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \sim t_{n - p'} \]
Khoảng tin cậy:
\[ \hat{\beta}_j \pm t^*_{\alpha/2, n - p'} \cdot SE(\hat{\beta}_j) \]
SSR: phương sai giải thích được bởi mô hình
RSS: phương sai còn lại
Tổng bình phương: \(\mathrm{TSS} = \mathrm{SSR} + \mathrm{RSS}\)
anova(model1, model2)
AIC và BIC:
\(\mathrm{AIC} = -2 \log(L) + 2p\)
\(\mathrm{BIC} = -2 \log(L) + \log(n) \cdot p\)
step(model, direction = "both")
add1(model, scope = ~ . + new_var)
drop1(model)
extractAIC(model)
Sử dụng dữ liệu thực tế để xây dựng mô hình hồi quy.
Kiểm tra ý nghĩa thống kê và diễn giải ý nghĩa thực tiễn.
lm() # hồi quy tuyến tính
summary() # tóm tắt mô hình
confint() # khoảng tin cậy
plot() # vẽ biểu đồ
abline() # vẽ đường hồi quy
coef() # hệ số ước lượng
anova() # so sánh mô hình
Hồi quy tuyến tính là công cụ mô tả mối quan hệ giữa các biến.
Có thể mở rộng từ hồi quy đơn sang hồi quy bội, dùng ma trận để ước lượng.
Các công cụ chọn mô hình như AIC, BIC, kiểm định \(t\), ANOVA rất quan trọng.
Thực hành với R giúp hiểu và áp dụng mô hình hiệu quả.
-Sau khi xây dựng mô hình hồi quy tuyến tính, cần đánh giá giả định mô hình bằng các công cụ đồ thị và chẩn đoán.
-Mục tiêu: phát hiện và khắc phục sai lệch (vi phạm giả định).
1.Không có ngoại lệ (outliers)
2.Tính tuyến tính
3.Phương sai không đổi
4.Độc lập giữa các quan sát
5.Phân phối chuẩn của sai số
\[ \mu_i = \beta_0 + \beta_1 x_{1i} + \cdots + \beta_p x_{pi} \]
-Phương sai của \(y_i\) không phụ thuộc vào giá trị của \(x_i\).
-Nếu không đúng, cần biến đổi dữ liệu (log, sqrt, Box-Cox,…).
-Dữ liệu theo chuỗi thời gian hoặc không gian có thể gây phụ thuộc.
-Cần kiểm tra thông qua lag plots hoặc thiết kế thực nghiệm hợp lý.
-Sai số phải phân phối chuẩn: \(\epsilon_i \sim N(0, \sigma^2)\)
-Kiểm tra bằng đồ thị Q–Q hoặc kiểm định Shapiro-Wilk.
Các loại phần dư:
-Phần dư thô: \(r_i = y_i - \hat{y}_i\)
-Phần dư chuẩn hóa: \[ r'_i = \frac{r_i}{s \sqrt{1 - h_i}} \]
Trong đó:
-\(s^2\) là ước lượng phương sai.
-\(h_i\) là leverage của quan sát thứ \(i\).
resid(fit) # phần dư thô
rstandard(fit) # phần dư chuẩn hóa
Leverage \(h_i\) đo mức độ ảnh hưởng của \(x_i\) đến chính dự đoán của nó:
\[ h_i = \frac{1}{n} + \frac{(x_i - \bar{x})^2}{\sum (x_j - \bar{x})^2} \]
\(0 \leq h_i \leq 1\), tổng các \(h_i\) bằng số lượng tham số \(p'\).
plot(fit) # Tự động vẽ 4 đồ thị chẩn đoán
qqnorm(rstandard(fit)); qqline(rstandard(fit))
Quan sát có phần dư chuẩn hóa lớn.
Quan sát làm thay đổi mạnh mô hình khi loại bỏ.
Cook’s Distance:
\[ D_i = \frac{(\hat{\mu} - \hat{\mu}_{(i)})^T (\hat{\mu} - \hat{\mu}_{(i)})}{p s^2} \]
Phần dư thô, chuẩn hóa, studentized.
Thống nhất dùng rstandard() hoặc rstudent() trong R.
Nếu không tuyến tính → biến đổi biến (log, sqrt)
Nếu phương sai thay đổi → biến đổi biến phụ thuộc
Nếu không chuẩn → biến đổi hoặc dùng mô hình khác (GLM)
Nếu có outliers → kiểm tra và loại bỏ hợp lý
poly(x, 2) # x và x^2
library(splines)
ns(x, df=3) # spline bậc 3
Các biến giải thích tương quan cao → sai số lớn.
Kiểm tra bằng VIF:
library(car)
vif(fit)
plot(fit) # 4 đồ thị chuẩn
resid(fit); rstandard(fit) # phần dư
cooks.distance(fit) # điểm ảnh hưởng
vif(fit) # đa cộng tuyến
Chẩn đoán mô hình là bước quan trọng để đảm bảo mô hình hợp lý.
Dùng phần dư và đồ thị để phát hiện vi phạm giả định.
Cần có phương pháp điều chỉnh phù hợp khi gặp vấn đề.
R cung cấp đầy đủ công cụ để thực hiện chẩn đoán và cải thiện mô hình.
-Mô hình hồi quy tuyến tính không áp dụng tốt cho mọi loại dữ liệu.
-Phương pháp ước lượng hợp lý tối đa (Maximum Likelihood Estimation - MLE) là một giải pháp tổng quát hơn, cho phép mô hình hóa nhiều loại dữ liệu khác nhau.
1.Biến phản hồi là tỉ lệ (0 ≤ y ≤ 1) → không thể giả định phương sai hằng số.
2.Biến phản hồi là đếm (y = 0, 1, 2,…) → phân phối Poisson hoặc nhị thức âm phù hợp hơn.
3.Biến phản hồi là số dương liên tục → nên dùng phân phối Gamma hoặc Exponential.
-Sử dụng các phân phối thuộc họ phân phối phân tán mũ (Exponential Dispersion Models - EDM): normal, binomial, Poisson, gamma…
-Dùng hàm liên kết (link function) để kết nối trung bình \(\mu\) và predictor \(\eta\): \[ g(\mu) = \eta = \beta_0 + \sum \beta_j x_j \]
-Hàm hợp lý:
\[ L(\theta; y) = \prod_{i=1}^n P(y_i; \theta) \]
-Hàm log-hợp lý:
\[ \ell(\theta; y) = \sum_{i=1}^n \log P(y_i; \theta) \]
-MLE là giá trị \(\hat{\theta}\) sao cho \(\ell(\theta)\) đạt cực đại.
\[ U(\theta) = \frac{\partial \ell(\theta)}{\partial \theta} \]
-Thông tin quan sát:
\[ I_o(\theta) = -\frac{\partial^2 \ell(\theta)}{\partial \theta^2} \]
-Thông tin kỳ vọng:
\[ I_e(\theta) = \mathbb{E}[I_o(\theta)] \]
\[ \text{se}(\hat{\theta}) = \sqrt{\frac{1}{I_e(\theta)}} \]
Tổng quát hóa:
-Vector điểm số: \(\mathbf{U}(\boldsymbol{\beta})\)
-Ma trận thông tin: \(\mathbf{I}(\boldsymbol{\beta})\)
-Dùng đạo hàm và tích vô hướng để xây dựng hệ phương trình.
-Mục tiêu: tìm \(\hat{\boldsymbol{\beta}}\) sao cho \(\mathbf{U} = 0\)
-Thuật toán lặp:
\[ \boldsymbol{\beta}^{(t+1)} = \boldsymbol{\beta}^{(t)} + [I(\boldsymbol{\beta}^{(t)})]^{-1} U(\boldsymbol{\beta}^{(t)}) \]
1.Không đổi: Hàm của MLE cũng là MLE của hàm đó.
2.Không chệch tiệm cận: Khi \(n \to \infty\), \(E[\hat{\theta}] \to \theta\)
3.Hiệu quả tiệm cận: Không có ước lượng nào khác có phương sai nhỏ hơn.
4.Hội tụ: \(\hat{\theta} \to \theta\) khi \(n \to \infty\)
5.Phân phối chuẩn tiệm cận:
\[ \hat{\theta} \sim N(\theta, 1 / I(\theta)) \]
Ba loại kiểm định:
1.Wald test:
\[ z = \frac{\hat{\theta} - \theta_0}{\text{se}(\hat{\theta})} \]
2.Score test (Lagrange multiplier)
3.Likelihood ratio test (LRT):
\[ \Lambda = 2 [\ell(\hat{\theta}) - \ell(\theta_0)] \]
-Với phân phối chuẩn tiệm cận:
\[ \hat{\theta} \pm z_{\alpha/2} \cdot \text{se}(\hat{\theta}) \]
Dùng tiêu chí:
-AIC:
\[ \text{AIC} = -2\ell(\hat{\theta}) + 2p \]
-BIC:
\[ \text{BIC} = -2\ell(\hat{\theta}) + \log(n) \cdot p \]
-MLE là nền tảng cho mô hình GLM.
-Thay thế phương pháp bình phương tối thiểu trong các tình huống không phù hợp.
-Dùng được cho dữ liệu rời rạc, nhị phân, liên tục dương,…
# Tính mu từ beta:
MakeMu <- function(x, beta){
eta <- x %*% beta
return(1 / (1 + exp(-eta)))
}
# Tính ma trận thông tin:
MakeExpInf <- function(x, mu){
if (length(mu) == 1) mu <- rep(mu, nrow(x))
mu <- as.vector(mu)
return(t(x) %*% diag(mu * (1 - mu)) %*% x)
}
# Tính vector điểm số:
MakeScore <- function(x, y, beta){
mu <- MakeMu(x, beta)
return(t(x) %*% (y - mu))
}
Mô hình tuyến tính tổng quát (GLM) mở rộng mô hình hồi quy tuyến tính để xử lý:
-Phân phối không chuẩn (non-normal),
-Phương sai không hằng,
-Mối quan hệ phi tuyến giữa biến phụ thuộc và biến độc lập.
-Biến phản hồi \(y_i\) phân phối theo Exponential Dispersion Model (EDM):
\[ y_i \sim edm(\mu_i, \phi / w_i) \]
Trong đó:
-\(\mu_i = E[y_i]\): trung bình,
-\(\phi\): tham số phân tán,
-\(w_i\): trọng số (thường là 1).
-Liên hệ giữa \(\mu\) và predictor \(\eta\) thông qua link function \(g(\mu)\):
\[ g(\mu_i) = \eta_i = o_i + \beta_0 + \sum_{j=1}^{p} \beta_j x_{ji} \]
Công thức tổng quát của phân phối EDM:
\[ P(y; \theta, \phi) = a(y, \phi) \exp\left\{ \frac{y\theta - \kappa(\theta)}{\phi} \right\} \]
-\(\theta\): tham số chính tắc (canonical parameter),
-\(\kappa(\theta)\): hàm tích lũy (cumulant function),
-\(\phi\): tham số phân tán.
Trung bình và phương sai:
-Trung bình: \(\mu = \kappa'(\theta)\)
-Phương sai: \(\text{Var}(y) = \phi V(\mu)\), với \(V(\mu) = \kappa''(\theta)\)
Sử dụng unit deviance \(d(y, \mu)\) để viết lại phân phối:
\[ P(y; \mu, \phi) = b(y, \phi) \exp\left\{ -\frac{d(y, \mu)}{2\phi} \right\} \]
Phép xấp xỉ Saddlepoint:
\[ \tilde{P}(y; \mu, \phi) = \frac{1}{\sqrt{2\pi \phi V(y)}} \exp\left\{ -\frac{d(y, \mu)}{2\phi} \right\} \]
Link Function \(g(\mu)\):
-Là hàm đơn điệu, khả vi, ánh xạ từ \(\mu\) đến predictor \(\eta\):
\[ g(\mu) = \eta = \beta_0 + \sum_{j=1}^{p} \beta_j x_j \]
Offsets (hằng số dịch):
-Các giá trị biết trước \(o_i\) được đưa vào predictor như:
\[ \eta_i = o_i + \beta_0 + \sum \beta_j x_{ji} \]
Một GLM bao gồm: 1.Random component:
\[ y_i \sim edm(\mu_i, \phi / w_i) \]
2.Systematic component:
\[ g(\mu_i) = o_i + \beta_0 + \sum_{j=1}^{p} \beta_j x_{ji} \]
-Tổng deviance:
\[ D(y, \mu) = \sum_{i=1}^{n} w_i d(y_i, \mu_i) \]
-Scaled deviance:
\[ D^*(y, \mu) = \frac{D(y, \mu)}{\phi} \]
-Khi \(\phi \to 0\), \(D^*(y, \mu) \sim \chi^2_n\)
Các biến đổi phổ biến:
| Biến đổi \(h(y)\) | Phân phối tương ứng | Link function \(g(\mu)\) | \(V(\mu)\) |
|---|---|---|---|
| \(\log y\) | Gamma | \(\log \mu\) | \(\mu^2\) |
| \(\sqrt{y}\) | Poisson | \(\sqrt{\mu}\) | \(\mu\) |
| \(\sin^{-1}(\sqrt{y})\) | Binomial | \(\sin^{-1}(\sqrt{\mu})\) | \(\mu(1 - \mu)\) |
| \(1/\sqrt{y}\) | Inverse Gaussian | \(1/\sqrt{\mu}\) | \(\mu^3\) |
-GLM gồm 2 thành phần: thành phần ngẫu nhiên (EDM) và thành phần hệ thống (link function).
-Các phân phối phổ biến: Normal, Binomial, Poisson, Gamma, Inverse Gaussian.
-Đặc điểm nổi bật:
+) Tách biệt giữa phân phối (random component) và hàm liên kết (link).
+) Mô hình hóa trực tiếp biến phụ thuộc gốc (không cần biến đổi thủ công).
+) Hệ số \(\beta\) dễ diễn giải theo từng dạng link.
-Mục tiêu: Ước lượng các tham số chưa biết trong GLM (gồm hệ số hồi quy \(\beta\) và có thể cả tham số phân tán \(\phi\)).
-Phương pháp chính: Ước lượng hợp lý tối đa (Maximum Likelihood Estimation - MLE) dựa trên phân phối từ họ EDM (Exponential Dispersion Models).
-Với \(y \sim \text{EDM}(\mu, \phi/w)\), đạo hàm theo \(\mu\) là:
\[ \frac{\partial \log P(y; \mu, \phi/w)}{\partial \mu} = \frac{w(y - \mu)}{\phi V(\mu)} \]
-Với hàm liên kết \(g(\mu) = \eta = o + \sum_{j=1}^p \beta_j x_j\), đạo hàm theo \(\beta_j\) là:
\[ \frac{\partial \log P(y; \mu, \phi/w)}{\partial \beta_j} = \frac{(y - \mu) w x_j}{\phi V(\mu)} \cdot \frac{d\eta}{d\mu} \]
-Dựa vào phương trình điểm số (score equations):
\[ U_j(\boldsymbol{\beta}) = \sum_{i=1}^n \frac{(y_i - \mu_i) w_i x_{ij}}{\phi V(\mu_i)} \cdot \frac{d\eta_i}{d\mu_i} \]
-Sử dụng thuật toán Fisher scoring hoặc IRLS (Iteratively Reweighted Least Squares).
-Đo lường độ phù hợp của mô hình:
\[ D(y, \hat{\mu}) = \sum_{i=1}^n w_i \cdot d(y_i, \hat{\mu}_i) \]
-Độ lệch chuẩn hoá:
\[ D^*(y, \hat{\mu}) = \frac{D(y, \hat{\mu})}{\phi} \]
-Ma trận hiệp phương sai:
\[ \text{Var}(\hat{\boldsymbol{\beta}}) = \phi (\mathbf{X}^T \mathbf{W} \mathbf{X})^{-1} \]
-Sai số chuẩn:
\[ \text{se}(\hat{\beta}_j) = \sqrt{\phi \cdot v_j} \]
với \(v_j\) là phần tử đường chéo của \((\mathbf{X}^T \mathbf{W} \mathbf{X})^{-1}\).
-Thuật toán IRLS:
\[ \hat{\boldsymbol{\beta}}^{(r+1)} = (\mathbf{X}^T \mathbf{W} \mathbf{X})^{-1} \mathbf{X}^T \mathbf{W} \mathbf{z} \]
với:
\[ \mathbf{z} = \hat{\eta} + M(y - \hat{\mu}), \quad M = \frac{d\eta}{d\mu} \]
-GLM có thể xem là hồi quy tuyến tính với trọng số và phản hồi làm việc (\(\mathbf{z}\)).
-Từ kết quả cuối cùng của IRLS, có thể tính:
\(\hat{\mu}\), sai số chuẩn, đòn bẩy (leverage), Cook’s distance, dffits, dfbetas…
-Dù không cần \(\phi\) để ước lượng \(\beta\), nhưng \(\phi\) cần thiết cho kiểm định và khoảng tin cậy.
\[ \hat{\phi}_\text{MLE} = \frac{1}{n} \sum_{i=1}^n \frac{(y_i - \hat{\mu}_i)^2}{V(\hat{\mu}_i)} \]
\[ \hat{\phi}_0 = \text{dựa trên đạo hàm hồ sơ log-likelihood} \]
\[ \tilde{\phi} = \frac{D(y, \hat{\mu})}{n - p'} \]
\[ \bar{\phi} = \frac{1}{n - p'} \sum_{i=1}^n \frac{(y_i - \hat{\mu}_i)^2}{V(\hat{\mu}_i)} \]
# Mô hình GLM với phân phối Poisson
model <- glm(y ~ x1 + x2, family = poisson(link = "log"), data = dataset)
# Xem kết quả
summary(model)
# Hiển thị độ lệch và sai số chuẩn
deviance(model)
vcov(model)
sqrt(diag(vcov(model)))
# Cập nhật thuật toán fitting
update(model, control = glm.control(epsilon = 1e-8, maxit = 25, trace = TRUE))
GLMs được ước lượng bằng MLE, sử dụng IRLS.
Các đại lượng như độ lệch, sai số chuẩn và \(\phi\) được tính từ các vòng lặp.
GLM mở rộng hồi quy tuyến tính và cho phép nhiều loại phân phối.
-Áp dụng ba phương pháp suy luận thống kê: Wald test, Score test và Likelihood Ratio test cho GLM.
-Xét hai trường hợp:
+) Khi tham số phân tán \(\phi\) đã biết
+) Khi tham số phân tán \(\phi\) chưa biết
-Kiểm định giả thuyết \(H_0: \beta_j = \beta_j^0\) (thường là 0)
-Công thức thống kê kiểm định:
\[ Z = \frac{\hat{\beta}_j - \beta_j^0}{se(\hat{\beta}_j)} \sim N(0,1) \]
-Dựa trên phân phối chuẩn:
\[ \hat{\beta}_j \pm z_{\alpha/2} \cdot se(\hat{\beta}_j) \]
-Bước 1: Tính khoảng tin cậy cho \(\hat{\eta}\)
-Bước 2: Áp dụng hàm liên kết nghịch đảo: \(\mu = g^{-1}(\eta)\)
-So sánh hai mô hình: \(A \subset B\)
-Thống kê kiểm định:
\[ D = 2(\ell_B - \ell_A) \sim \chi^2_{p_B - p_A} \]
-Tổng hợp thông tin từ nhiều kiểm định LRT cho mô hình lồng nhau.
-Kiểm định giá trị của các biến chưa có trong mô hình.
-Thường được dùng khi không thể ước lượng mô hình lớn hơn.
-Các kiểm định (Wald, Score, LRT) đều dựa vào lý thuyết xấp xỉ với mẫu lớn.
-Áp dụng khi \(n \gg p\).
-Xem liệu mô hình có mô tả đủ xu hướng hệ thống hay chưa.
-\(D = \sum_i w_i d(y_i, \hat{\mu}_i)\)
-So sánh với phân phối \(\chi^2_{n - p'}\)
-Thống kê:
\[ X^2 = \sum_i w_i \cdot \frac{(y_i - \hat{\mu}_i)^2}{V(\hat{\mu}_i)} \]
-Áp dụng khi phân tán rất nhỏ, mẫu không đủ lớn.
-Phân phối không theo \(\chi^2\) chuẩn → cần hiệu chỉnh.
-Tương tự 7.2.1, nhưng dùng \(t\)-test:
\[ t = \frac{\hat{\beta}_j}{se(\hat{\beta}_j)} \sim t_{n - p'} \]
-Sử dụng \(t_{\alpha/2, n-p'}\) thay cho \(z\).
-Như 7.2.3, nhưng tính khoảng tin cậy cho \(\hat{\eta}\) bằng phân phối \(t\).
-Thống kê kiểm định:
\[ F = \frac{(D_A - D_B)/(p_B - p_A)}{\hat{\phi}} \sim F_{p_B - p_A, n - p_B} \]
-Sử dụng trong ANOVA dạng GLM.
-Áp dụng tương tự như 7.2.6 nhưng với phương sai ước lượng.
| Đặc điểm | Wald | LRT | Score |
|---|---|---|---|
| Dễ tính | ✔ | ✘ | ✔ |
| Ước lượng mô hình mở rộng | ✘ | ✔ | ✘ |
| Yêu cầu phân phối | Chuẩn hóa | \(\chi^2\) | \(\chi^2\) |
| Thích hợp cho mẫu nhỏ | ✘ | ✔ | ✔ |
Sử dụng tiêu chí:
-AIC = \(-2 \log(\ell) + 2p\)
-BIC = \(-2 \log(\ell) + \log(n)p\)
step(model, direction = "both")
# Kiểm định Wald và khoảng tin cậy:
summary(fit)
confint(fit)
# Kiểm định LRT:
anova(fit1, fit2, test = "Chisq")
# Kiểm định score:
library(statmod)
glm.scoretest(fit, x2)
Ba loại kiểm định quan trọng trong GLM: Wald, Score, Likelihood Ratio.
Hai cách tiếp cận: khi \(\phi\) đã biết hoặc chưa biết.
Kiểm định độ phù hợp giúp đánh giá mô hình đã mô tả đủ xu hướng chưa.
Chọn mô hình bằng AIC/BIC hoặc phương pháp tự động (stepwise).
-Chẩn đoán mô hình là bước cần thiết sau khi ước lượng GLM.
-Mục tiêu: Phát hiện và khắc phục vi phạm giả định của mô hình.
Các giả định khi xây dựng GLM bao gồm:
-Không có outlier nghiêm trọng.
-Sử dụng đúng hàm liên kết \(g()\).
-Tính tuyến tính trong predictor.
-Dùng đúng hàm phương sai \(V(\mu)\).
-Tham số phân tán \(\phi\) là hằng số.
-Các phản hồi \(y_i\) độc lập.
-Dữ liệu \(y_i\) tuân theo một exponential dispersion model (EDM).
\[ r_i = y_i - \hat{\mu}_i \]
-Không phù hợp cho GLM do phương sai không hằng.
\[ r_{P,i} = \frac{y_i - \hat{\mu}_i}{\sqrt{V(\hat{\mu}_i)}} \]
\[ r_{D,i} = \text{sign}(y_i - \hat{\mu}_i) \cdot \sqrt{2 \cdot [\ell(y_i; y_i) - \ell(\hat{\mu}_i; y_i)]} \]
-Dựa trên phân vị chuẩn hoá của phân phối lý thuyết tương ứng với \(\hat{\mu}_i\).
-Ma trận mũ (hat matrix):
\[ H = W^{1/2}X(X^T W X)^{-1}X^T W^{1/2} \]
-Diagonal của \(H\) là leverage \(h_i\).
-Standardized residuals: \(\frac{r_i}{\sqrt{1 - h_i}}\)
-Studentized residuals: hiệu quả hơn trong việc phát hiện outlier.
| Loại phần dư | Khi sử dụng |
|---|---|
| Pearson | Tổng quát, kiểm định phân tán |
| Deviance | Đánh giá mô hình phù hợp |
| Quantile | Đặc biệt tốt với dữ liệu rời rạc |
-Dùng biểu đồ phần dư theo thứ tự thời gian hoặc độ trễ.
-Vẽ \(r_i\) vs \(\hat{\mu}_i\)
-Vẽ \(z\) vs \(\hat{\eta}_i\)
-Component-plus-residual plot (partial residuals plot)
-Dùng biểu đồ Q-Q với phần dư chuẩn hóa.
-Dùng phần dư Studentized.
Các chỉ số:
-Cook’s Distance \(D_i\)
-DFBETAS: ảnh hưởng lên từng hệ số
-DFFITS: ảnh hưởng lên giá trị dự đoán
-Covariance Ratio
-Thay đổi hàm liên kết
-Biến đổi biến giải thích
-Thêm biến giải thích
-Dùng phương pháp quasi-likelihood
-Khi không biết rõ phân phối dữ liệu nhưng biết trung bình và phương sai.
Ví dụ trong R:
glm(y ~ x, family = quasi(link = "log", variance = "mu^2"))
Khi các biến giải thích có tương quan cao.
Hệ số hồi quy không ổn định.
Giải pháp:
-Loại bớt biến
-Kết hợp biến
-Thu thập thêm dữ liệu
-Sử dụng ridge regression (ngoài phạm vi chương này)
library(GLMsData)
data(nminer)
nm.m1 <- glm(Minerab ~ Eucs, data=nminer, family=poisson)
summary(nm.m1)
library(statmod)
qr <- qresid(nm.m1)
qqnorm(qr); qqline(qr)
plot(qr ~ sqrt(fitted(nm.m1)))
plot(cooks.distance(nm.m1), type="h")
plot(hatvalues(nm.m1), type="h")
| Công cụ trong R | Mục đích |
|---|---|
residuals() |
Phần dư |
hatvalues() |
Đòn bẩy |
cooks.distance() |
Quan sát ảnh hưởng |
plot() |
Vẽ phần dư |
qresid() (statmod) |
Phần dư phân vị |
Kiểm định chẩn đoán là bắt buộc trong phân tích GLM.
Phần dư chuẩn hoá và các biểu đồ trực quan rất hữu ích.
Sửa mô hình dựa vào kết quả chẩn đoán: chọn lại liên kết, thêm biến, hoặc dùng quasi-likelihood.
-Chương này tập trung vào một loại GLM phổ biến: Binomial GLM – dùng để mô hình hóa tỷ lệ thành công trong số lần thử.
-Áp dụng trong các nghiên cứu có kết quả là tỷ lệ (số thành công / tổng số thử), ví dụ: tỷ lệ mắc bệnh, tỷ lệ chết khi dùng thuốc, v.v.
-Dữ liệu dạng: \(y = \frac{z}{m}\), với:
+) \(z\): số thành công
+) \(m\): số lần thử
-Giả sử \(z \sim Binomial(m, \mu)\), trong đó \(\mu\) là tỷ lệ kỳ vọng.
-Hàm xác suất:
\[ P(y; \mu, m) = \binom{m}{my} \mu^{my} (1 - \mu)^{m(1 - y)} \]
-Độ lệch đơn vị (unit deviance):
\[ d(y, \mu) = 2 \left[ y \log\left(\frac{y}{\mu}\right) + (1 - y) \log\left(\frac{1 - y}{1 - \mu}\right) \right] \]
-Độ lệch dư:
\[ D(y, \hat{\mu}) = \sum_{i=1}^n m_i d(y_i, \hat{\mu}_i) \]
Các hàm phổ biến trong binomial GLM:
-Logit: \(g(\mu) = \log\left(\frac{\mu}{1 - \mu}\right)\)
-Probit: \(g(\mu) = \Phi^{-1}(\mu)\)
-Complementary log-log: \(g(\mu) = \log(-\log(1 - \mu))\)
-Chọn hàm liên kết phù hợp với bản chất dữ liệu.
-Hàm probit thường dùng khi giả định có ngưỡng quyết định xảy ra sự kiện.
-Dựa vào phân phối chuẩn tích lũy.
-Odds: \(\text{odds} = \frac{\mu}{1 - \mu}\)
-Tỷ số odds (odds ratio) giữa hai nhóm:
\[ \text{OR} = \exp(\beta) \]
-Hàm logit giúp diễn giải hiệu ứng tuyến tính trên log odds.
-Là giá trị biến giải thích khi \(\mu = 0.5\)
-Trong mô hình logit đơn:
\[ \mu = \frac{1}{1 + \exp(-(\beta_0 + \beta_1 x))} \]
Giải \(\mu = 0.5 \Rightarrow x = -\frac{\beta_0}{\beta_1} = \text{ED50}\)
-Dùng khi xác suất thành công tăng dần chậm, thích hợp trong độc chất học (assay analysis).
-Khi phương sai dữ liệu lớn hơn phương sai kỳ vọng từ mô hình nhị phân.
-Có thể dùng quasi-binomial model với:
\[ \text{Var}(y) = \phi \mu(1 - \mu) \]
-Overdispersion làm sai lệch sai số chuẩn và khoảng tin cậy.
-Wald test không ổn định khi tham số ước lượng tiến đến ±∞.
-Nên dùng Likelihood Ratio Test hoặc Score Test thay thế.
-Vì không có đủ thông tin dư để kiểm định mô hình nhị phân (0/1).
-Đề xuất dùng chẩn đoán khác như kiểm tra deviance, đồ thị residuals.
-Mô hình hóa xác suất xuất hiện loài chim noisy miner bằng binomial GLM:
m1 <- glm(Miners ~ Eucs15, data = nminer, family = binomial)
summary(m1)
# Cách 1: Sử dụng tỷ lệ + trọng số m
glm(y ~ x, weights = m, family = binomial)
# Cách 2: Sử dụng success/failure
glm(cbind(success, fail) ~ x, family = binomial)
# Cách 3: Sử dụng biến nhị phân dạng TRUE/FALSE hoặc factor
glm(fac ~ x, family = binomial)
Binomial GLM phù hợp cho dữ liệu dạng tỷ lệ, mô hình hóa số lần thành công trong m thử.
Hàm liên kết phổ biến là logit, probit và cloglog.
Có thể tính ED50, odds ratio, và xử lý overdispersion bằng mô hình quasi-binomial.
R hỗ trợ mạnh mẽ qua hàm glm(family = binomial).
-Dữ liệu đếm xuất hiện thường xuyên: số bệnh nhân, số lỗi, số tai nạn,… -Thường dùng phân phối Poisson để mô hình hóa số đếm khi các sự kiện độc lập.
-Chương này tập trung vào:
+) Mô hình đếm theo biến giải thích.
+) Mô hình theo tỷ lệ (rates).
+) Mô hình bảng tần suất (log-linear models).
+) Hiện tượng phân tán lớn (overdispersion) và mô hình thay thế: Negative Binomial, Quasi-Poisson.
-Phân phối Poisson:
\[ P(y; \mu) = \frac{e^{-\mu} \mu^y}{y!}, \quad y = 0,1,2,... \]
-Kỳ vọng:
\[ E[Y] = \mu, \quad Var[Y] = \mu \]
-Liên kết log thường dùng:
\[ \log(\mu_i) = \eta_i = \beta_0 + \beta_1 x_{1i} + \dots + \beta_p x_{pi} \]
-Độ lệch đơn vị (unit deviance):
\[ d(y, \mu) = 2 \left[ y \log\left(\frac{y}{\mu}\right) - (y - \mu) \right] \]
-Tổng độ lệch:
\[ D(y, \hat{\mu}) = \sum_{i=1}^n w_i d(y_i, \hat{\mu}_i) \]
-Đếm trên một đơn vị thời gian/dân số.
-Dùng offset để chuẩn hóa:
glm(y ~ x1 + x2 + offset(log(exposure)), family = poisson)
Dữ liệu bảng với 2 yếu tố phân loại: A và B.
Số đếm tại ô \((i, j)\): \(y_{ij}\).
Mô hình:
\[ \log(\mu_{ij}) = \lambda + \lambda_i^A + \lambda_j^B + \lambda_{ij}^{AB} \]
Phụ thuộc vào cách lấy mẫu: không ràng buộc tổng hàng/cột hoặc có ràng buộc.
Khi không cố định tổng: dùng mô hình Poisson.
Các dạng phụ thuộc:
Độc lập hoàn toàn: \(A \perp B \perp C\)
Độc lập từng phần
Độc lập có điều kiện
Mô hình bão hòa (saturated model)
Tổng hợp dữ liệu sai có thể đảo ngược quan hệ.
Với số liệu bảng, mô hình Poisson và nhị thức (Binomial) có thể tương đương.
Khi \(Var(Y) > E(Y)\).
Có thể do: mô hình sai, biến thiếu, không độc lập.
Thay thế cho Poisson khi có phân tán lớn.
Phương sai:
\[ \mathrm{Var}(Y) = \mu + \frac{\mu^2}{k} \]
Dùng hàm glm.nb() trong R (gói MASS):
library(MASS)
fit_nb <- glm.nb(y ~ x1 + x2, data = your_data)
Giả định:
\[ \mathrm{Var}(Y) = \phi \mu \]
Ước lượng hệ số không thay đổi, nhưng sai số chuẩn lớn hơn.
Áp dụng cả 3 mô hình: Poisson, Quasi-Poisson và Negative Binomial.
So sánh bằng AIC, độ lệch (deviance), kiểm tra dư (residuals).
# Poisson GLM
glm(y ~ x1 + x2, family = poisson, data = your_data)
# Quasi-Poisson
glm(y ~ x1 + x2, family = quasipoisson, data = your_data)
# Negative Binomial
library(MASS)
glm.nb(y ~ x1 + x2, data = your_data)
Mô hình Poisson phù hợp khi \(Var(Y) = E(Y)\).
Nếu phân tán lớn: dùng Negative Binomial hoặc Quasi-Poisson.
Dữ liệu bảng đếm có thể phân tích bằng mô hình log-linear.
Link function thường dùng: log.
R hỗ trợ tốt các mô hình này với glm(), glm.nb() và quasipoisson.
-Chương này xem xét các mô hình GLM cho dữ liệu liên tục dương, thường có phân phối lệch phải.
-Hai mô hình phân phối phổ biến:
+) Phân phối Gamma: với phương sai \(V(\mu) = \mu^2\)
+) Phân phối Inverse Gaussian: \(V(\mu) = \mu^3\)
-Dữ liệu có giá trị dương và phân bố lệch phải do giới hạn dưới là 0.
-Khi kỳ vọng gần 0 thì phương sai cũng nhỏ.
-Thường có quan hệ đồng biến giữa kỳ vọng và phương sai.
Hàm mật độ:
\[ f(y;\mu,\phi) = \frac{y^{\frac{1}{\phi}-1} e^{-\frac{y}{\mu\phi}}}{(\mu\phi)^{\frac{1}{\phi}} \Gamma(1/\phi)}, \quad y > 0 \]
-\(\mu\): kỳ vọng
-\(\phi\): tham số phân tán
-\(V(\mu) = \mu^2\)
Mối quan hệ thực tế:
-Mô hình thời gian giữa các sự kiện xảy ra ngẫu nhiên (Poisson process).
Hàm mật độ:
\[ f(y; \mu, \phi) = \left(2\pi y^3 \phi\right)^{-1/2} \exp\left\{ -\frac{(y - \mu)^2}{2\phi y \mu^2} \right\}, \quad y > 0 \]
-\(V(\mu) = \mu^3\)
-Mô hình thời gian vượt ngưỡng trong chuyển động Brown.
-Dùng để đảm bảo \(\mu > 0\).
-Các hàm liên kết thường dùng:
+) log: \(g(\mu) =
\log(\mu)\)
+) inverse: \(g(\mu) =
1/\mu\)
+) identity: \(g(\mu) =
\mu\)
+) 1/\mu^2: chỉ áp dụng cho inverse Gaussian (canonical
link)
-Ước lượng Pearson:
\[ \hat{\phi}_P = \frac{1}{n - p'} \sum_{i=1}^n w_i \left( \frac{y_i - \hat{\mu}_i}{\hat{\mu}_i} \right)^2 \]
-Ước lượng ML chính xác:
\[ \hat{\phi} = \frac{1}{n} \sum_{i=1}^n w_i \cdot \frac{(y_i - \hat{\mu}_i)^2}{y_i \hat{\mu}_i^2} \]
data(perm)
perm$Day <- factor(perm$Day)
perm.log <- glm(Perm ~ Mach * Day, data = perm,
family = inverse.gaussian(link = "log"))
anova(perm.log, test = "F")
data(yieldden)
yd.glm <- glm(Yield ~ Variety + Density, family = Gamma(link = "log"),
data = yieldden)
summary(yd.glm)
# Gamma GLM
glm(y ~ x1 + x2, family = Gamma(link = "log"), data = mydata)
# Inverse Gaussian GLM
glm(y ~ x1 + x2, family = inverse.gaussian(link = "log"), data = mydata)
-Dữ liệu liên tục dương thường có phương sai tăng theo trung bình.
-Mô hình Gamma phù hợp khi \(V(\mu) = \mu^2\).
-Mô hình Inverse Gaussian khi dữ liệu lệch mạnh hơn: \(V(\mu) = \mu^3\).
-Chọn đúng hàm liên kết giúp mô hình ổn định và dễ diễn giải.
-Ước lượng \(\phi\) là cần thiết cho kiểm định và khoảng tin cậy.
-Tweedie GLMs mở rộng nhiều mô hình GLM đã học như Normal, Poisson, Gamma và Inverse Gaussian.
-Đặc điểm chính: hàm phương sai có dạng \(V(\mu) = \mu^\xi\), trong đó \(\xi\) là tham số chỉ số (index parameter).
-Một số ví dụ đặc biệt:
+) Normal: \(\xi = 0\)
+) Poisson: \(\xi = 1\)
+) Gamma: \(\xi = 2\)
+) Inverse Gaussian: \(\xi = 3\)
-Mô hình Tweedie tổng quát: \(V(\mu) = \mu^\xi\) với \(\xi \notin (0,1)\).
-Công thức liên quan đến \(\theta\) và \(\kappa(\theta)\):
\[ \theta = \begin{cases} \frac{\mu^{1 - \xi}}{1 - \xi}, & \text{nếu } \xi \ne 1 \\ \log \mu, & \text{nếu } \xi = 1 \end{cases} \]
\[ \kappa(\theta) = \begin{cases} \frac{\mu^{2 - \xi}}{2 - \xi}, & \text{nếu } \xi \ne 2 \\ \log \mu, & \text{nếu } \xi = 2 \end{cases} \]
-Với \(\xi \ge 2\): dùng cho dữ liệu dương liên tục (giống Gamma, Inverse Gaussian).
-Thích hợp để mô hình hóa các biến như lượng mưa, chi phí bảo hiểm…
-Với \(1 < \xi < 2\): phù hợp với dữ liệu có giá trị 0 chính xác.
-Phân phối có phần liên tục (dữ liệu dương) và khối lượng xác suất tại \(y = 0\):
\[ \pi_0 = \Pr(y = 0) = \exp \left( - \frac{\mu^{2 - \xi}}{\phi(2 - \xi)} \right) \]
-Mô hình dạng:
\[ \text{E}(y) = \mu, \quad \text{Var}(y) = \phi \mu^\xi \]
-Link thường dùng: log-link \(\Rightarrow \log \mu = \eta\)
-Cần chỉ định \(\xi\) (thường phải ước lượng).
-Dựa trên log-linear hóa:
\[ \log(\text{Var}(y)) = \log \phi + \xi \log \mu \]
-Dùng phương pháp hồi quy giữa \(\log(\text{variance})\) và \(\log(\text{mean})\) của từng nhóm dữ liệu.
-Trong R: tweedie.profile() từ package
tweedie.
library(statmod)
library(tweedie)
fit <- glm(y ~ x1 + x2, family = tweedie(var.power = xi_hat, link.power = 0), data = mydata)
summary(fit)
Áp dụng vào dữ liệu lượng mưa (rainfall) hoặc chi phí bảo hiểm (insurance claims).
Ví dụ: xác suất không mưa, lượng mưa trung bình theo từng tháng…
Cài đặt gói cần thiết:
install.packages("statmod")
install.packages("tweedie")
Ước lượng \(\xi\):
library(tweedie)
result <- tweedie.profile(y ~ x1 + x2, data = mydata, do.plot = TRUE)
result$p.max # giá trị ước lượng của ξ
result$ci # khoảng tin cậy
Fit mô hình:
library(statmod)
glm(y ~ x1 + x2, family = tweedie(var.power = result$p.max, link.power = 0), data = mydata)
-Tweedie GLMs cho phép mô hình hóa:
+) Dữ liệu dương liên tục (ξ ≥ 2).
+) Dữ liệu dương với giá trị bằng 0 chính xác (1 < ξ < 2).
-Là sự tổng quát của các mô hình Gamma, Poisson, Inverse Gaussian.
-Ứng dụng nhiều trong bảo hiểm, khí tượng, sinh học….
Dữ liệu Supermarket Transactions ghi nhận các giao dịch tại một hệ thống siêu thị với nhiều biến phản ánh thông tin về khách hàng, loại sản phẩm, phương thức thanh toán, tổng tiền, chi nhánh, ngày giao dịch, v.v. Mục tiêu của báo cáo là thống kê mô tả các biến trong bộ dữ liệu để hiểu rõ hơn về đặc điểm và cấu trúc của dữ liệu.
# Đọc dữ liệu
data <- read.csv("D:/PTDLĐT CT2/Supermarket Transactions.csv", stringsAsFactors = TRUE)
# Kiểm tra kích thước của dữ liệu (số dòng và số cột)
dim(data)
## [1] 14059 16
# Xem cấu trúc của dữ liệu (kiểu biến, vài giá trị đầu của mỗi cột)
str(data)
## 'data.frame': 14059 obs. of 16 variables:
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ PurchaseDate : Factor w/ 742 levels "2007-12-18","2007-12-20",..: 1 2 3 3 4 4 5 6 6 6 ...
## $ CustomerID : int 7223 7841 8374 9619 1900 6696 9673 354 1293 7938 ...
## $ Gender : Factor w/ 2 levels "F","M": 1 2 1 2 1 1 2 1 2 2 ...
## $ MaritalStatus : Factor w/ 2 levels "M","S": 2 1 1 1 2 1 2 1 1 2 ...
## $ Homeowner : Factor w/ 2 levels "N","Y": 2 2 1 2 2 2 2 2 2 1 ...
## $ Children : int 2 5 2 3 3 3 2 2 3 1 ...
## $ AnnualIncome : Factor w/ 8 levels "$10K - $30K",..: 5 7 6 5 3 1 5 4 1 6 ...
## $ City : Factor w/ 23 levels "Acapulco","Bellingham",..: 8 8 4 12 3 3 13 23 2 15 ...
## $ StateorProvince : Factor w/ 10 levels "BC","CA","DF",..: 2 2 8 6 2 2 6 8 8 2 ...
## $ Country : Factor w/ 3 levels "Canada","Mexico",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ ProductFamily : Factor w/ 3 levels "Drink","Food",..: 2 2 2 2 1 2 2 2 3 3 ...
## $ ProductDepartment: Factor w/ 22 levels "Alcoholic Beverages",..: 20 18 20 21 4 11 13 6 15 14 ...
## $ ProductCategory : Factor w/ 45 levels "Baking Goods",..: 42 45 42 7 15 41 5 13 16 35 ...
## $ UnitsSold : int 5 5 3 4 4 3 4 6 1 2 ...
## $ Revenue : num 27.38 14.9 5.52 4.44 14 ...
# Tóm tắt thống kê mô tả cho từng biến
summary(data)
## X PurchaseDate CustomerID Gender MaritalStatus
## Min. : 1 2009-02-23: 43 Min. : 3 F:7170 M:6866
## 1st Qu.: 3516 2009-11-01: 43 1st Qu.: 2549 M:6889 S:7193
## Median : 7030 2009-04-29: 41 Median : 5060
## Mean : 7030 2009-02-01: 40 Mean : 5117
## 3rd Qu.:10544 2009-05-07: 38 3rd Qu.: 7633
## Max. :14059 2009-05-20: 37 Max. :10280
## (Other) :13817
## Homeowner Children AnnualIncome City
## N:5615 Min. :0.00 $30K - $50K :4601 Salem :1386
## Y:8444 1st Qu.:1.00 $10K - $30K :3090 Tacoma :1257
## Median :3.00 $50K - $70K :2370 Los Angeles: 926
## Mean :2.53 $70K - $90K :1709 Seattle : 922
## 3rd Qu.:4.00 $130K - $150K: 760 Portland : 876
## Max. :5.00 $110K - $130K: 643 Spokane : 875
## (Other) : 886 (Other) :7817
## StateorProvince Country ProductFamily ProductDepartment
## WA :4567 Canada: 809 Drink : 1250 Produce :1994
## CA :2733 Mexico:3688 Food :10153 Snack Foods :1600
## OR :2262 USA :9562 Non-Consumable: 2656 Household :1420
## Zacatecas:1297 Frozen Foods:1382
## DF : 815 Baking Goods:1072
## BC : 809 Canned Foods: 977
## (Other) :1576 (Other) :5614
## ProductCategory UnitsSold Revenue
## Vegetables :1728 Min. :1.000 Min. : 0.53
## Snack Foods :1600 1st Qu.:3.000 1st Qu.: 6.84
## Dairy : 903 Median :4.000 Median :11.25
## Fruit : 765 Mean :4.081 Mean :13.00
## Meat : 761 3rd Qu.:5.000 3rd Qu.:17.37
## Jams and Jellies: 588 Max. :8.000 Max. :56.70
## (Other) :7714
Nhận xét:
-Bộ dữ liệu sử dụng trong nghiên cứu gồm 14.059 quan sát với 16 biến, phản ánh thông tin về giao dịch mua hàng và đặc điểm nhân khẩu học của khách hàng. Quy mô dữ liệu lớn, đảm bảo độ tin cậy cho các phân tích định lượng. Các biến bao gồm ngày mua hàng, mã khách hàng, giới tính, tình trạng hôn nhân, tình trạng sở hữu nhà, số con, thu nhập, vị trí địa lý (thành phố, tỉnh bang, quốc gia), và thông tin sản phẩm (nhóm, bộ phận, danh mục), cùng với số lượng sản phẩm bán ra và doanh thu.
-Dữ liệu có nhiều biến định tính (factor) như giới tính, tình trạng hôn nhân, nhóm sản phẩm, phù hợp cho các phân tích phân khúc khách hàng hoặc mô hình dự báo doanh thu. Giới tính phân bố đều (nam: 6.889; nữ: 7.170), phần lớn khách hàng đã kết hôn (6.866) và sở hữu nhà (8.444). Số con trung bình là 2,53; thu nhập chủ yếu ở nhóm $10K–$50K. Phân bố khách hàng tập trung tại Hoa Kỳ (9.562), Mexico (3.688) và Canada (809). Sản phẩm tiêu thụ chủ yếu thuộc nhóm “Food” và “Drink” với số lượng trung bình 4,08 sản phẩm/giao dịch và doanh thu trung bình 13,00. Điều này cho thấy khách hàng có xu hướng mua thực phẩm với số lượng nhỏ và thu nhập ở mức trung bình.
Bộ dữ liệu gồm 14.059 quan sát với 16 biến, cụ thể như sau:
| Tên biến | Kiểu dữ liệu | Mô tả ý nghĩa |
|---|---|---|
| X | Integer | Chỉ số quan sát (STT) |
| PurchaseDate | Factor | Ngày mua hàng (có 742 mức giá trị khác nhau) |
| CustomerID | Integer | Mã khách hàng |
| Gender | Factor | Giới tính khách hàng (F: nữ, M: nam) |
| MaritalStatus | Factor | Tình trạng hôn nhân (M: đã kết hôn, S: độc thân) |
| Homeowner | Factor | Tình trạng sở hữu nhà (Y: có, N: không) |
| Children | Integer | Số con của khách hàng |
| AnnualIncome | Factor | Thu nhập hàng năm (8 nhóm thu nhập phân loại) |
| City | Factor | Thành phố nơi giao dịch (23 thành phố) |
| StateorProvince | Factor | Tỉnh bang nơi giao dịch (10 tỉnh bang) |
| Country | Factor | Quốc gia (Canada, Mexico, USA) |
| ProductFamily | Factor | Nhóm sản phẩm (Drink, Food, Non-Consumable) |
| ProductDepartment | Factor | Bộ phận sản phẩm (22 loại) |
| ProductCategory | Factor | Danh mục sản phẩm (45 loại) |
| UnitsSold | Integer | Số lượng sản phẩm đã bán |
| Revenue | Numeric | Doanh thu từ giao dịch |
Phần lớn các biến thuộc kiểu dữ liệu phân loại (Factor), thể hiện các đặc điểm định tính của khách hàng và sản phẩm, phù hợp cho phân tích phân nhóm và mô hình hóa dữ liệu. Các biến số lượng, doanh thu được lưu dưới dạng số nguyên và số thực, phục vụ cho phân tích định lượng. Ngày mua hàng được lưu dưới dạng Factor, có thể chuyển đổi sang kiểu ngày (Date) để phân tích theo thời gian.
Dưới đây là thống kê mô tả cơ bản cho các biến định lượng trong bộ dữ liệu, bao gồm các chỉ số như trung bình (mean), độ lệch chuẩn (sd), giá trị nhỏ nhất (min), và giá trị lớn nhất (max).
# Lấy các biến định lượng
numeric_vars <- sapply(data, is.numeric)
# Thống kê mô tả cơ bản cho các biến định lượng
summary(data[, numeric_vars])
## X CustomerID Children UnitsSold Revenue
## Min. : 1 Min. : 3 Min. :0.00 Min. :1.000 Min. : 0.53
## 1st Qu.: 3516 1st Qu.: 2549 1st Qu.:1.00 1st Qu.:3.000 1st Qu.: 6.84
## Median : 7030 Median : 5060 Median :3.00 Median :4.000 Median :11.25
## Mean : 7030 Mean : 5117 Mean :2.53 Mean :4.081 Mean :13.00
## 3rd Qu.:10544 3rd Qu.: 7633 3rd Qu.:4.00 3rd Qu.:5.000 3rd Qu.:17.37
## Max. :14059 Max. :10280 Max. :5.00 Max. :8.000 Max. :56.70
Nhận xét: Bảng thống kê mô tả các biến định lượng trong bộ dữ liệu cho thấy các biến đều có phân bố khá rộng và đa dạng.
-Biến X (có thể là chỉ số thứ tự bản ghi) dao động từ 1 đến 14.059, tương ứng đúng với tổng số quan sát trong dữ liệu.
-CustomerID trải dài từ 3 đến 10.280, cho thấy số lượng khách hàng khá lớn và đa dạng.
-Số lượng Children của khách hàng trung bình là khoảng 2.53, với giá trị tối đa là 5, thể hiện độ biến thiên vừa phải về số con trong gia đình khách hàng.
-Biến UnitsSold (số lượng sản phẩm bán ra) trung bình mỗi giao dịch là 4.08 đơn vị, với mức tối đa lên đến 8 đơn vị, cho thấy khách hàng thường mua với số lượng nhỏ đến vừa phải.
-Revenue (doanh thu) trung bình mỗi giao dịch khoảng 13 đơn vị tiền tệ, nhưng có biến thiên lớn với giá trị tối đa lên tới 56.7, thể hiện sự khác biệt đáng kể trong quy mô giao dịch giữa các khách hàng.
-> Nhìn chung, dữ liệu định lượng phản ánh tốt sự đa dạng về khách hàng và giao dịch, phù hợp cho các phân tích sâu hơn về hành vi tiêu dùng và doanh thu.
categorical_vars <- sapply(data, is.factor)
cat_data <- data[, categorical_vars]
# Bảng tần suất
lapply(cat_data, table)
## $PurchaseDate
##
## 2007-12-18 2007-12-20 2007-12-21 2007-12-22 2007-12-23 2007-12-25 2007-12-26
## 1 1 2 2 1 3 4
## 2007-12-27 2007-12-28 2007-12-29 2007-12-30 2007-12-31 2008-01-01 2008-01-02
## 3 3 5 4 6 6 5
## 2008-01-03 2008-01-04 2008-01-05 2008-01-06 2008-01-07 2008-01-08 2008-01-09
## 2 6 7 1 5 7 6
## 2008-01-10 2008-01-11 2008-01-12 2008-01-13 2008-01-14 2008-01-15 2008-01-16
## 6 3 8 8 9 10 8
## 2008-01-17 2008-01-18 2008-01-19 2008-01-20 2008-01-21 2008-01-22 2008-01-23
## 10 13 14 10 3 9 16
## 2008-01-24 2008-01-25 2008-01-26 2008-01-27 2008-01-28 2008-01-29 2008-01-30
## 8 5 10 18 10 9 15
## 2008-01-31 2008-02-01 2008-02-02 2008-02-03 2008-02-04 2008-02-05 2008-02-06
## 11 12 23 14 11 13 11
## 2008-02-07 2008-02-08 2008-02-09 2008-02-10 2008-02-11 2008-02-12 2008-02-13
## 13 12 9 8 13 11 11
## 2008-02-14 2008-02-15 2008-02-16 2008-02-17 2008-02-18 2008-02-19 2008-02-20
## 10 15 14 11 12 15 8
## 2008-02-21 2008-02-22 2008-02-23 2008-02-24 2008-02-25 2008-02-26 2008-02-27
## 9 12 10 16 11 7 10
## 2008-02-28 2008-02-29 2008-03-01 2008-03-02 2008-03-03 2008-03-04 2008-03-05
## 17 12 13 16 17 11 15
## 2008-03-06 2008-03-07 2008-03-08 2008-03-09 2008-03-10 2008-03-11 2008-03-12
## 14 11 17 16 13 13 17
## 2008-03-13 2008-03-14 2008-03-15 2008-03-16 2008-03-17 2008-03-18 2008-03-19
## 20 13 11 11 13 22 20
## 2008-03-20 2008-03-21 2008-03-22 2008-03-23 2008-03-24 2008-03-25 2008-03-26
## 15 11 11 12 16 15 14
## 2008-03-27 2008-03-28 2008-03-29 2008-03-30 2008-03-31 2008-04-01 2008-04-02
## 21 17 17 19 11 10 14
## 2008-04-03 2008-04-04 2008-04-05 2008-04-06 2008-04-07 2008-04-08 2008-04-09
## 22 11 16 12 14 10 15
## 2008-04-10 2008-04-11 2008-04-12 2008-04-13 2008-04-14 2008-04-15 2008-04-16
## 14 14 16 13 21 16 14
## 2008-04-17 2008-04-18 2008-04-19 2008-04-20 2008-04-21 2008-04-22 2008-04-23
## 12 17 18 14 15 14 13
## 2008-04-24 2008-04-25 2008-04-26 2008-04-27 2008-04-28 2008-04-29 2008-04-30
## 11 19 9 17 12 9 11
## 2008-05-01 2008-05-02 2008-05-03 2008-05-04 2008-05-05 2008-05-06 2008-05-07
## 11 16 13 22 21 14 15
## 2008-05-08 2008-05-09 2008-05-10 2008-05-11 2008-05-12 2008-05-13 2008-05-14
## 8 14 11 9 16 16 5
## 2008-05-15 2008-05-16 2008-05-17 2008-05-18 2008-05-19 2008-05-20 2008-05-21
## 13 11 14 7 19 14 15
## 2008-05-22 2008-05-23 2008-05-24 2008-05-25 2008-05-26 2008-05-27 2008-05-28
## 13 10 10 9 19 11 10
## 2008-05-29 2008-05-30 2008-05-31 2008-06-01 2008-06-02 2008-06-03 2008-06-04
## 13 17 11 13 14 11 17
## 2008-06-05 2008-06-06 2008-06-07 2008-06-08 2008-06-09 2008-06-10 2008-06-11
## 10 14 8 11 10 2 15
## 2008-06-12 2008-06-13 2008-06-14 2008-06-15 2008-06-16 2008-06-17 2008-06-18
## 10 7 9 11 19 4 14
## 2008-06-19 2008-06-20 2008-06-21 2008-06-22 2008-06-23 2008-06-24 2008-06-25
## 9 17 18 17 4 21 13
## 2008-06-26 2008-06-27 2008-06-28 2008-06-29 2008-06-30 2008-07-01 2008-07-02
## 7 9 16 18 8 8 14
## 2008-07-03 2008-07-04 2008-07-05 2008-07-06 2008-07-07 2008-07-08 2008-07-09
## 10 12 8 10 8 13 8
## 2008-07-10 2008-07-11 2008-07-12 2008-07-13 2008-07-14 2008-07-15 2008-07-16
## 9 21 15 10 13 13 12
## 2008-07-17 2008-07-18 2008-07-19 2008-07-20 2008-07-21 2008-07-22 2008-07-23
## 26 11 11 7 11 17 8
## 2008-07-24 2008-07-25 2008-07-26 2008-07-27 2008-07-28 2008-07-29 2008-07-30
## 9 13 16 10 11 11 13
## 2008-07-31 2008-08-01 2008-08-02 2008-08-03 2008-08-04 2008-08-05 2008-08-06
## 12 12 15 11 13 11 14
## 2008-08-07 2008-08-08 2008-08-09 2008-08-10 2008-08-11 2008-08-12 2008-08-13
## 11 16 15 12 9 19 8
## 2008-08-14 2008-08-15 2008-08-16 2008-08-17 2008-08-18 2008-08-19 2008-08-20
## 7 11 16 12 7 12 18
## 2008-08-21 2008-08-22 2008-08-23 2008-08-24 2008-08-25 2008-08-26 2008-08-27
## 13 15 11 13 14 11 10
## 2008-08-28 2008-08-29 2008-08-30 2008-08-31 2008-09-01 2008-09-02 2008-09-03
## 9 14 8 12 10 9 12
## 2008-09-04 2008-09-05 2008-09-06 2008-09-07 2008-09-08 2008-09-09 2008-09-10
## 17 12 13 12 7 13 10
## 2008-09-11 2008-09-12 2008-09-13 2008-09-14 2008-09-15 2008-09-16 2008-09-17
## 21 8 15 8 13 14 10
## 2008-09-18 2008-09-19 2008-09-20 2008-09-21 2008-09-22 2008-09-23 2008-09-24
## 15 17 13 5 10 6 6
## 2008-09-25 2008-09-26 2008-09-27 2008-09-28 2008-09-29 2008-09-30 2008-10-01
## 13 10 11 14 9 12 12
## 2008-10-02 2008-10-03 2008-10-04 2008-10-05 2008-10-06 2008-10-07 2008-10-08
## 18 21 16 18 17 10 17
## 2008-10-09 2008-10-10 2008-10-11 2008-10-12 2008-10-13 2008-10-14 2008-10-15
## 10 11 14 8 13 9 17
## 2008-10-16 2008-10-17 2008-10-18 2008-10-19 2008-10-20 2008-10-21 2008-10-22
## 11 8 7 11 12 5 13
## 2008-10-23 2008-10-24 2008-10-25 2008-10-26 2008-10-27 2008-10-28 2008-10-29
## 12 15 13 7 13 13 20
## 2008-10-30 2008-10-31 2008-11-01 2008-11-02 2008-11-03 2008-11-04 2008-11-05
## 12 13 8 14 16 20 9
## 2008-11-06 2008-11-07 2008-11-08 2008-11-09 2008-11-10 2008-11-11 2008-11-12
## 20 7 15 7 7 13 10
## 2008-11-13 2008-11-14 2008-11-15 2008-11-16 2008-11-17 2008-11-18 2008-11-19
## 12 19 15 13 18 18 11
## 2008-11-20 2008-11-21 2008-11-22 2008-11-23 2008-11-24 2008-11-25 2008-11-26
## 14 15 13 19 12 14 13
## 2008-11-27 2008-11-28 2008-11-29 2008-11-30 2008-12-01 2008-12-02 2008-12-03
## 16 10 15 11 15 18 21
## 2008-12-04 2008-12-05 2008-12-06 2008-12-07 2008-12-08 2008-12-09 2008-12-10
## 18 14 13 16 16 8 23
## 2008-12-11 2008-12-12 2008-12-13 2008-12-14 2008-12-15 2008-12-16 2008-12-17
## 19 18 9 13 22 17 18
## 2008-12-18 2008-12-19 2008-12-20 2008-12-21 2008-12-22 2008-12-23 2008-12-24
## 13 17 15 21 21 15 16
## 2008-12-25 2008-12-26 2008-12-27 2008-12-28 2008-12-29 2008-12-30 2008-12-31
## 18 22 20 19 13 32 22
## 2009-01-01 2009-01-02 2009-01-03 2009-01-04 2009-01-05 2009-01-06 2009-01-07
## 22 26 23 19 25 32 20
## 2009-01-08 2009-01-09 2009-01-10 2009-01-11 2009-01-12 2009-01-13 2009-01-14
## 27 20 20 32 20 19 27
## 2009-01-15 2009-01-16 2009-01-17 2009-01-18 2009-01-19 2009-01-20 2009-01-21
## 32 20 22 23 25 36 28
## 2009-01-22 2009-01-23 2009-01-24 2009-01-25 2009-01-26 2009-01-27 2009-01-28
## 16 24 26 28 25 25 19
## 2009-01-29 2009-01-30 2009-01-31 2009-02-01 2009-02-02 2009-02-03 2009-02-04
## 29 26 28 40 32 27 31
## 2009-02-05 2009-02-06 2009-02-07 2009-02-08 2009-02-09 2009-02-10 2009-02-11
## 32 22 26 30 26 26 27
## 2009-02-12 2009-02-13 2009-02-14 2009-02-15 2009-02-16 2009-02-17 2009-02-18
## 32 26 29 31 26 34 21
## 2009-02-19 2009-02-20 2009-02-21 2009-02-22 2009-02-23 2009-02-24 2009-02-25
## 32 36 23 30 43 26 22
## 2009-02-26 2009-02-27 2009-02-28 2009-03-01 2009-03-02 2009-03-03 2009-03-04
## 31 31 28 28 20 28 25
## 2009-03-05 2009-03-06 2009-03-07 2009-03-08 2009-03-09 2009-03-10 2009-03-11
## 30 22 26 27 29 30 25
## 2009-03-12 2009-03-13 2009-03-14 2009-03-15 2009-03-16 2009-03-17 2009-03-18
## 23 23 26 31 27 19 26
## 2009-03-19 2009-03-20 2009-03-21 2009-03-22 2009-03-23 2009-03-24 2009-03-25
## 32 12 25 22 28 20 28
## 2009-03-26 2009-03-27 2009-03-28 2009-03-29 2009-03-30 2009-03-31 2009-04-01
## 32 25 31 26 33 31 24
## 2009-04-02 2009-04-03 2009-04-04 2009-04-05 2009-04-06 2009-04-07 2009-04-08
## 24 24 28 26 20 29 34
## 2009-04-09 2009-04-10 2009-04-11 2009-04-12 2009-04-13 2009-04-14 2009-04-15
## 25 35 23 19 26 22 23
## 2009-04-16 2009-04-17 2009-04-18 2009-04-19 2009-04-20 2009-04-21 2009-04-22
## 25 26 30 28 36 24 31
## 2009-04-23 2009-04-24 2009-04-25 2009-04-26 2009-04-27 2009-04-28 2009-04-29
## 34 24 22 28 33 19 41
## 2009-04-30 2009-05-01 2009-05-02 2009-05-03 2009-05-04 2009-05-05 2009-05-06
## 25 20 26 25 28 30 31
## 2009-05-07 2009-05-08 2009-05-09 2009-05-10 2009-05-11 2009-05-12 2009-05-13
## 38 35 23 28 23 20 27
## 2009-05-14 2009-05-15 2009-05-16 2009-05-17 2009-05-18 2009-05-19 2009-05-20
## 24 28 31 20 26 25 37
## 2009-05-21 2009-05-22 2009-05-23 2009-05-24 2009-05-25 2009-05-26 2009-05-27
## 26 29 32 27 29 27 30
## 2009-05-28 2009-05-29 2009-05-30 2009-05-31 2009-06-01 2009-06-02 2009-06-03
## 30 29 24 32 26 21 26
## 2009-06-04 2009-06-05 2009-06-06 2009-06-07 2009-06-08 2009-06-09 2009-06-10
## 26 27 34 22 35 28 19
## 2009-06-11 2009-06-12 2009-06-13 2009-06-14 2009-06-15 2009-06-16 2009-06-17
## 26 25 25 31 25 26 29
## 2009-06-18 2009-06-19 2009-06-20 2009-06-21 2009-06-22 2009-06-23 2009-06-24
## 33 23 28 28 28 26 19
## 2009-06-25 2009-06-26 2009-06-27 2009-06-28 2009-06-29 2009-06-30 2009-07-01
## 33 19 24 31 27 27 25
## 2009-07-02 2009-07-03 2009-07-04 2009-07-05 2009-07-06 2009-07-07 2009-07-08
## 32 23 34 17 35 35 30
## 2009-07-09 2009-07-10 2009-07-11 2009-07-12 2009-07-13 2009-07-14 2009-07-15
## 21 33 31 24 34 26 34
## 2009-07-16 2009-07-17 2009-07-18 2009-07-19 2009-07-20 2009-07-21 2009-07-22
## 28 30 32 37 21 32 22
## 2009-07-23 2009-07-24 2009-07-25 2009-07-26 2009-07-27 2009-07-28 2009-07-29
## 13 23 25 33 26 22 31
## 2009-07-30 2009-07-31 2009-08-01 2009-08-02 2009-08-03 2009-08-04 2009-08-05
## 16 20 30 32 28 25 22
## 2009-08-06 2009-08-07 2009-08-08 2009-08-09 2009-08-10 2009-08-11 2009-08-12
## 22 27 33 31 21 34 25
## 2009-08-13 2009-08-14 2009-08-15 2009-08-16 2009-08-17 2009-08-18 2009-08-19
## 33 31 15 33 29 14 27
## 2009-08-20 2009-08-21 2009-08-22 2009-08-23 2009-08-24 2009-08-25 2009-08-26
## 28 23 22 25 30 29 25
## 2009-08-27 2009-08-28 2009-08-29 2009-08-30 2009-08-31 2009-09-01 2009-09-02
## 25 21 28 27 30 33 15
## 2009-09-03 2009-09-04 2009-09-05 2009-09-06 2009-09-07 2009-09-08 2009-09-09
## 27 23 29 20 28 23 33
## 2009-09-10 2009-09-11 2009-09-12 2009-09-13 2009-09-14 2009-09-15 2009-09-16
## 35 24 26 28 28 27 28
## 2009-09-17 2009-09-18 2009-09-19 2009-09-20 2009-09-21 2009-09-22 2009-09-23
## 23 27 28 26 29 37 36
## 2009-09-24 2009-09-25 2009-09-26 2009-09-27 2009-09-28 2009-09-29 2009-09-30
## 24 32 30 30 32 31 15
## 2009-10-01 2009-10-02 2009-10-03 2009-10-04 2009-10-05 2009-10-06 2009-10-07
## 31 23 18 28 27 26 31
## 2009-10-08 2009-10-09 2009-10-10 2009-10-11 2009-10-12 2009-10-13 2009-10-14
## 26 27 26 27 27 35 22
## 2009-10-15 2009-10-16 2009-10-17 2009-10-18 2009-10-19 2009-10-20 2009-10-21
## 23 31 23 21 36 33 28
## 2009-10-22 2009-10-23 2009-10-24 2009-10-25 2009-10-26 2009-10-27 2009-10-28
## 30 26 35 28 28 29 29
## 2009-10-29 2009-10-30 2009-10-31 2009-11-01 2009-11-02 2009-11-03 2009-11-04
## 21 30 24 43 32 25 27
## 2009-11-05 2009-11-06 2009-11-07 2009-11-08 2009-11-09 2009-11-10 2009-11-11
## 22 34 24 25 29 33 33
## 2009-11-12 2009-11-13 2009-11-14 2009-11-15 2009-11-16 2009-11-17 2009-11-18
## 26 35 30 20 31 24 22
## 2009-11-19 2009-11-20 2009-11-21 2009-11-22 2009-11-23 2009-11-24 2009-11-25
## 24 23 21 29 28 20 23
## 2009-11-26 2009-11-27 2009-11-28 2009-11-29 2009-11-30 2009-12-01 2009-12-02
## 29 21 18 33 23 17 23
## 2009-12-03 2009-12-04 2009-12-05 2009-12-06 2009-12-07 2009-12-08 2009-12-09
## 23 17 13 11 11 10 21
## 2009-12-10 2009-12-11 2009-12-12 2009-12-13 2009-12-14 2009-12-15 2009-12-16
## 19 12 12 15 10 7 5
## 2009-12-17 2009-12-18 2009-12-19 2009-12-20 2009-12-21 2009-12-22 2009-12-23
## 9 8 12 7 6 7 5
## 2009-12-24 2009-12-25 2009-12-26 2009-12-27 2009-12-28 2009-12-29 2009-12-31
## 10 10 6 4 4 3 3
##
## $Gender
##
## F M
## 7170 6889
##
## $MaritalStatus
##
## M S
## 6866 7193
##
## $Homeowner
##
## N Y
## 5615 8444
##
## $AnnualIncome
##
## $10K - $30K $110K - $130K $130K - $150K $150K + $30K - $50K
## 3090 643 760 273 4601
## $50K - $70K $70K - $90K $90K - $110K
## 2370 1709 613
##
## $City
##
## Acapulco Bellingham Beverly Hills Bremerton Camacho
## 383 143 811 834 452
## Guadalajara Hidalgo Los Angeles Merida Mexico City
## 75 845 926 654 194
## Orizaba Portland Salem San Andres San Diego
## 464 876 1386 621 866
## San Francisco Seattle Spokane Tacoma Vancouver
## 130 922 875 1257 633
## Victoria Walla Walla Yakima
## 176 160 376
##
## $StateorProvince
##
## BC CA DF Guerrero Jalisco OR Veracruz WA
## 809 2733 815 383 75 2262 464 4567
## Yucatan Zacatecas
## 654 1297
##
## $Country
##
## Canada Mexico USA
## 809 3688 9562
##
## $ProductFamily
##
## Drink Food Non-Consumable
## 1250 10153 2656
##
## $ProductDepartment
##
## Alcoholic Beverages Baked Goods Baking Goods Beverages
## 356 425 1072 680
## Breakfast Foods Canned Foods Canned Products Carousel
## 188 977 109 59
## Checkout Dairy Deli Eggs
## 82 903 699 198
## Frozen Foods Health and Hygiene Household Meat
## 1382 893 1420 89
## Periodicals Produce Seafood Snack Foods
## 202 1994 102 1600
## Snacks Starchy Foods
## 352 277
##
## $ProductCategory
##
## Baking Goods Bathroom Products Beer and Wine
## 484 365 356
## Bread Breakfast Foods Candles
## 425 417 45
## Candy Canned Anchovies Canned Clams
## 352 44 53
## Canned Oysters Canned Sardines Canned Shrimp
## 35 40 38
## Canned Soup Canned Tuna Carbonated Beverages
## 404 87 154
## Cleaning Supplies Cold Remedies Dairy
## 189 93 903
## Decongestants Drinks Eggs
## 85 135 198
## Electrical Frozen Desserts Frozen Entrees
## 355 323 118
## Fruit Hardware Hot Beverages
## 765 129 226
## Hygiene Jams and Jellies Kitchen Products
## 197 588 217
## Magazines Meat Miscellaneous
## 202 761 42
## Packaged Vegetables Pain Relievers Paper Products
## 48 192 345
## Pizza Plastic Products Pure Juice Beverages
## 194 141 165
## Seafood Side Dishes Snack Foods
## 102 153 1600
## Specialty Starchy Foods Vegetables
## 289 277 1728
Nhận xét:
-Biến định tính trong dữ liệu là PurchaseDate, thể hiện ngày mua hàng dưới dạng các nhãn phân loại (factor). Bảng tần suất cho thấy số lượng quan sát tương ứng với từng ngày mua hàng trong khoảng thời gian từ tháng 12/2007 đến tháng 11/2008.
-Tổng thể, biến PurchaseDate phân bố khá đồng đều qua các ngày, không có ngày nào chiếm ưu thế vượt trội so với các ngày khác, thể hiện tính phân tán thời gian mua hàng khá đều.
-Một số ngày có số lần mua hàng thấp (ví dụ 1-3 lần), trong khi những ngày khác có số lượng cao hơn, có thể lên đến hơn 20 lần (ví dụ 2008-02-02 với 23 lần, 2008-07-17 với 26 lần).
-Có thể quan sát thấy một số ngày có tần suất mua hàng cao đột biến, thể hiện mức độ giao dịch tập trung vào một số ngày nhất định. Điều này có thể do các yếu tố như chương trình khuyến mãi, ngày lễ, hoặc thói quen mua sắm theo chu kỳ.
-Dữ liệu này cung cấp cơ sở để phân tích xu hướng theo thời gian, ví dụ kiểm tra xem hoạt động mua hàng có sự biến động theo tuần, tháng, hoặc dịp đặc biệt không.
-Vì đây là biến định tính dạng ngày tháng, nếu phân tích sâu hơn có thể chuyển sang biến dạng chuỗi thời gian để khai thác thêm các đặc trưng theo thời gian (seasonality, trend).
-Tóm lại, thống kê tần suất của biến định tính PurchaseDate cung cấp cái nhìn tổng quan về phân bố giao dịch theo ngày, là tiền đề quan trọng để phân tích các mô hình thời gian hoặc các yếu tố ảnh hưởng đến hành vi mua hàng theo từng khoảng thời gian cụ thể.
Qua thống kê mô tả, ta nhận thấy dữ liệu giao dịch siêu thị phản ánh sự đa dạng về sản phẩm, hình thức thanh toán, cũng như mức độ hài lòng của khách hàng. Đây là nền tảng quan trọng để thực hiện các phân tích sâu hơn như phân cụm khách hàng, dự báo doanh thu, hay tối ưu hóa chiến lược marketing.