BÁO CÁO TỰ HỌC AI-FIRST — SESSION 08

Biến đếm (Poisson) & Ước lượng hợp tối đa (MLE)

📌 QUY ĐỊNH NỘP BÀI (BẮT BUỘC ĐỌC TRƯỚC): - Nộp đúng 1 file .md duy nhất, đặt tên: MSSV_Họ Tên.md. - Giới hạn kích thước: tối đa 30KB (~600 dòng). - Không được xóa các tiêu đề section và nhãn [Điền vào đây]. - Phần hội thoại: KHÔNG dump toàn bộ log chat — chỉ chép 10 hội thoại tiêu biểu nhất.


PHẦN 0: THÔNG TIN SINH VIÊN

Trường Thông tin
Họ và tên Đỗ Nguyễn Nhật Minh
MSSV 2321000336
Session 08 — Biến đếm (Poisson) & Ước lượng hợp tối đa (MLE)
Ngày nộp 08/06/2026
AI sử dụng ChatGPT

PHẦN 1: BẢNG TÓM TẮT TỰ HỌC (Bắt buộc — điền trung thực)

Chỉ số Giá trị
Tổng số prompt đã hỏi AI 92
Tổng thời gian tự học (giờ) 7.5
Số buổi tự học 3

Các chủ đề đã tìm hiểu

Tự đánh giá mức độ hiểu sau buổi học

Tiêu chí Tự cho điểm (1–10) Lý do ngắn gọn
Siêng năng 9/10 Ghi theo số prompt và thời gian học thật của bản thân.
Độ hiểu kiến thức 8.5/10 Tôi hiểu vì sao dữ liệu đếm cần Poisson, biết đọc IRR và kiểm tra overdispersion.
Độ sâu câu hỏi 9/10 Tôi không chỉ hỏi cách chạy code mà còn phản biện giả định Poisson, log-link, MLE và mô hình thay thế.

PHẦN 2: KIẾN THỨC CỐT LÕI ĐÃ HỌC (Tối đa 300 từ)

Khái niệm tôi đã hiểu rõ nhất

Tôi hiểu rằng hồi quy Poisson phù hợp khi biến phụ thuộc là biến đếm không âm như số giải thưởng, số tai nạn hoặc số khiếu nại. Khác với OLS, Poisson không dự báo trực tiếp số đếm bằng một đường thẳng có thể âm; mô hình dùng log link để bảo đảm giá trị kỳ vọng luôn dương. Vì vậy, hệ số β không được đọc theo kiểu “tăng thêm β đơn vị” mà phải chuyển sang exp(β), tức Incident Rate Ratio. Ví dụ exp(β)=2.96 nghĩa là số đếm kỳ vọng cao gấp 2.96 lần, giữ các biến khác không đổi.

Khái niệm tôi còn thấy khó / chưa chắc

Tôi còn cần luyện thêm cách lựa chọn giữa Poisson, Quasi-Poisson và Negative Binomial. Tôi cũng chưa hoàn toàn tự tin khi giải thích thuật toán tối ưu MLE bằng đạo hàm/Hessian, dù đã hiểu trực giác là tìm bộ tham số làm dữ liệu quan sát được “hợp lý nhất”.

Điều thú vị nhất tôi phát hiện

Điều thú vị là Poisson có giả định rất mạnh: Mean = Variance. Chỉ cần phương sai lớn hơn trung bình rõ rệt, các p-value của mô hình Poisson có thể trở nên quá lạc quan nếu không điều chỉnh.


PHẦN 3: 10 HỘI THOẠI TIÊU BIỂU (Chọn lọc — không dump toàn bộ log)

Hội thoại #1

Câu hỏi tôi đã hỏi:
> Nếu biến phụ thuộc là số giải thưởng, tại sao tôi không dùng OLS rồi làm tròn kết quả dự báo thành số nguyên?

