1. Tóm tắt sách : Generalized Linear Models: With Examples in R

Cuốn sách này tập trung vào các mô hình thống kê, với trọng tâm là mô hình hồi quy tuyến tính và mở rộng sang mô hình tuyến tính tổng quát (Generalized Linear Models - GLMs).Nội dung chính của sách cũng nhấn mạnh việc sử dụng phần mềm R để thực hiện các phân tích.Cuốn sách có các mục chính như sau

1.1 Khái niệm cơ bản và khám phá dữ liệu

  • Cuốn sách giới thiệu cách mô tả dữ liệu và vẽ biểu đồ dữ liệu để hiểu rõ hơn về các biến. Các ví dụ về biểu đồ được hiển thị bao gồm mối quan hệ giữa FEV (Dung tích thở cưỡng bức) với tuổi và chiều cao, cũng như mối quan hệ giữa chiều cao và tuổi cho giới nữ.
  • Các mô hình thống kê được mô tả là bao gồm cả thành phần có hệ thống (systematic component) và thành phần ngẫu nhiên (random component). Thành phần có hệ thống có thể có các dạng khác nhau (ví dụ: tuyến tính, bậc hai, bậc ba, bậc bốn) để mô tả mối quan hệ với biến độc lập.
  • Một nguyên tắc quan trọng được trích dẫn là “Tất cả các mô hình đều sai, nhưng một số hữu ích”, cho thấy việc lựa chọn và đánh giá mô hình là quan trọng.
  • Cuốn sách cũng phân biệt giữa nghiên cứu thực nghiệm (experiments) và nghiên cứu quan sát (observational studies), đặc biệt về khả năng suy luận nhân quả (causality) so với chỉ suy luận liên kết (association).

1.2 Mô hình hồi quy tuyến tính (Linear Regression Models)

  • Cuốn sách đi sâu vào việc diễn giải các mô hình hồi quy tuyến tính.
  • Kiểm định giả thuyết cho từng hệ số hồi quy (βj) trong mô hình hồi quy tuyến tính được thực hiện bằng cách sử dụng thống kê T = (β̂j - β₀j) / se(β̂j). Thống kê này tuân theo phân phối t với n - p’ bậc tự do khi phương sai (σ²) chưa biết.
  • Mối quan hệ giữa thống kê F (dùng để kiểm định mô hình tổng thể hoặc so sánh các mô hình) và hệ số xác định R² được trình bày bằng công thức.
  • Việc so sánh các mô hình lồng nhau (nested models) được thực hiện bằng phân tích phương sai (Analysis of Variance - ANOVA). Mô hình A được coi là lồng trong mô hình B nếu mô hình A có thể suy ra từ mô hình B bằng cách đặt một hoặc nhiều tham số của B bằng 0. Ví dụ về việc so sánh hai mô hình cho dữ liệu dung tích phổi (lungcap data) được trình bày, bao gồm mã R sử dụng hàm lm() và anova().
  • Việc xây dựng mô hình (model-building) có thể sử dụng các phương pháp như thêm biến từng bước (stepwise addition) dựa trên tiêu chí như AIC (Akaike Information Criterion). Ví dụ sử dụng hàm R add1() để đánh giá việc thêm các biến giải thích (Age, Ht, Gender) vào một mô hình cơ bản (log(FEV) ~ Smoke) được minh họa, cho thấy biến Ht làm giảm AIC nhiều nhất.

