Simpson's Paradox

इंटरमीडिएट Regression with statsmodels in Python

Maarten Van den Broeck

Content Developer at DataCamp

A most ingenious paradox!

Simpson's Paradox तब होता है जब पूरे डेटासेट पर मॉडल का ट्रेंड, डेटासेट के सबसेट्स पर बने मॉडलों के ट्रेंड से बहुत अलग हो.

trend = slope coefficient

इंटरमीडिएट Regression with statsmodels in Python

Synthetic Simpson data

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 ग्रुप, "A" से "E" तक लेबल किए हुए
1 https://www.rdocumentation.org/packages/datasauRus/topics/simpsons_paradox
इंटरमीडिएट Regression with statsmodels in Python

Linear regressions

Whole dataset

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

print(mdl_whole.params)
Intercept           -38.554  
x                     1.751  

By group

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
इंटरमीडिएट Regression with statsmodels in Python

पूरे डेटासेट का प्लॉट

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

Simpson Paradox डेटासेट का स्कैटर प्लॉट, सभी ग्रुप मिले हुए. ट्रेंड पॉजिटिव है.png

इंटरमीडिएट Regression with statsmodels in Python

ग्रुप के अनुसार प्लॉटिंग

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

Simpson Paradox डेटासेट का स्कैटर प्लॉट, ग्रुप के रंगों के साथ. अब हर ग्रुप में ट्रेंड नेगेटिव है.png

इंटरमीडिएट Regression with statsmodels in Python

अंतर को समझना

अच्छा सुझाव

संभव हो तो डेटासेट को प्लॉट करें.

आम सलाह

आप सामान्य रूप से सर्वश्रेष्ठ मॉडल नहीं चुन सकते — यह डेटासेट और आपके प्रश्न पर निर्भर करता है.

और अच्छा सुझाव

मॉडलिंग शुरू करने से पहले प्रश्न साफ लिखें.

इंटरमीडिएट Regression with statsmodels in Python

टेस्ट स्कोर उदाहरण

scatter-video-games-whole.png

scatter-video-games-by-group.png

इंटरमीडिएट Regression with statsmodels in Python

संक्रामक रोग उदाहरण

scatter-cities-whole.png

scatter-cities-by-group.png

इंटरमीडिएट Regression with statsmodels in Python

अंतर को समझना

  • आम तौर पर (पर हमेशा नहीं) ग्रुप्ड मॉडल ज़्यादा इनसाइट देता है.
  • क्या आप explanatory variables मिस कर रहे हैं?
  • संदर्भ महत्वपूर्ण है.
इंटरमीडिएट Regression with statsmodels in Python

वास्तविक डेटासेट में Simpson's paradox

  • वास्तविक डेटा में विरोधाभास अक्सर कम स्पष्ट होता है.
  • आपको दिशा पूरी तरह पलटने के बजाय zero slope दिख सकता है.
  • यह हर ग्रुप में दिखे, ज़रूरी नहीं.
इंटरमीडिएट Regression with statsmodels in Python

अभ्यास करते हैं!

इंटरमीडिएट Regression with statsmodels in Python

Preparing Video For Download...