Tóm tắt câu trả lời:
OLS không tôn trọng bản chất không âm và rời rạc của biến đếm; mô hình có thể dự báo số âm hoặc giá trị không hợp lý. Poisson mô hình hóa trực tiếp kỳ vọng của số đếm và dùng log link để bảo đảm dự báo dương. Làm tròn dự báo OLS chỉ che lỗi ở đầu ra chứ không sửa sai mô hình thống kê bên trong.

Điều tôi rút ra:
Không nên sửa hậu kỳ bằng làm tròn; phải chọn mô hình đúng với bản chất dữ liệu ngay từ đầu.


Hội thoại #2

Câu hỏi tôi đã hỏi:
> Giả định Mean = Variance của Poisson có ý nghĩa kinh doanh gì, hay chỉ là điều kiện toán học?

Tóm tắt câu trả lời:
Mean = Variance phản ánh giả định các sự kiện đếm xảy ra độc lập và với tốc độ ổn định. Trong thực tế, nếu học sinh giỏi thường được hỗ trợ tốt hơn, có động lực hơn và cùng lúc đạt nhiều giải, dữ liệu sẽ gom cụm, khiến phương sai lớn hơn trung bình. Khi đó Poisson vẫn là baseline tốt, nhưng phải kiểm tra overdispersion.

Điều tôi rút ra:
Equidispersion là giả định có ý nghĩa hành vi, không chỉ là công thức.


Hội thoại #3

Câu hỏi tôi đã hỏi:
> Hàm log link trong Poisson có đang ép mối quan hệ giữa X và Y thành tăng trưởng hàm mũ quá mạnh không?

Tóm tắt câu trả lời:
Log link làm cho tác động của biến độc lập lên kỳ vọng số đếm là dạng nhân. Điều này phù hợp khi mỗi đơn vị tăng của X làm tỷ lệ xảy ra sự kiện tăng theo phần trăm. Tuy nhiên, nếu thực tế có bão hòa hoặc hiệu ứng giảm dần, cần kiểm tra thêm nonlinear terms, spline hoặc mô hình khác.

Điều tôi rút ra:
Log link bảo đảm dự báo dương nhưng cũng là một giả định cấu trúc cần phản biện.


Hội thoại #4

Câu hỏi tôi đã hỏi:
> Vì sao hệ số math = 0.07015 lại phải đọc thành IRR = 1.0727 thay vì “số giải tăng 0.07”?

Tóm tắt câu trả lời:
Trong Poisson, hệ số nằm trên thang log của kỳ vọng. Khi lấy exp(0.07015), ta được tỷ lệ nhân: mỗi điểm toán tăng thêm làm số giải thưởng kỳ vọng tăng khoảng 7.27%, giữ chương trình học không đổi. Đọc β như OLS sẽ sai vì Poisson không phải mô hình cộng tuyến tính trên thang Y gốc.

Điều tôi rút ra:
Mọi diễn giải hệ số Poisson nên đi qua exp(β).


Hội thoại #5

Câu hỏi tôi đã hỏi:
> Vì sao chương trình Academic có IRR gần 2.96 nhưng cần nói “giữ điểm toán như nhau”?

Tóm tắt câu trả lời:
Mô hình có cả progmath, nên hệ số progAcademic là tác động tương đối của chương trình học khi đã giữ math cố định. Nếu không nói điều này, người đọc có thể hiểu sai rằng khác biệt do Academic hoàn toàn, trong khi một phần có thể đến từ điểm toán khác nhau giữa các nhóm.

Điều tôi rút ra:
Diễn giải hồi quy luôn phải kèm điều kiện “các biến khác không đổi”.


Hội thoại #6

Câu hỏi tôi đã hỏi:
> Likelihood khác Probability thế nào nếu cả hai đều dùng xác suất trong công thức?

Tóm tắt câu trả lời:
Probability trả lời: nếu tham số đã biết, xác suất quan sát dữ liệu là bao nhiêu. Likelihood đi ngược lại: với dữ liệu đã quan sát, bộ tham số nào làm dữ liệu đó hợp lý nhất. Trong MLE, dữ liệu được giữ cố định, còn tham số là thứ được thay đổi để tìm cực đại.