1.3 Chẩn đoán và Xây dựng Mô hình (Diagnostics and Model-Building)

  • Phân tích suy diễn đóng vai trò then chốt trong việc đánh giá mức độ phù hợp của mô hình. Các kỹ thuật suy diễn phổ biến bao gồm: biểu đồ phần dư chuẩn hóa (standardized residuals) đối chiếu với giá trị dự báo (fitted values) nhằm kiểm tra tính ngẫu nhiên của sai số; biểu đồ Q-Q chuẩn tắc (Normal Q-Q plot) để đánh giá giả thiết phân phối chuẩn của phần dư; cùng với biểu đồ Cook’s distance giúp xác định các điểm dữ liệu có ảnh hưởng lớn (influential points) lên mô hình.
  • Biểu đồ phần dư chuẩn hóa được sử dụng để kiểm tra giả định về phương sai không đổi (constant variance). Khi phát hiện phương sai không ổn định, việc biến đổi biến phản hồi hoặc biến giải thích trở nên cần thiết để cải thiện mô hình. Ví dụ, biến đổi logarit hoặc nghịch đảo cho biến tốc độ gió (Wind speed), hoặc biến đổi logarit cho biến FEV, là những phương pháp thường được áp dụng nhằm khắc phục vấn đề này.
  • Các chỉ số đo lường ảnh hưởng của từng quan sát được sử dụng bao gồm dffits — tương đương với căn bậc hai của Cook’s distance — và dfbeta, chỉ ra mức độ thay đổi của ước lượng hệ số khi loại bỏ một quan sát khỏi mẫu. Ngoài ra, trong quá trình xây dựng mô hình, nguyên tắc marginality principle được đề xuất nhằm đảm bảo tính hợp lý: nếu mô hình bao gồm các biến tương tác (interaction terms), thì các biến chính (main effects) tương ứng cũng cần được giữ lại. Ví dụ, với bộ dữ liệu về răng (dental data), nguyên tắc này được áp dụng khi có biến tương tác giữa Sugar và IndusNonInd, buộc phải giữ lại các biến chính tương ứng để mô hình có ý nghĩa thống kê và giải thích hợp lý.
  • Việc so sánh các mô hình không lồng nhau (non-nested models) hoặc sử dụng các liên kết (links) khác nhau có thể dựa trên tiêu chí AIC và BIC (Bayesian Information Criterion).
  • Cuốn sách cung cấp nhiều nghiên cứu tình huống (case studies) để minh họa các kỹ thuật chẩn đoán và xây dựng mô hình, sử dụng các bộ dữ liệu như dental data, cheese data (Taste), food consumption (fish), ruminant feed, gopher tortoises, rat liver, CT scan (fluoro data).

1.4 Mô hình Tuyến tính Tổng quát (Generalized Linear Models - GLMs)

  • GLMs mở rộng mô hình hồi quy tuyến tính để xử lý các loại dữ liệu phản hồi khác nhau (không chỉ dữ liệu liên tục có phân phối chuẩn) bằng cách kết hợp:
    • Thành phần có hệ thống (linear predictor).
    • Thành phần ngẫu nhiên: Biến phản hồi y có phân phối từ họ phân phối lũy thừa (Exponential Dispersion Models - EDMs).
    • Hàm liên kết (link function) g(μ) = η, nối giá trị trung bình μ của y với thành phần tuyến tính η.
  • Bảng tổng hợp các EDM phổ biến và các đặc tính của chúng, bao gồm:
    • Hàm phương sai V(μ): Biểu diễn mối quan hệ giữa phương sai của y và giá trị trung bình μ.
    • Hàm tích lũy κ(θ): Cumulant function.
    • Tham số chính tắc θ (canonical parameter).
    • Tham số phân tán φ (dispersion parameter).
    • Unit deviance d(y,μ).
    • Tập giá trị có thể có (Support) S của y và miền xác định của μ và θ.
  • Các EDM được đề cập chi tiết bao gồm:
    • Normal Distribution: V(μ)=1.
    • Binomial Distribution: V(μ)=μ(1-μ), phù hợp cho dữ liệu tỷ lệ. Hàm liên kết chính tắc là logit (log(μ/(1-μ))). Hàm liên kết probit cũng được thảo luận, liên quan đến phân phối chuẩn tích lũy. Ví dụ: dữ liệu về vết nứt tuabin (turbine fissure data), dữ liệu về tế bào gốc tuyến vú (mammary stem cells).
    • Poisson Distribution: V(μ)=μ, phù hợp cho dữ liệu đếm. Hàm liên kết chính tắc là log(μ). Ví dụ: dữ liệu cua móng ngựa (horseshoe crab data).
    • Negative Binomial Distribution: V(μ)=μ+μ²/k (k là tham số), cũng phù hợp cho dữ liệu đếm, thường được dùng khi có hiện tượng overdispersion (phương sai lớn hơn trung bình) so với Poisson.
    • Gamma Distribution: V(μ)=μ², phù hợp cho dữ liệu liên tục dương. Hàm liên kết chính tắc là nghịch đảo (-1/μ). Hàm liên kết logarit (log) cũng thường được sử dụng. Ví dụ: dữ liệu cây đoan lá nhỏ (small-leaved lime data - biomass).
    • Inverse Gaussian Distribution: V(μ)=μ³, phù hợp cho dữ liệu liên tục dương. Liên quan đến quá trình ngẫu nhiên như chuyển động Brown (Brownian motion).
    • Tweedie Distribution: Một họ các EDM với hàm phương sai V(μ) = μ raised to the power ξ (μ^ξ), nơi ξ là tham số chỉ số Tweedie. Các trường hợp đặc biệt của Tweedie bao gồm Normal (ξ=0), Poisson (ξ=1), Gamma (ξ=2), và Inverse Gaussian (ξ=3). Tweedie GLMs phù hợp cho dữ liệu liên tục dương (ξ ≥ 2) và dữ liệu liên tục dương có các giá trị 0 chính xác (exact zeros) (1 < ξ < 2 hoặc ξ ≤ 0). Chúng được sử dụng khi các phân phối Gamma hoặc Inverse Gaussian không đủ mô tả dữ liệu, đặc biệt là dữ liệu bị lệch nhiều. Ví dụ: dữ liệu chất độc (poison data - survival times) được phân tích bằng Tweedie GLM. Tham số ξ có thể được ước lượng bằng hàm tweedie.profile() trong R. AIC cũng có thể được tính cho Tweedie GLMs.

