Paradoxul lui Simpson

Regresie intermediară cu statsmodels în Python

Maarten Van den Broeck

Content Developer at DataCamp

Un paradox ingenios!

Paradoxul lui Simpson apare când tendința unui model pe întregul set de date diferă semnificativ de tendințele modelelor pe subseturi.

tendință = coeficientul de pantă

Regresie intermediară cu statsmodels în Python

Date sintetice Simpson

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 grupuri de date, etichetate „A" până la „E"
1 https://www.rdocumentation.org/packages/datasauRus/topics/simpsons_paradox
Regresie intermediară cu statsmodels în Python

Regresii liniare

Întreg setul de date

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

print(mdl_whole.params)
Intercept           -38.554  
x                     1.751  

Pe grupuri

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
Regresie intermediară cu statsmodels în Python

Reprezentarea întregului set de date

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

Grafic de dispersie pentru setul de date al Paradoxului Simpson, toate grupurile combinate. Tendința este pozitivă.png

Regresie intermediară cu statsmodels în Python

Reprezentarea pe grupuri

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

Grafic de dispersie pentru setul de date al Paradoxului Simpson, colorat pe grup. Tendința este acum negativă pentru fiecare grup.png

Regresie intermediară cu statsmodels în Python

Reconcilierea diferenței

Recomandare utilă

Dacă este posibil, reprezentați grafic setul de date.

Recomandare generală

Nu există un model universal cel mai bun – depinde de setul de date și de întrebarea la care doriți să răspundeți.

Altă recomandare utilă

Formulați o întrebare înainte de a începe modelarea.

Regresie intermediară cu statsmodels în Python

Exemplu: scorul la teste

scatter-video-games-whole.png

scatter-video-games-by-group.png

Regresie intermediară cu statsmodels în Python

Exemplu: boli infecțioase

scatter-cities-whole.png

scatter-cities-by-group.png

Regresie intermediară cu statsmodels în Python

Reconcilierea diferenței

  • De obicei (nu întotdeauna), modelul grupat oferă mai multe informații.
  • Lipsesc variabile explicative?
  • Contextul contează.
Regresie intermediară cu statsmodels în Python

Paradoxul lui Simpson în seturi reale de date

  • Paradoxul este de obicei mai puțin evident.
  • Puteți observa o pantă zero, nu o schimbare completă de direcție.
  • Poate să nu apară în fiecare grup.
Regresie intermediară cu statsmodels în Python

Să exersăm!

Regresie intermediară cu statsmodels în Python

Preparing Video For Download...