Điều tôi rút ra:
MLE là tư duy “lần ngược nguyên nhân từ dữ liệu đã thấy”.


Hội thoại #7

Câu hỏi tôi đã hỏi:
> Tại sao tối đa hóa Log-Likelihood không làm thay đổi nghiệm so với Likelihood gốc?

Tóm tắt câu trả lời:
Hàm log là hàm đơn điệu tăng, nên điểm nào làm Likelihood lớn nhất cũng làm Log-Likelihood lớn nhất. Việc lấy log biến tích của nhiều xác suất nhỏ thành tổng, giúp máy tính ổn định hơn và tránh underflow. Do đó log không đổi nghiệm, chỉ làm bài toán dễ tối ưu hơn.

Điều tôi rút ra:
Log-Likelihood là thủ thuật tính toán nhưng bảo toàn bản chất tối ưu.


Hội thoại #8

Câu hỏi tôi đã hỏi:
> Nếu dispersiontest() cho p-value không nhỏ nhưng var(Y) lớn hơn mean(Y), tôi nên tin cái nào?

Tóm tắt câu trả lời:
Mean/Variance là kiểm tra mô tả thô của biến Y, chưa xét các biến giải thích. Dispersion test và tỷ số deviance/df đánh giá phần dư sau khi mô hình đã đưa progmath vào. Vì vậy có thể có variance thô lớn hơn mean, nhưng sau khi kiểm soát X, overdispersion không còn nghiêm trọng.

Điều tôi rút ra:
Không kết luận overdispersion chỉ từ mean/variance thô; phải xem chẩn đoán sau mô hình.


Hội thoại #9

Câu hỏi tôi đã hỏi:
> Khi nào nên dùng Quasi-Poisson thay vì Negative Binomial?

Tóm tắt câu trả lời:
Quasi-Poisson điều chỉnh sai số chuẩn bằng hệ số phân tán, phù hợp khi mục tiêu chính là suy luận hệ số và p-value. Negative Binomial thay đổi cấu trúc phân phối bằng tham số phân tán, phù hợp khi muốn mô hình hóa phân phối số đếm tốt hơn hoặc dự báo xác suất. Nếu overdispersion mạnh, Negative Binomial thường hợp lý hơn.

Điều tôi rút ra:
Quasi-Poisson sửa suy luận; Negative Binomial sửa cấu trúc phân phối.


Hội thoại #10

Câu hỏi tôi đã hỏi:
> Nếu mô hình Poisson cho kết quả Academic rất mạnh, tôi có nên kết luận chương trình Academic gây ra nhiều giải thưởng hơn không?

Tóm tắt câu trả lời:
Không nên kết luận nhân quả nếu dữ liệu quan sát không ngẫu nhiên. Học sinh chọn Academic có thể vốn đã có động lực, nền tảng học tập hoặc nguồn lực tốt hơn. Mô hình cho thấy liên hệ đã kiểm soát điểm toán, nhưng chưa kiểm soát toàn bộ yếu tố nền.

Điều tôi rút ra:
Kết quả hồi quy mạnh không đồng nghĩa với bằng chứng nhân quả.


PHẦN 4: CÂU HỎI PHẢN BIỆN & ĐIỀU CÒN BỎ NGỎ

  1. Nếu học sinh trong chương trình Academic vốn có động lực cao hơn và được chọn lọc đầu vào tốt hơn, làm sao tách tác động thật của chương trình khỏi thiên lệch chọn mẫu?
  2. Khi kiểm tra mean/variance thô cho thấy phương sai lớn hơn trung bình nhưng dispersion test sau mô hình không có ý nghĩa, tôi nên báo cáo điều này thế nào để không gây hiểu nhầm?
  3. Nếu số giải thưởng có quá nhiều giá trị 0, mô hình Poisson thường có đủ tốt không, hay cần Zero-Inflated Poisson/Negative Binomial?

PHẦN 5: BÀI TẬP THỰC HÀNH (Peer Code Review — chuẩn bị sẵn code để peer review trên lớp)