1.5 Kiểm định Giả thuyết trong GLMs (Hypothesis Testing)

  • Đối với các mẫu lớn (large samples), có ba phương pháp chính để kiểm định giả thuyết cho các tham số trong GLMs: Kiểm định Wald (Wald test), Kiểm định Score (Score test), và Kiểm định Tỷ số Khả năng (Likelihood Ratio Test - LLR). Các kiểm định này dựa trên kết quả tiệm cận (asymptotic results).
  • Kiểm định Wald dựa trên khoảng cách giữa ước lượng tham số và giá trị giả thuyết.
  • Kiểm định Score dựa trên đạo hàm (gradient) của hàm log-likelihood tại giá trị tham số dưới giả thuyết không.
  • Kiểm định Pearson goodness-of-fit là trường hợp đặc biệt của kiểm định Score, so sánh mô hình hiện tại với mô hình saturated (mô hình chứa tất cả các tham số có thể).

1.6 Sử dụng R

  • Cuốn sách tích hợp chặt chẽ việc sử dụng phần mềm R để minh họa các khái niệm và phân tích.
  • Các lệnh R cơ bản cho việc vẽ biểu đồ (plot()), lắp mô hình (lm(), glm()), xem kết quả mô hình (summary(), coef(), printCoefmat()), phân tích ANOVA (anova()), chọn biến (add1()), tính toán AIC/BIC (extractAIC(), nobs()) được trình bày thông qua các ví dụ.
  • Các hàm R cho phân tích chẩn đoán như rstandard(), cooks.distance(), qqnorm(), qqline(), dffits() được sử dụng và minh họa.
  • Các hàm cụ thể cho mô hình Tweedie như AICtweedie() và tweedie.profile() cũng được đề cập.
  • Các đoạn mã R để tính toán thủ công các thống kê kiểm định Wald và Score sử dụng ma trận (ví dụ: ma trận thông tin) được hiển thị.

1.7 Bài tập và Lời giải

  • Cuốn sách bao gồm các bài tập (Problems) và cung cấp lời giải hoặc gợi ý giải cho một số bài tập chọn lọc. Các lời giải này bao gồm cả công thức toán học và mã R.

Tóm lại, cuốn sách “Generalized Linear Models With Examples in R” cung cấp một cái nhìn chi tiết về mô hình hồi quy tuyến tính và các mô hình tuyến tính tổng quát. Nó bao gồm lý thuyết về cấu trúc mô hình, các họ phân phối (đặc biệt là EDMs và Tweedie), các phương pháp ước lượng và kiểm định giả thuyết (bao gồm Wald, Score, LLR, Pearson), và đặc biệt chú trọng vào việc chẩn đoán mô hình cũng như các kỹ thuật xây dựng mô hình. Xuyên suốt cuốn sách, việc sử dụng phần mềm R được tích hợp sâu rộng thông qua nhiều ví dụ thực tế và nghiên cứu tình huống từ nhiều lĩnh vực khác nhau

