Nghịch lý Simpson

Hồi quy trung cấp với statsmodels trong Python

Maarten Van den Broeck

Content Developer at DataCamp

Một nghịch lý tinh vi!

Nghịch lý Simpson xảy ra khi xu hướng của mô hình trên toàn bộ dữ liệu rất khác với các xu hướng của mô hình trên các tập con của dữ liệu.

xu hướng = hệ số dốc

Hồi quy trung cấp với statsmodels trong Python

Dữ liệu Simpson tổng hợp

x y group
62.24344 70.60840 D
52.33499 14.70577 B
56.36795 46.39554 C
66.80395 66.17487 D
66.53605 89.24658 E
62.38129 91.45260 E
  • 5 nhóm dữ liệu, nhãn từ "A" đến "E"
1 https://www.rdocumentation.org/packages/datasauRus/topics/simpsons_paradox
Hồi quy trung cấp với statsmodels trong Python

Hồi quy tuyến tính

Toàn bộ dữ liệu

mdl_whole = ols("y ~ x", 
                 data=simpsons_paradox).fit()

print(mdl_whole.params)
Intercept           -38.554  
x                     1.751  

Theo nhóm

mdl_by_group = ols("y ~ group + group:x + 0",
                   data = simpsons_paradox).fit()

print(mdl_by_group.params)
  groupA    groupB    groupC    groupD    groupE  
 32.5051   67.3886   99.6333  132.3932  123.8242  
groupA:x  groupB:x  groupC:x  groupD:x  groupE:x  
 -0.6266   -1.0105   -0.9940   -0.9908   -0.5364
Hồi quy trung cấp với statsmodels trong Python

Vẽ toàn bộ dữ liệu

sns.regplot(x="x",
            y="y",
            data=simpsons_paradox,
            ci=None)

Biểu đồ scatter của bộ dữ liệu Nghịch lý Simpson, gộp tất cả nhóm. Xu hướng là dương.png

Hồi quy trung cấp với statsmodels trong Python

Vẽ theo nhóm

sns.lmplot(x="x",
           y="y",
           data=simpsons_paradox,
           hue="group",
           ci=None)

Biểu đồ scatter của bộ dữ liệu Nghịch lý Simpson, tô màu theo nhóm. Giờ đây từng nhóm có xu hướng âm.png

Hồi quy trung cấp với statsmodels trong Python

Hòa giải khác biệt

Lời khuyên hay

Nếu có thể, hãy vẽ trực quan bộ dữ liệu.

Lời khuyên phổ biến

Không có mô hình “tốt nhất” nói chung – nó phụ thuộc vào dữ liệu và câu hỏi bạn muốn trả lời.

Thêm một lời khuyên hay

Nêu rõ câu hỏi trước khi mô hình hóa.

Hồi quy trung cấp với statsmodels trong Python

Ví dụ điểm kiểm tra

scatter-video-games-whole.png

scatter-video-games-by-group.png

Hồi quy trung cấp với statsmodels trong Python

Ví dụ bệnh truyền nhiễm

scatter-cities-whole.png

scatter-cities-by-group.png

Hồi quy trung cấp với statsmodels trong Python

Hòa giải khác biệt

  • Thông thường (nhưng không phải luôn luôn) mô hình theo nhóm cho nhiều hiểu biết hơn.
  • Bạn có đang thiếu biến giải thích không?
  • Ngữ cảnh rất quan trọng.
Hồi quy trung cấp với statsmodels trong Python

Nghịch lý Simpson trong dữ liệu thực

  • Nghịch lý thường ít rõ ràng hơn.
  • Bạn có thể thấy hệ số dốc bằng 0 thay vì đảo chiều hoàn toàn.
  • Có thể không xuất hiện ở mọi nhóm.
Hồi quy trung cấp với statsmodels trong Python

Ayo berlatih!

Hồi quy trung cấp với statsmodels trong Python

Preparing Video For Download...