Hướng dẫn: Với câu code, trình bày code R kèm output. Với câu giải thích, trả lời bằng lời ít nhất 3–5 câu.


PHẦN A: NHẬN DIỆN DỮ LIỆU VÀ KIỂM TRA PHÂN PHỐI

Câu 1. Tạo file exercise-session-08.qmd trong thư mục SinhVien/Exercises/.
Bài làm: File exercise-session-08.qmd được tạo để phân tích dữ liệu biến đếm bằng hồi quy Poisson.

Câu 2. Khai báo YAML header đầy đủ.
Bài làm:

---
title: "Bài Tập Buổi 08 — Biến đếm Poisson & MLE"
author: "Đỗ Nguyễn Nhật Minh — 2321000336"
date: today
format: html
---

Câu 3. Thiết lập chunk toàn cục.
Bài làm:

knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE)

Câu 4. Nạp các thư viện cần thiết.
Bài làm:

library(tidyverse)
library(sandwich)
library(AER)

Câu 5. Đọc dữ liệu Awards Count bằng 2 cách.
Bài làm:

online_url <- "https://stats.idre.ucla.edu/stat/data/poisson_sim.csv"
offline_path <- "../../Data/poisson_sim.csv"

if (file.exists(offline_path)) {
  df <- read.csv(offline_path)
} else {
  df <- read.csv(online_url)
}
dim(df)

Output

[1] 200   4

Câu 6. Kiểm tra cấu trúc dữ liệu.
Bài làm:

str(df)
glimpse(df)

Output rút gọn

'data.frame': 200 obs. of 4 variables:
 $ id        : int
 $ num_awards: int
 $ prog      : int
 $ math      : int
Rows: 200; Columns: 4

Câu 7. Nhận diện biến mục tiêu và biến độc lập.
Bài làm: Biến mục tiêu là num_awards, thể hiện số giải thưởng đạt được, đây là biến đếm nguyên không âm. Biến độc lập gồm prog là loại chương trình học và math là điểm toán. Vì num_awards nhận các giá trị 0, 1, 2, 3… nên mô hình Poisson phù hợp hơn OLS.

Câu 8. Chuyển prog thành factor và đặt General làm tham chiếu.
Bài làm:

df$prog <- factor(
  df$prog,
  levels = c(1, 2, 3),
  labels = c("General", "Academic", "Vocational")
)
df$prog <- relevel(df$prog, ref = "General")
table(df$prog)

Output

   General   Academic Vocational 
        45        105         50

Câu 9. Kiểm tra mean và variance của num_awards.
Bài làm:

mean(df$num_awards)
var(df$num_awards)

Output

[1] 0.63
[1] 1.108643

Nhận xét: Phương sai thô lớn hơn trung bình, gợi ý dữ liệu có thể có overdispersion. Tuy nhiên, đây mới là kiểm tra mô tả trên biến Y chưa kiểm soát progmath, nên cần chẩn đoán lại sau khi ước lượng mô hình.

Câu 10. Trực quan hóa phân phối biến đếm.
Bài làm:

ggplot(df, aes(x = num_awards)) +
  geom_histogram(binwidth = 1, boundary = -0.5) +
  labs(
    title = "Phân phối số giải thưởng",
    x = "Số giải thưởng",
    y = "Tần số"
  ) +
  theme_minimal()

Nhận xét: Phân phối lệch phải và tập trung nhiều ở giá trị 0. Đây là dạng rất thường gặp của dữ liệu đếm: phần lớn học sinh không nhận giải, trong khi chỉ một số ít có từ một giải trở lên.


PHẦN B: HỒI QUY POISSON VÀ DIỄN GIẢI HỆ SỐ

Câu 11. Xây dựng mô hình Poisson Regression.
Bài làm:

model_p <- glm(num_awards ~ prog + math, data = df, family = poisson)

Câu 12. In tóm tắt mô hình và xác định biến có ý nghĩa.
Bài làm:

summary(model_p)

Output

Coefficients:
               Estimate Std. Error z value Pr(>|z|)    
