Me doy cuenta de que este tema ha aparecido varias veces antes, por ejemplo , aquí , pero todavía no estoy seguro de cómo interpretar mejor mi salida de regresión.
Tengo un conjunto de datos muy simple, que consiste en una columna de valores xy una columna de valores y , divididos en dos grupos según la ubicación (loc). Los puntos se ven así
Un colega ha planteado la hipótesis de que deberíamos ajustar regresiones lineales simples separadas para cada grupo, lo que he hecho usando y ~ x * C(loc)
. La salida se muestra a continuación.
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.873
Model: OLS Adj. R-squared: 0.866
Method: Least Squares F-statistic: 139.2
Date: Mon, 13 Jun 2016 Prob (F-statistic): 3.05e-27
Time: 14:18:50 Log-Likelihood: -27.981
No. Observations: 65 AIC: 63.96
Df Residuals: 61 BIC: 72.66
Df Model: 3
Covariance Type: nonrobust
=================================================================================
coef std err t P>|t| [95.0% Conf. Int.]
---------------------------------------------------------------------------------
Intercept 3.8000 1.784 2.129 0.037 0.232 7.368
C(loc)[T.N] -0.4921 1.948 -0.253 0.801 -4.388 3.404
x -0.6466 0.230 -2.807 0.007 -1.107 -0.186
x:C(loc)[T.N] 0.2719 0.257 1.057 0.295 -0.242 0.786
==============================================================================
Omnibus: 22.788 Durbin-Watson: 2.552
Prob(Omnibus): 0.000 Jarque-Bera (JB): 121.307
Skew: 0.629 Prob(JB): 4.56e-27
Kurtosis: 9.573 Cond. No. 467.
==============================================================================
Al observar los valores p para los coeficientes, la variable ficticia para la ubicación y el término de interacción no son significativamente diferentes de cero, en cuyo caso mi modelo de regresión esencialmente se reduce a solo la línea roja en la gráfica anterior. Para mí, esto sugiere que ajustar líneas separadas a los dos grupos podría ser un error, y un mejor modelo podría ser una sola línea de regresión para todo el conjunto de datos, como se muestra a continuación.
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.593
Model: OLS Adj. R-squared: 0.587
Method: Least Squares F-statistic: 91.93
Date: Mon, 13 Jun 2016 Prob (F-statistic): 6.29e-14
Time: 14:24:50 Log-Likelihood: -65.687
No. Observations: 65 AIC: 135.4
Df Residuals: 63 BIC: 139.7
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [95.0% Conf. Int.]
------------------------------------------------------------------------------
Intercept 8.9278 0.935 9.550 0.000 7.060 10.796
x -1.2446 0.130 -9.588 0.000 -1.504 -0.985
==============================================================================
Omnibus: 0.112 Durbin-Watson: 1.151
Prob(Omnibus): 0.945 Jarque-Bera (JB): 0.006
Skew: 0.018 Prob(JB): 0.997
Kurtosis: 2.972 Cond. No. 81.9
==============================================================================
Esto se ve bien para mí visualmente, y los valores p para todos los coeficientes ahora son significativos. Sin embargo, el AIC para el segundo modelo es mucho más alto que para el primero.
Me doy cuenta de que la selección del modelo es más que solo valores p o solo el AIC, pero no estoy seguro de qué hacer con esto. ¿Alguien puede ofrecer algún consejo práctico sobre la interpretación de este resultado y la elección de un modelo apropiado, por favor ?
En mi opinión, la línea de regresión simple se ve bien (aunque me doy cuenta de que ninguno de ellos es especialmente bueno), pero parece que hay al menos alguna justificación para ajustar modelos separados (?).
¡Gracias!
Editado en respuesta a comentarios
@Cagdas Ozgenc
El modelo de dos líneas se ajustó utilizando los modelos de estadísticas de Python y el siguiente código
reg = sm.ols(formula='y ~ x * C(loc)', data=df).fit()
Según tengo entendido, esto es esencialmente una forma abreviada de un modelo como este
que es la línea azul en la trama de arriba. El AIC para este modelo se informa automáticamente en el resumen de modelos de estadísticas. Para el modelo de una línea simplemente utilicé
reg = ols(formula='y ~ x', data=df).fit()
Creo que esto está bien?
@ user2864849
Editar 2
Solo para completar, aquí están los gráficos residuales como lo sugiere @whuber. El modelo de dos líneas se ve mucho mejor desde este punto de vista.
Modelo de dos líneas
Modelo de una línea
¡Gracias a todos!