La paradoja de Simpson

Regresión intermedia con statsmodels en Python

Maarten Van den Broeck

Content Developer at DataCamp

¡Una paradoja muy ingeniosa!

La paradoja de Simpson ocurre cuando la tendencia de un modelo en todo el conjunto de datos difiere mucho de las tendencias de los modelos en subconjuntos del conjunto.

tendencia = coeficiente de pendiente

Regresión intermedia con statsmodels en Python

Datos sintéticos de 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 grupos de datos, etiquetados de "A" a "E"
1 https://www.rdocumentation.org/packages/datasauRus/topics/simpsons_paradox
Regresión intermedia con statsmodels en Python

Regresiones lineales

Conjunto completo

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

print(mdl_whole.params)
Intercept           -38.554  
x                     1.751  

Por grupo

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
Regresión intermedia con statsmodels en Python

Gráfica del conjunto completo

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

Diagrama de dispersión del conjunto de la paradoja de Simpson, todos los grupos combinados. La tendencia es positiva.png

Regresión intermedia con statsmodels en Python

Gráfica por grupo

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

Diagrama de dispersión del conjunto de la paradoja de Simpson, coloreado por grupo. Ahora la tendencia es negativa en cada grupo.png

Regresión intermedia con statsmodels en Python

Conciliar la diferencia

Buen consejo

Si puedes, grafica el conjunto de datos.

Consejo habitual

No hay un “mejor” modelo en general: depende del conjunto de datos y de la pregunta que quieras responder.

Más buen consejo

Formula la pregunta antes de modelar.

Regresión intermedia con statsmodels en Python

Ejemplo de notas de examen

scatter-video-games-whole.png

scatter-video-games-by-group.png

Regresión intermedia con statsmodels en Python

Ejemplo de enfermedad infecciosa

scatter-cities-whole.png

scatter-cities-by-group.png

Regresión intermedia con statsmodels en Python

Conciliar la diferencia

  • Normalmente (no siempre) el modelo por grupos aporta más información.
  • ¿Faltan variables explicativas?
  • El contexto importa.
Regresión intermedia con statsmodels en Python

La paradoja de Simpson en datos reales

  • Suele ser menos evidente.
  • Puedes ver pendiente cero en lugar de cambio total de dirección.
  • Puede no aparecer en todos los grupos.
Regresión intermedia con statsmodels en Python

¡Vamos a practicar!

Regresión intermedia con statsmodels en Python

Preparing Video For Download...