(Intercept)    -5.24712    0.65845  -7.969 1.60e-15 ***
progAcademic    1.08386    0.35825   3.025  0.00248 ** 
progVocational  0.36981    0.44107   0.838  0.40179    
math            0.07015    0.01060   6.619 3.63e-11 ***

Null deviance: 287.67 on 199 df
Residual deviance: 189.45 on 196 df
AIC: 373.5

Phân tích output: progAcademicmath có ý nghĩa thống kê rất rõ vì p-value lần lượt là 0.00248 và 3.63e-11. Điều này cho thấy, khi giữ các biến khác không đổi, chương trình Academic và điểm toán đều liên hệ tích cực với số giải thưởng kỳ vọng. Ngược lại, progVocational có p-value = 0.40179, chưa đủ bằng chứng thống kê để khẳng định khác biệt so với nhóm General. Residual deviance giảm mạnh so với Null deviance, cho thấy mô hình có thêm progmath giải thích được một phần đáng kể biến thiên của số giải thưởng.

Câu 13. Chuyển hệ số log thành Incident Rate Ratio.
Bài làm:

exp(coef(model_p))

Output

(Intercept)   progAcademic progVocational           math 
 0.00526263      2.95606545     1.44745846     1.07267164

Diễn giải: Giữ điểm toán như nhau, học sinh chương trình Academic có số giải thưởng kỳ vọng cao gấp 2.96 lần học sinh chương trình General, tức cao hơn khoảng 195.6%. Với mỗi điểm toán tăng thêm, số giải thưởng kỳ vọng tăng gấp 1.0727 lần, tương đương tăng khoảng 7.27%, giữ chương trình học không đổi. progVocational có IRR = 1.45 nhưng không có ý nghĩa thống kê, nên không nên diễn giải như một kết luận chắc chắn.

Câu 14. Kiểm tra Overdispersion.
Bài làm:

dispersion_ratio <- deviance(model_p) / df.residual(model_p)
dispersion_ratio

AER::dispersiontest(model_p)

Output

[1] 0.9666

Overdispersion test
z = 0.53224, p-value = 0.2973
dispersion = 1.047254

Nhận xét: Tỷ số Residual Deviance/df khoảng 0.97, rất gần 1. Kiểm định dispersiontest() có p-value = 0.2973, lớn hơn 0.05, nên chưa có bằng chứng thống kê rõ ràng về overdispersion sau khi đưa progmath vào mô hình. Điều này quan trọng vì nếu chỉ nhìn mean/variance thô, ta có thể kết luận vội rằng dữ liệu quá phân tán. Ở đây, các biến giải thích đã hấp thụ phần lớn dị biệt, khiến mô hình Poisson vẫn có thể chấp nhận được.

Câu 15. Xây dựng mô hình Quasi-Poisson để so sánh độ nhạy.
Bài làm:

model_qp <- glm(num_awards ~ prog + math, data = df, family = quasipoisson)
summary(model_qp)

Nhận xét: Quasi-Poisson không thay đổi hệ số ước lượng chính, nhưng điều chỉnh sai số chuẩn theo hệ số phân tán. Vì dispersion gần 1, kết quả suy luận của Quasi-Poisson không khác nhiều so với Poisson.

Câu 16. So sánh sai số chuẩn giữa Poisson và Quasi-Poisson.
Bài làm:

se_compare <- data.frame(
  Variable = names(coef(model_p)),
  SE_Poisson = summary(model_p)$coefficients[, 2],
  SE_QuasiPoisson = summary(model_qp)$coefficients[, 2]
)
round(se_compare, 4)

Output

Variable        SE_Poisson SE_QuasiPoisson
(Intercept)        0.6585          0.6850
progAcademic       0.3583          0.3727
progVocational     0.4411          0.4589
math               0.0106          0.0110

Phân tích: Sai số chuẩn của Quasi-Poisson lớn hơn một chút so với Poisson. Điều này làm các kiểm định thận trọng hơn, nhưng mức thay đổi nhỏ nên kết luận chính vẫn giữ nguyên: progAcademicmath vẫn là các yếu tố quan trọng; progVocational vẫn chưa có ý nghĩa thống kê.

