Un seul modèle avec interaction

Régression intermédiaire avec statsmodels en Python

Maarten Van den Broeck

Content Developer at DataCamp

Qu'est-ce qu'une interaction ?

Dans l'ensemble de données sur les poissons

  • Les espèces ont des rapports masse/longueur différents.
  • L'effet de la longueur sur la masse prévue varie selon l'espèce.

 

De façon générale

L'effet d'une variable explicative sur la réponse prévue change selon la valeur d'une autre variable explicative.

Régression intermédiaire avec statsmodels en Python

Spécifier des interactions

Sans interaction

response ~ explntry1 + explntry2

Avec interaction (implicite)

response_var ~ explntry1 * explntry2

Avec interaction (explicite)

response ~ explntry1 + explntry2 + explntry1:explntry2

Sans interaction

mass_g ~ length_cm + species

Avec interaction (implicite)

mass_g ~ length_cm * species

Avec interaction (explicite)

mass_g ~ length_cm + species + length_cm:species
Régression intermédiaire avec statsmodels en Python

Exécuter le modèle

mdl_mass_vs_both = ols("mass_g ~ length_cm * species", data=fish).fit()

print(mdl_mass_vs_both.params)
Intercept                    -1035.3476
species[T.Perch]               416.1725
species[T.Pike]               -505.4767
species[T.Roach]               705.9714
length_cm                       54.5500
length_cm:species[T.Perch]     -15.6385
length_cm:species[T.Pike]       -1.3551
length_cm:species[T.Roach]     -31.2307
Régression intermédiaire avec statsmodels en Python

Coefficients plus faciles à interpréter

mdl_mass_vs_both_inter = ols("mass_g ~ species + species:length_cm + 0", data=fish).fit()

print(mdl_mass_vs_both_inter.params)
species[Bream]             -1035.3476
species[Perch]              -619.1751
species[Pike]              -1540.8243
species[Roach]              -329.3762
species[Bream]:length_cm      54.5500
species[Perch]:length_cm      38.9115
species[Pike]:length_cm       53.1949
species[Roach]:length_cm      23.3193
Régression intermédiaire avec statsmodels en Python

Des nombres familiers

print(mdl_mass_vs_both_inter.params)
species[Bream]             -1035.3476
species[Perch]              -619.1751
species[Pike]              -1540.8243
species[Roach]              -329.3762
species[Bream]:length_cm      54.5500
species[Perch]:length_cm      38.9115
species[Pike]:length_cm       53.1949
species[Roach]:length_cm      23.3193
print(mdl_bream.params)
Intercept   -1035.3476
length_cm      54.5500
Régression intermédiaire avec statsmodels en Python

Passons à la pratique !

Régression intermédiaire avec statsmodels en Python

Preparing Video For Download...