Buổi 5: Mô hình Thống kê và Kiểm định Giả thuyết trong R
Mục tiêu
Học viên sẽ hiểu cách áp dụng các phương pháp thống kê và kiểm định giả thuyết để rút ra thông tin từ dữ liệu. Sau buổi học, học viên sẽ có khả năng:
- Thực hiện các kiểm định thống kê cơ bản (t-test, chi-squared test, correlation test).
- Xây dựng và giải thích mô hình hồi quy tuyến tính.
- Kiểm tra các giả định của mô hình và chẩn đoán kết quả.
Nội dung chi tiết
1. Giới thiệu về Mô hình Thống kê
Mô hình thống kê là gì?
Mô hình thống kê là các công cụ toán học được sử dụng để mô tả mối quan hệ giữa các biến trong dữ liệu. Trong khoa học dữ liệu, mô hình thống kê giúp:
- Hiểu các mối quan hệ (ví dụ: biến nào ảnh hưởng đến biến nào).
- Dự đoán giá trị của một biến dựa trên các biến khác.
Phân biệt Thống kê Mô tả và Thống kê Suy luận:
- Thống kê mô tả (Descriptive Statistics): Tóm tắt dữ liệu (trung bình, trung vị, độ lệch chuẩn, v.v.). Ví dụ: Trung bình quãng đường đi được (
mpg
) của xe trong tập dữ liệumtcars
là 20.09. - Thống kê suy luận (Inferential Statistics): Suy luận về tổng thể dựa trên mẫu dữ liệu (kiểm định giả thuyết, dự đoán, v.v.). Ví dụ: Kiểm tra xem quãng đường trung bình của xe 4 xi-lanh có khác với xe 6 xi-lanh không.
Ứng dụng trong khoa học dữ liệu:
- Kiểm định giả thuyết để xác nhận các giả định (ví dụ: liệu hai nhóm có khác biệt đáng kể không?).
- Xây dựng mô hình dự đoán (ví dụ: dự đoán giá nhà dựa trên diện tích).
2. Các Kiểm định Thống kê Cơ bản
Mục đích: Sử dụng các kiểm định thống kê để kiểm tra các giả thuyết về dữ liệu.
Các kiểm định phổ biến:
1. Kiểm định T (T-test): So sánh trung bình giữa hai nhóm.
Ví dụ: Kiểm tra xem quãng đường trung bình (mpg
) của xe 4 xi-lanh (cyl = 4
) có khác với xe 6 xi-lanh (cyl = 6
) không.
# Tải dữ liệu mtcars data(mtcars) # Lọc dữ liệu cho 4 và 6 xi-lanh mpg_cyl4 <- mtcars$mpg[mtcars$cyl == 4] mpg_cyl6 <- mtcars$mpg[mtcars$cyl == 6] # Thực hiện kiểm định T t_test_result <- t.test(mpg_cyl4, mpg_cyl6, var.equal = FALSE) print(t_test_result)
Kết quả mẫu:
Welch Two Sample t-test data: mpg_cyl4 and mpg_cyl6 t = 3.585, df = 11.5, p-value = 0.0038 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 3.123 12.877 sample estimates: mean of x mean of y 26.66 19.74
Giải thích:
- Giá trị p (p-value) = 0.0038 < 0.05 → Bác bỏ giả thuyết không (H0: trung bình hai nhóm bằng nhau).
- Kết luận: Quãng đường trung bình của xe 4 xi-lanh (26.66) cao hơn đáng kể so với xe 6 xi-lanh (19.74).
2. Kiểm định Chi-bình phương (Chi-squared Test): Kiểm tra mối quan hệ giữa hai biến phân loại.
Ví dụ: Kiểm tra xem số xi-lanh (cyl
) và loại hộp số (am
, 0 = tự động, 1 = số sàn) có liên quan đến nhau không.
# Tạo bảng tần số table_data <- table(mtcars$cyl, mtcars$am) print(table_data) # Thực hiện kiểm định Chi-bình phương chi_test_result <- chisq.test(table_data) print(chi_test_result)
Kết quả mẫu:
0 1 4 8 3 6 4 3 8 12 2 Pearson's Chi-squared test data: table_data X-squared = 8.741, df = 2, p-value = 0.0126
Giải thích:
- Giá trị p = 0.0126 < 0.05 → Bác bỏ giả thuyết không (H0: không có mối quan hệ giữa hai biến).
- Kết luận: Số xi-lanh và loại hộp số có mối quan hệ đáng kể.
3. Kiểm định Tương quan (Correlation Test): Đo lường mức độ quan hệ giữa hai biến liên tục.
Ví dụ: Kiểm tra mối quan hệ giữa quãng đường (mpg
) và trọng lượng xe (wt
).
# Thực hiện kiểm định tương quan cor_test_result <- cor.test(mtcars$mpg, mtcars$wt) print(cor_test_result)
Kết quả mẫu:
Pearson's product-moment correlation data: mtcars$mpg and mtcars$wt t = -9.559, df = 30, p-value = 1.294e-10 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: -0.9338 -0.7441 sample estimates: cor -0.8676594
Giải thích:
- Hệ số tương quan (cor) = -0.8677 → Tương quan nghịch mạnh (khi trọng lượng tăng, quãng đường giảm).
- Giá trị p = 1.294e-10 < 0.05 → Mối quan hệ này có ý nghĩa thống kê.
3. Hồi quy Tuyến tính trong R
Hồi quy tuyến tính là gì?
Hồi quy tuyến tính mô hình hóa mối quan hệ tuyến tính giữa biến phụ thuộc (dependent variable) và một hoặc nhiều biến độc lập (independent variables). Công thức:
\[ y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \dots + \epsilon \]
Trong đó:
- \(y\): Biến phụ thuộc (ví dụ:
mpg
). - \(x_1, x_2, \dots\): Biến độc lập (ví dụ:
wt
,hp
). - \(\beta_0\): Hệ số chặn (intercept).
- \(\beta_1, \beta_2, \dots\): Hệ số hồi quy.
- \(\epsilon\): Sai số.
Xây dựng mô hình hồi quy tuyến tính:
Ví dụ: Dự đoán quãng đường (mpg
) dựa trên trọng lượng xe (wt
) trong tập dữ liệu mtcars
.
# Xây dựng mô hình hồi quy tuyến tính lm_model <- lm(mpg ~ wt, data = mtcars) # Xem tóm tắt mô hình summary(lm_model)
Kết quả mẫu:
Call: lm(formula = mpg ~ wt, data = mtcars) Residuals: Min 1Q Median 3Q Max -4.5432 -2.3647 -0.1252 1.4096 6.8727 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 37.2851 1.8776 19.858 < 2e-16 *** wt -5.3445 0.5591 -9.559 1.29e-10 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.046 on 30 degrees of freedom Multiple R-squared: 0.7528, Adjusted R-squared: 0.7446 F-statistic: 91.38 on 1 and 30 DF, p-value: 1.294e-10
Giải thích:
- Hệ số (Coefficients):
- Hệ số chặn (Intercept) = 37.2851: Khi trọng lượng (
wt
) = 0, quãng đường dự đoán là 37.2851 (không có ý nghĩa thực tế vì trọng lượng không thể bằng 0). - Hệ số của
wt
= -5.3445: Khi trọng lượng tăng 1 đơn vị, quãng đường giảm trung bình 5.3445 đơn vị. - Giá trị p (Pr(>|t|)): Cả hai hệ số đều có p-value < 0.05 → Các hệ số có ý nghĩa thống kê.
- R-squared: 0.7528 → Mô hình giải thích được 75.28% sự biến thiên của
mpg
.
Dự đoán với mô hình:
# Dự đoán quãng đường cho một xe có trọng lượng wt = 3 new_data <- data.frame(wt = 3) predict(lm_model, newdata = new_data)
Kết quả: 21.2516 (quãng đường dự đoán là 21.25 mpg).
4. Chẩn đoán Mô hình
Mục đích: Kiểm tra xem mô hình hồi quy tuyến tính có thỏa mãn các giả định không. Các giả định chính:
- Mối quan hệ giữa biến độc lập và biến phụ thuộc là tuyến tính.
- Sai số có phân phối chuẩn với trung bình bằng 0.
- Phương sai của sai số là đồng nhất (homoscedasticity).
- Không có đa cộng tuyến (multicollinearity) nếu có nhiều biến độc lập.
Kiểm tra giả định:
1. Trực quan hóa sai số:
# Vẽ các biểu đồ chẩn đoán par(mfrow = c(2, 2)) # Chia cửa sổ thành 4 ô plot(lm_model)
- Residuals vs Fitted: Kiểm tra tính tuyến tính và phương sai đồng nhất. Nếu các điểm phân bố ngẫu nhiên quanh đường y = 0, giả định được thỏa mãn.
- Normal Q-Q: Kiểm tra phân phối chuẩn của sai số. Nếu các điểm nằm gần đường thẳng, sai số có phân phối chuẩn.
- Scale-Location: Kiểm tra phương sai đồng nhất. Nếu đường cong phẳng, phương sai là đồng nhất.
- Residuals vs Leverage: Phát hiện các điểm có ảnh hưởng lớn (outliers hoặc leverage points).
2. Kiểm tra phân phối chuẩn của sai số:
# Vẽ histogram của sai số residuals <- residuals(lm_model) hist(residuals, breaks = 20, main = "Phân phối Sai số", xlab = "Sai số") # Kiểm định Shapiro-Wilk để kiểm tra tính chuẩn shapiro.test(residuals)
Nếu p-value > 0.05, sai số có phân phối chuẩn.
3. Kết luận chẩn đoán:
- Nếu các giả định không được thỏa mãn, cần xem xét:
- Biến đổi dữ liệu (ví dụ: log transform).
- Sử dụng mô hình khác (ví dụ: hồi quy phi tuyến).
5. Bài tập Thực hành
Yêu cầu:
- Thực hiện kiểm định T để so sánh quãng đường trung bình (
mpg
) giữa xe có 4 xi-lanh và 8 xi-lanh trong tập dữ liệumtcars
. - Xây dựng một mô hình hồi quy tuyến tính để dự đoán
mpg
dựa trênwt
vàhp
(mã lực). - Giải thích kết quả và kiểm tra các giả định của mô hình.
Hướng dẫn chi tiết:
1. Kiểm định T:
# Lọc dữ liệu cho 4 và 8 xi-lanh mpg_cyl4 <- mtcars$mpg[mtcars$cyl == 4] mpg_cyl8 <- mtcars$mpg[mtcars$cyl == 8] # Thực hiện kiểm định T t.test(mpg_cyl4, mpg_cyl8, var.equal = FALSE)
Kết quả mong đợi: Quãng đường trung bình của xe 4 xi-lanh sẽ cao hơn đáng kể so với xe 8 xi-lanh (p-value < 0.05).
2. Xây dựng mô hình hồi quy tuyến tính với nhiều biến:
# Xây dựng mô hình với wt và hp lm_model_multi <- lm(mpg ~ wt + hp, data = mtcars) # Xem tóm tắt mô hình summary(lm_model_multi)
Kết quả mong đợi:
- Cả
wt
vàhp
đều có ảnh hưởng tiêu cực đếnmpg
(hệ số âm). - R-squared sẽ cao hơn so với mô hình chỉ dùng
wt
, vì thêmhp
giúp giải thích thêm sự biến thiên.
3. Chẩn đoán mô hình:
# Vẽ biểu đồ chẩn đoán par(mfrow = c(2, 2)) plot(lm_model_multi) # Kiểm tra phân phối chuẩn của sai số shapiro.test(residuals(lm_model_multi))
Kết quả mong đợi: Học viên sẽ nhận diện được các vấn đề (nếu có) như sai số không chuẩn, phương sai không đồng nhất, và đề xuất cách khắc phục.
Công cụ/Gói sử dụng
- R cơ bản: Các hàm như
t.test()
,chisq.test()
,cor.test()
,lm()
. stats
: Để thực hiện các kiểm định thống kê và hồi quy.ggplot2
: Để trực quan hóa (nếu cần vẽ biểu đồ).
Tóm tắt buổi học
Buổi 5 tập trung vào việc áp dụng các phương pháp thống kê để phân tích dữ liệu. Học viên được thực hành các kiểm định giả thuyết (t-test, chi-squared test, correlation test), xây dựng mô hình hồi quy tuyến tính, và kiểm tra các giả định của mô hình. Đây là bước quan trọng để hiểu dữ liệu trước khi chuyển sang các kỹ thuật máy học ở các buổi sau.