Je me rends compte que ce sujet a été soulevé plusieurs fois auparavant, par exemple ici , mais je ne sais toujours pas comment interpréter au mieux ma sortie de régression.
J'ai un ensemble de données très simple, composé d'une colonne de valeurs x et d'une colonne de valeurs y , réparties en deux groupes selon l' emplacement (loc). Les points ressemblent à ceci
Un collègue a émis l'hypothèse que nous devrions adapter des régressions linéaires simples distinctes à chaque groupe, ce que j'ai fait en utilisant y ~ x * C(loc)
. La sortie est illustrée ci-dessous.
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.
==============================================================================
En regardant les valeurs de p pour les coefficients, la variable fictive pour l'emplacement et le terme d'interaction ne sont pas significativement différents de zéro, auquel cas mon modèle de régression se réduit essentiellement à la ligne rouge sur le graphique ci-dessus. Pour moi, cela suggère que l'ajustement de lignes distinctes aux deux groupes pourrait être une erreur, et un meilleur modèle pourrait être une seule ligne de régression pour l'ensemble des données, comme indiqué ci-dessous.
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
==============================================================================
Cela me convient visuellement, et les valeurs de p pour tous les coefficients sont maintenant significatives. Cependant, l'AIC pour le deuxième modèle est beaucoup plus élevé que pour le premier.
Je me rends compte que la sélection des modèles ne se limite pas aux valeurs p ou à l'AIC, mais je ne sais pas quoi en penser . Quelqu'un peut-il offrir des conseils pratiques concernant l'interprétation de cette sortie et le choix d'un modèle approprié, s'il vous plaît ?
À mes yeux, la ligne de régression unique semble correcte (bien que je réalise qu'aucun d'entre eux n'est particulièrement bon), mais il semble qu'il y ait au moins une justification pour l'ajustement de modèles distincts (?).
Merci!
Modifié en réponse aux commentaires
@Cagdas Ozgenc
Le modèle à deux lignes a été ajusté à l'aide des modèles de statistiques de Python et du code suivant
reg = sm.ols(formula='y ~ x * C(loc)', data=df).fit()
Si je comprends bien, c'est essentiellement un raccourci pour un modèle comme celui-ci
où est une variable "fictive" binaire représentant l'emplacement. En pratique, ce ne sont essentiellement que deux modèles linéaires, n'est-ce pas? Lorsque , et que le modèle se réduit àl o c = D l = 0
qui est la ligne rouge sur le graphique ci-dessus. Lorsque , et le modèle devientl = 1
qui est la ligne bleue sur l'intrigue ci-dessus. L'AIC pour ce modèle est signalé automatiquement dans le résumé des modèles de statistiques. Pour le modèle à une ligne que j'ai simplement utilisé
reg = ols(formula='y ~ x', data=df).fit()
Je pense que c'est OK?
@ user2864849
Je ne pense pas que le modèle de ligne unique est évidemment mieux, mais je ne vous inquiétez pas sur la façon dont mal contraint la ligne de régression pour est. Les deux emplacements (D et N) sont très éloignés l'un de l'autre dans l'espace, et je ne serais pas du tout surpris si la collecte de données supplémentaires quelque part au milieu produisait des points traçant à peu près entre les grappes rouges et bleues que j'ai déjà. Je n'ai pas encore de données pour le sauvegarder, mais je ne pense pas que le modèle à une seule ligne soit trop terrible et j'aime garder les choses aussi simples que possible :-)
Modifier 2
Juste pour être complet, voici les graphiques résiduels suggérés par @whuber. Le modèle à deux lignes semble en effet beaucoup mieux de ce point de vue.
Modèle à deux lignes
Modèle à une ligne
Merci a tous!