Vượt xa ý nghĩa thống kê: Hiểu về độ lớn hiệu ứng
Độ lớn hiệu ứng đo độ lớn của sự khác biệt hoặc mối quan hệ, độc lập với kích thước mẫu. Trong khi giá trị p cho bạn biết liệu một hiệu ứng có ý nghĩa thống kê hay không, độ lớn hiệu ứng cho bạn biết hiệu ứng đó có ý nghĩa thực tiễn ra sao. Sự phân biệt này rất quan trọng cho ra quyết định dựa trên bằng chứng trong nghiên cứu, y học, giáo dục và kinh doanh.
Hãy xem xét một thử nghiệm dược phẩm trong đó thuốc mới cho thấy cải thiện có ý nghĩa thống kê (p < 0,001) so với giả dược. Không có độ lớn hiệu ứng, bạn không biết cải thiện là 0,1% hay 50%. Độ lớn hiệu ứng cung cấp bối cảnh quan trọng này, giúp các bên liên quan xác định liệu hiệu ứng có xứng đáng với chi phí, tác dụng phụ hay nỗ lực triển khai không.
Đại lượng đo độ lớn hiệu ứng phổ biến nhất để so sánh hai nhóm là Cohen's d, biểu thị sự khác biệt giữa trung bình theo đơn vị độ lệch chuẩn. Chuẩn hóa này cho phép so sánh giữa các nghiên cứu và thang đo khác nhau.
Tại sao độ lớn hiệu ứng quan trọng
Ý nghĩa thống kê bị ảnh hưởng mạnh bởi kích thước mẫu. Với mẫu đủ lớn, ngay cả sự khác biệt nhỏ nhặt cũng trở nên “có ý nghĩa.” Ngược lại, các hiệu ứng quan trọng có thể không đạt ý nghĩa trong mẫu nhỏ. Độ lớn hiệu ứng giải quyết vấn đề này bằng cách cung cấp thước đo độc lập với kích thước mẫu.
Bẫy ý nghĩa
Lý do chính để sử dụng độ lớn hiệu ứng:
- Phân tích tổng hợp: Độ lớn hiệu ứng có thể kết hợp qua các nghiên cứu để ước lượng hiệu ứng tổng thể
- Phân tích công suất: Cần thiết để tính kích thước mẫu cho nghiên cứu tương lai
- Quyết định thực tiễn: Giúp xác định liệu can thiệp có đáng triển khai không
- Tái lặp: Cung cấp mục tiêu cho nghiên cứu tái lặp
Cohen's d: Đại lượng đo độ lớn hiệu ứng chuẩn
Cohen's d biểu thị sự khác biệt giữa trung bình hai nhóm theo đơn vị độ lệch chuẩn gộp:
Cohen's d
Trong đó M₁ và M₂ là trung bình nhóm, và sp là độ lệch chuẩn gộp tính bằng:
Độ lệch chuẩn gộp
Dấu của d chỉ hướng: dương khi M₁ > M₂, âm khi M₁ < M₂. Thường giá trị tuyệt đối |d| được báo cáo khi hướng rõ ràng từ bối cảnh.
Tại sao gộp độ lệch chuẩn?
Các đại lượng đo độ lớn hiệu ứng thay thế
Dù Cohen's d phổ biến nhất, có các phương án thay thế cho tình huống cụ thể:
Hedges' g: Độ lớn hiệu ứng đã hiệu chỉnh chệch
Cohen's d hơi đánh giá cao độ lớn hiệu ứng tổng thể trong mẫu nhỏ. Hedges' g áp dụng hệ số hiệu chỉnh:
Hiệu chỉnh Hedges' g
Với mẫu trên 20 mỗi nhóm, sự khác biệt không đáng kể. Với mẫu nhỏ (n < 20), Hedges' g được ưu tiên.
Glass's Δ: Khi phương sai khác nhau
Khi một nhóm là nhóm đối chứng với biến thiên đã biết, chỉ dùng độ lệch chuẩn nhóm đối chứng làm mẫu số:
Glass's Delta
Hữu ích khi can thiệp có thể ảnh hưởng đến phương sai (ví dụ: can thiệp giúp người kém hơn nhiều hơn người giỏi).
Diễn giải độ lớn hiệu ứng: Hướng dẫn của Cohen
Jacob Cohen đề xuất các quy ước sau để diễn giải giá trị d:
| Độ lớn hiệu ứng (d) | Diễn giải | Trùng lặp |
|---|---|---|
| 0,2 | Nhỏ | 85% trùng lặp giữa các nhóm |
| 0,5 | Trung bình | 67% trùng lặp giữa các nhóm |
| 0,8 | Lớn | 53% trùng lặp giữa các nhóm |
| 1,2 | Rất lớn | 40% trùng lặp giữa các nhóm |
| 2,0 | Khổng lồ | 19% trùng lặp giữa các nhóm |
Bối cảnh quan trọng
Ví dụ có lời giải: Can thiệp giáo dục
Trường kiểm tra chương trình đọc mới. Nhóm đối chứng (n=25): trung bình=72, SD=12. Nhóm can thiệp (n=30): trung bình=79, SD=14. Tính Cohen's d:
Tính phương sai gộp
Tính SD gộp
Tính Cohen's d
Diễn giải
Điều này có nghĩa nếu bạn chọn ngẫu nhiên một học sinh từ nhóm can thiệp và một từ nhóm đối chứng, học sinh nhóm can thiệp sẽ đạt điểm cao hơn khoảng 64% thời gian (tính từ mức trùng lặp).
Triển khai Python
Tính độ lớn hiệu ứng bằng lập trình với khoảng tin cậy:
import numpy as np
from scipy import stats
def cohens_d(group1, group2):
"""Calculate Cohen's d for two independent groups."""
n1, n2 = len(group1), len(group2)
var1, var2 = np.var(group1, ddof=1), np.var(group2, ddof=1)
# Pooled standard deviation
pooled_std = np.sqrt(((n1-1)*var1 + (n2-1)*var2) / (n1+n2-2))
# Cohen's d
d = (np.mean(group1) - np.mean(group2)) / pooled_std
return d
def hedges_g(group1, group2):
"""Calculate Hedges' g (bias-corrected effect size)."""
n1, n2 = len(group1), len(group2)
d = cohens_d(group1, group2)
# Correction factor for small sample bias
correction = 1 - 3 / (4*(n1+n2) - 9)
return d * correction
# Example usage
control = [68, 72, 75, 70, 69, 74, 71, 73, 76, 72]
treatment = [75, 79, 82, 78, 80, 77, 81, 76, 83, 79]
d = cohens_d(treatment, control)
g = hedges_g(treatment, control)
print(f"Cohen's d: {d:.3f}")
print(f"Hedges' g: {g:.3f}")