2. Thực hiện thống kê mô tả dữ liệu định tính

  dulieu <- read.csv("C:/Users/Welcome !/Downloads/Supermarket Transactions.csv")
# Liệt kê các biến định tính
categorical_vars <- c("Gender", "MaritalStatus", "Homeowner", "AnnualIncome", 
                      "City", "StateorProvince", "Country", 
                      "ProductFamily", "ProductDepartment", "ProductCategory")

# Thống kê mô tả cho từng biến định tính
for (var in categorical_vars) {
  cat("===== Thống kê mô tả cho biến:", var, "=====\n")
  print(table(dulieu[[var]]))
  cat("\nTỷ lệ phần trăm:\n")
  print(round(prop.table(table(dulieu[[var]])) * 100, 2))
  cat("\n\n")
}
## ===== Thống kê mô tả cho biến: Gender =====
## 
##    F    M 
## 7170 6889 
## 
## Tỷ lệ phần trăm:
## 
##  F  M 
## 51 49 
## 
## 
## ===== Thống kê mô tả cho biến: MaritalStatus =====
## 
##    M    S 
## 6866 7193 
## 
## Tỷ lệ phần trăm:
## 
##     M     S 
## 48.84 51.16 
## 
## 
## ===== Thống kê mô tả cho biến: Homeowner =====
## 
##    N    Y 
## 5615 8444 
## 
## Tỷ lệ phần trăm:
## 
##     N     Y 
## 39.94 60.06 
## 
## 
## ===== Thống kê mô tả cho biến: AnnualIncome =====
## 
##   $10K - $30K $110K - $130K $130K - $150K       $150K +   $30K - $50K 
##          3090           643           760           273          4601 
##   $50K - $70K   $70K - $90K  $90K - $110K 
##          2370          1709           613 
## 
## Tỷ lệ phần trăm:
## 
##   $10K - $30K $110K - $130K $130K - $150K       $150K +   $30K - $50K 
##         21.98          4.57          5.41          1.94         32.73 
##   $50K - $70K   $70K - $90K  $90K - $110K 
##         16.86         12.16          4.36 
## 
## 
## ===== Thống kê mô tả cho biến: 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 
## 
## Tỷ lệ phần trăm:
## 
##      Acapulco    Bellingham Beverly Hills     Bremerton       Camacho 
##          2.72          1.02          5.77          5.93          3.22 
##   Guadalajara       Hidalgo   Los Angeles        Merida   Mexico City 
##          0.53          6.01          6.59          4.65          1.38 
##       Orizaba      Portland         Salem    San Andres     San Diego 
##          3.30          6.23          9.86          4.42          6.16 
## San Francisco       Seattle       Spokane        Tacoma     Vancouver 
##          0.92          6.56          6.22          8.94          4.50 
##      Victoria   Walla Walla        Yakima 
##          1.25          1.14          2.67 
## 
## 
## ===== Thống kê mô tả cho biến: StateorProvince =====
## 
##        BC        CA        DF  Guerrero   Jalisco        OR  Veracruz        WA 
##       809      2733       815       383        75      2262       464      4567 
##   Yucatan Zacatecas 
##       654      1297 
## 
## Tỷ lệ phần trăm:
## 
##        BC        CA        DF  Guerrero   Jalisco        OR  Veracruz        WA 
##      5.75     19.44      5.80      2.72      0.53     16.09      3.30     32.48 
##   Yucatan Zacatecas 
##      4.65      9.23 
## 
## 
## ===== Thống kê mô tả cho biến: Country =====
## 
## Canada Mexico    USA 
##    809   3688   9562 
## 
## Tỷ lệ phần trăm:
## 
## Canada Mexico    USA 
##   5.75  26.23  68.01 
## 
## 
## ===== Thống kê mô tả cho biến: ProductFamily =====
## 
##          Drink           Food Non-Consumable 
##           1250          10153           2656 
## 
## Tỷ lệ phần trăm:
## 
##          Drink           Food Non-Consumable 
##           8.89          72.22          18.89 
## 
## 
## ===== Thống kê mô tả cho biến: 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 
## 
## Tỷ lệ phần trăm:
## 
## Alcoholic Beverages         Baked Goods        Baking Goods           Beverages 
##                2.53                3.02                7.63                4.84 
##     Breakfast Foods        Canned Foods     Canned Products            Carousel 
##                1.34                6.95                0.78                0.42 
##            Checkout               Dairy                Deli                Eggs 
##                0.58                6.42                4.97                1.41 
##        Frozen Foods  Health and Hygiene           Household                Meat 
##                9.83                6.35               10.10                0.63 
##         Periodicals             Produce             Seafood         Snack Foods 
##                1.44               14.18                0.73               11.38 
##              Snacks       Starchy Foods 
##                2.50                1.97 
## 
## 
## ===== Thống kê mô tả cho biến: 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 
## 
## Tỷ lệ phần trăm:
## 
##         Baking Goods    Bathroom Products        Beer and Wine 
##                 3.44                 2.60                 2.53 
##                Bread      Breakfast Foods              Candles 
##                 3.02                 2.97                 0.32 
##                Candy     Canned Anchovies         Canned Clams 
##                 2.50                 0.31                 0.38 
##       Canned Oysters      Canned Sardines        Canned Shrimp 
##                 0.25                 0.28                 0.27 
##          Canned Soup          Canned Tuna Carbonated Beverages 
##                 2.87                 0.62                 1.10 
##    Cleaning Supplies        Cold Remedies                Dairy 
##                 1.34                 0.66                 6.42 
##        Decongestants               Drinks                 Eggs 
##                 0.60                 0.96                 1.41 
##           Electrical      Frozen Desserts       Frozen Entrees 
##                 2.53                 2.30                 0.84 
##                Fruit             Hardware        Hot Beverages 
##                 5.44                 0.92                 1.61 
##              Hygiene     Jams and Jellies     Kitchen Products 
##                 1.40                 4.18                 1.54 
##            Magazines                 Meat        Miscellaneous 
##                 1.44                 5.41                 0.30 
##  Packaged Vegetables       Pain Relievers       Paper Products 
##                 0.34                 1.37                 2.45 
##                Pizza     Plastic Products Pure Juice Beverages 
##                 1.38                 1.00                 1.17 
##              Seafood          Side Dishes          Snack Foods 
##                 0.73                 1.09                11.38 
##            Specialty        Starchy Foods           Vegetables 
##                 2.06                 1.97                12.29
# Thống kê số lượng và tỷ lệ phần trăm
gender_freq <- table(dulieu$Gender)
gender_percent <- round(prop.table(gender_freq) * 100, 2)