Câu 17. Dự báo số giải thưởng trung bình cho học sinh Academic có điểm toán 60.
Bài làm:

new_data <- data.frame(
  prog = factor("Academic", levels = levels(df$prog)),
  math = 60
)

predict(model_qp, newdata = new_data, type = "response")

Output

       1 
1.046947

Diễn giải: Với học sinh thuộc chương trình Academic và điểm toán 60, số giải thưởng kỳ vọng là khoảng 1.05 giải. Đây là giá trị trung bình kỳ vọng, không có nghĩa học sinh đó chắc chắn nhận đúng 1 giải; trong dữ liệu đếm, một cá nhân cụ thể vẫn có thể nhận 0, 1, 2 hoặc nhiều giải hơn.


PHẦN D: TRỰC QUAN HÓA & BÁO CÁO

Câu 18. Vẽ số giải thưởng dự báo theo điểm toán và chương trình học.
Bài làm:

grid <- expand.grid(
  math = seq(min(df$math), max(df$math), length.out = 100),
  prog = levels(df$prog)
)

grid$predicted <- predict(model_p, newdata = grid, type = "response")

ggplot(grid, aes(x = math, y = predicted, color = prog)) +
  geom_line(linewidth = 1.1) +
  labs(
    title = "Số giải thưởng dự báo theo điểm toán và chương trình học",
    x = "Điểm toán",
    y = "Số giải thưởng kỳ vọng",
    color = "Chương trình học"
  ) +
  theme_minimal()

Câu 19. Nhận xét đồ thị.
Bài làm: Đường của nhóm Academic nằm cao nhất trên toàn bộ miền điểm toán, phản ánh IRR của progAcademic lớn và có ý nghĩa thống kê. Các đường dự báo tăng theo điểm toán do hệ số math dương; vì dùng log link, mức tăng là dạng nhân nên đường cong đi lên theo kiểu phi tuyến trên thang gốc của số giải thưởng. Nhóm Vocational nằm cao hơn General nhưng khoảng cách này chưa đủ chắc chắn về mặt thống kê vì p-value của progVocational không nhỏ. Đồ thị giúp thấy rõ rằng điểm toán và chương trình học tác động đồng thời: học sinh Academic với điểm toán cao là nhóm có số giải thưởng kỳ vọng lớn nhất.

Câu 20. Báo cáo diễn giải kết quả phân tích (≥150 từ).
Bài làm:
Mô hình hồi quy Poisson cho thấy số giải thưởng của học sinh liên hệ rõ với chương trình học và điểm toán. Với cùng mức điểm toán, học sinh thuộc chương trình Academic có số giải thưởng kỳ vọng cao gấp khoảng 2.96 lần học sinh thuộc chương trình General, tương đương tăng khoảng 195.6%. Đây là khác biệt lớn và có ý nghĩa thống kê, cho thấy môi trường học thuật hoặc đặc điểm của nhóm học sinh Academic gắn với khả năng đạt giải cao hơn. Điểm toán cũng có tác động tích cực: mỗi điểm toán tăng thêm làm số giải thưởng kỳ vọng tăng khoảng 7.27%, giữ chương trình học không đổi. Ngược lại, chương trình Vocational có IRR lớn hơn 1 nhưng không có ý nghĩa thống kê, nên không nên kết luận chắc rằng nhóm này vượt General. Kiểm tra overdispersion cho thấy sau khi đưa progmath vào mô hình, chưa có bằng chứng quá phân tán nghiêm trọng; vì vậy mô hình Poisson có thể dùng làm mô hình chính. Tuy nhiên, kết quả vẫn cần được hiểu là mối liên hệ quan sát, không phải bằng chứng nhân quả tuyệt đối, vì học sinh chọn chương trình Academic có thể khác biệt sẵn về động lực, năng lực nền hoặc nguồn lực học tập.


PHẦN E — PROMPT AI NÂNG CAO