# Kết hợp thành bảng tổng hợp
summary_gender <- data.frame(
  Category = names(gender_freq),
  Count = as.vector(gender_freq),
  Percentage = as.vector(gender_percent)
)

categorical_vars <- c("Gender", "MaritalStatus", "Homeowner", "AnnualIncome")

# Tạo danh sách màu cho từng biến
color_list <- list(
  Gender = c("#f5f5f5", "#73c6b6"),
  MaritalStatus = c("#ff9999", "#66b2ff", "#99ff99"),
  Homeowner = c("#ffcc99", "#66cc99"),
  AnnualIncome = c("#a6cee3", "#1f78b4", "#b2df8a", "#33a02c")
)

for (var in categorical_vars) {
  freq <- table(dulieu[[var]])
  percent <- round(prop.table(freq) * 100, 2)
  
  pie(
    freq,
    labels = paste0(names(freq), ": ", percent, "%"),
    main = paste("Biểu đồ tròn thể hiện tỷ lệ phần trăm các quan sát của biến", var),
    col = color_list[[var]][1:length(freq)] 
  )
}

library(ggplot2)

ggplot(dulieu, aes(x = AnnualIncome)) +
  geom_bar(fill = "steelblue") +
  labs(title = "Biểu đồ cột phân phối Annual Income", x = "Annual Income", y = "Số lượng") +
  theme_minimal()