Prompt 1 — Tình huống thực tế theo ngành:

Tôi đang mô hình hóa số yêu cầu bồi thường bảo hiểm trong một năm bằng Poisson Regression.
Dữ liệu có nhiều khách hàng không yêu cầu bồi thường và một số ít khách hàng có rất nhiều yêu cầu.
Hãy phân tích giúp tôi: khi nào Poisson còn phù hợp, khi nào cần Quasi-Poisson,
Negative Binomial hoặc Zero-Inflated Model? Hãy liên hệ đến overdispersion và excess zeros.

Tóm tắt trả lời: AI giải thích rằng Poisson phù hợp khi số yêu cầu phát sinh độc lập và phương sai xấp xỉ trung bình. Nếu phương sai lớn hơn trung bình do rủi ro không đồng nhất giữa khách hàng, Quasi-Poisson hoặc Negative Binomial phù hợp hơn. Nếu có quá nhiều số 0 vì nhiều khách hàng gần như không có khả năng yêu cầu bồi thường, nên cân nhắc Zero-Inflated Model. Tôi rút ra rằng kiểm tra overdispersion và số lượng zero phải đi trước lựa chọn mô hình.

Prompt 2 — Phản biện kỹ thuật & lỗi thường gặp:

Hãy phản biện cách làm: lấy log(num_awards + 1) rồi chạy OLS thay cho Poisson Regression.
Tôi muốn biết lỗi thống kê, lỗi diễn giải và hậu quả khi chuyển ngược dự báo về thang số đếm.

Tóm tắt trả lời: AI chỉ ra rằng log(y+1) + OLS làm mất bản chất phân phối rời rạc, không mô hình hóa đúng phương sai phụ thuộc vào kỳ vọng và gây lệch khi chuyển ngược do Jensen’s inequality. Hệ số OLS trên thang log cũng không giống IRR của Poisson. Cách này có thể dùng như mô tả thô, nhưng không nên thay thế Poisson khi mục tiêu là suy luận thống kê cho dữ liệu đếm.


PHẦN F — AI-GRADER PROMPT

Tôi vừa hoàn thành bài Poisson Regression và MLE. Hãy đánh giá bài của tôi theo 4 tiêu chí:

1. Tính đúng đắn thống kê: Mô hình `glm(..., family = poisson)` có phù hợp với biến đếm không?
2. Kiểm tra overdispersion: Tôi có phân biệt mean/variance thô với chẩn đoán sau mô hình không?
3. Diễn giải IRR: Tôi có diễn giải `exp(coef)` theo số nhân, không đọc hệ số như OLS không?
4. Trực quan hóa và báo cáo: Đồ thị predicted counts có giúp giải thích kết quả cho người đọc không?

Code/output trọng tâm:
- mean(num_awards)=0.63; var(num_awards)=1.108643
- model_p <- glm(num_awards ~ prog + math, family = poisson)
- progAcademic: beta=1.08386, p=0.00248, IRR=2.9561
- math: beta=0.07015, p=3.63e-11, IRR=1.0727
- dispersion ratio=0.9666; dispersiontest p-value=0.2973
- predict Academic, math=60: expected count=1.046947

Tự đánh giá theo rubric

Tiêu chí Minh chứng Điểm
Tính đúng đắn thống kê Chọn đúng Poisson cho biến đếm num_awards, có mô hình Quasi-Poisson để kiểm tra độ nhạy. 2.5/2.5
Kiểm tra overdispersion Có mean/variance thô, deviance/df và dispersiontest(); kết luận không vội vàng. 2.5/2.5
Diễn giải IRR Diễn giải Academic = 2.96 lần và math tăng 7.27% theo số nhân. 2.5/2.5
Trực quan hóa & báo cáo Đồ thị predicted counts rõ theo mathprog, báo cáo dài hơn 150 từ. 2.5/2.5
Tổng Bài đáp ứng đầy đủ yêu cầu Ex8 và có phân tích output sâu. 10.0/10.0

PHẦN 6: TỰ KIỂM TRA TRƯỚC KHI NỘP