Pourquoi un modèle de régression linéaire à interception nulle prédit-il mieux qu'un modèle avec interception?

8

De nombreux manuels et articles ont déclaré que l'interception ne devait pas être supprimée. Récemment, j'ai utilisé un ensemble de données d'apprentissage pour construire un modèle de régression linéaire avec ou sans interception. J'ai été surpris de constater que le modèle sans interception prédit mieux que celui avec une interception en termes de rmse dans un ensemble de données de validation indépendant. La précision de la prédiction est-elle l'une des raisons pour lesquelles je devrais utiliser des modèles à interception zéro?

KuJ
la source
Quelle était la taille des échantillons de formation et de validation? Peut-être que le modèle sans interception était meilleur juste par hasard.
mark999
La taille de l'échantillon de formation était de 289 alors que la taille de l'échantillon de validation était de 406. En passant, comment déterminer les meilleures tailles d'échantillon de formation et de validation?
KuJ

Réponses:

3

Regardez attentivement comment la rmse ou une autre statistique est calculée lorsque vous comparez des modèles sans interception à des modèles d'interception. Parfois, les hypothèses et les calculs sont différents entre les 2 modèles et l'un peut être plus mauvais, mais il a l'air mieux car il est divisé par quelque chose de beaucoup plus grand.

Sans un exemple reproductible, il est difficile de dire ce qui peut contribuer.

Greg Snow
la source
Rmse a été calculé selon la formule (utilisée pour comparer les différences entre deux choses qui peuvent varier, dont aucune n'est acceptée comme la "norme") donnée dans: en.wikipedia.org/wiki/Root-mean-square_deviation Ainsi, les hypothèses et les calculs sont les mêmes entre les 2 estimateurs dérivés du modèle.
KuJ
1
Dans quelle mesure vos ensembles de formation et de validation sont-ils similaires? Vous pourriez envisager de faire une validation croisée 10 fois: divisez les données en 10 pièces égales (ou aussi égales que possible), puis utilisez-en 9 pour former un modèle et la 10e comme pièce de validation, puis répétez avec chacune les 9 autres pièces étant l'ensemble de validation. Ensuite, répétez tout ce processus (en commençant par une nouvelle répartition aléatoire) environ 10 fois.
Greg Snow
La variable Y et les variables X étaient différentes (P = 0,01) entre les ensembles d'apprentissage et de validation. Cependant, rmse était encore plus faible avec le modèle sans interception lorsque j'ai utilisé le package R MatchIt pour faire correspondre les ensembles de formation et de validation. En revanche, rmse est devenu similaire lorsque j'ai utilisé le package DAAG (cv.lm) pour valider 10 fois l'ensemble de données combiné. Cela signifie-t-il qu'une validation croisée 10 fois est meilleure qu'un simple ensemble de formation et un ensemble de validation?
KuJ
2
Oui, la validation croisée a tendance à être meilleure. Regardez s'il y a d'autres façons de sur-spécifier votre modèle, il est très inhabituel qu'un modèle sans interception s'adapte mieux.
Greg Snow
1
Dans "Expliquer ou prédire?" projecteuclid.org/… Le professeur Galit Shmueli a déclaré que parfois un modèle moins vrai peut prédire mieux qu'un modèle plus vrai. Je pense que cela peut être l'une des raisons de cette affaire.
KuJ
9

Je ne pense pas que vous devriez choisir des modèles simplement parce qu'ils fonctionnent mieux dans un échantillon particulier, bien qu'il soit bon que vous ayez utilisé un échantillon de formation et de validation.

Regardez plutôt ce que les modèles disent de votre situation. Dans certains cas, un modèle d'interception nulle est logique. Si le DV doit être égal à 0 lorsque tous les IV sont à 0, alors utilisez un modèle d'interception nulle. Sinon, non.

Des connaissances substantielles devraient guider les statistiques, et non l'inverse

Peter Flom
la source
2
La raison donnée dans votre deuxième paragraphe, bien qu'intuitive, n'est souvent pas assez forte pour supprimer l'interception dans de nombreuses situations de ce type. Ce point est traité plus en détail dans quelques autres questions sur ce site.
Cardinal
4
Dans les études de comparaison de méthodes (ou d'instruments) (par exemple, la comparaison de l'oxymètre A et de l'oxymètre B), le DV (niveau d'oxygène) doit être égal à 0 lorsque tous les IV (niveaux d'oxygène) sont à 0. Cependant, l'interception ne doit pas être ignorée si Je souhaite étalonner (ou échanger) l'oxymètre A avec l'oxymètre B.
KuJ
5

Un modèle sans interception peut avoir un sens si deux conditions sont remplies. Premièrement, il devrait y avoir une attente raisonnable de connaissance de la matière pour que l'interception soit nulle. Deuxièmement, il devrait y avoir une attente raisonnable de connaissance du sujet pour que la ligne de régression reste une ligne droite à l'approche de zéro. Même si les deux conditions sont remplies, il est sage d'effectuer une analyse avec un terme d'interception et de vérifier que l'interception n'est pas significativement différente de zéro.

(Je suppose que vous parlez d'un Y continu et d'un X continu.)

Emil Friedman
la source
4

Cela serait compréhensible si l'interception que vous avez obtenue était simplement du bruit - pas du tout. différent de zéro. (Ai-je raison de dire que les coefficients de régression normalisés étaient presque les mêmes dans les deux modèles?) Si c'est le cas, je ne pense pas que vous devriez généraliser à partir de cet exemple. Lorsque les interceptions sont sig. et substantielles, elles ajoutent quelque chose de significatif à la précision prédictive.

rolando2
la source
1. Les coefficients de régression standardisés n'étaient pas les mêmes (0,91 et 1,02) pour le modèle avec et sans interception). 2. L'ordonnée à l'origine était de 9,5 (se 1,7, p <0,001). 3. Pour autant que je sache, de nombreux articles suggèrent de ne pas supprimer l'interception même si l'interception n'était pas significative à partir de zéro.
KuJ
S'il y a des variables muettes dans la régression, l'ordonnée à l'origine ne représente-t-elle pas la valeur si tous les variables muettes sont codées 0 pour cette observation? Je ne sais pas si cela s'applique ici.
Michelle
Non, il n'y avait pas de variables fictives.
KuJ
2

En régression linéaire, vous ajustez:

y=f(β,X)=β0+β1x1+β2x2+

Vous correspond β données de formation données (X,Y) Supposons que vous déposez le β0 et adapter le modèle, l'erreur dans l'ajustement:

i(yif(β,Xi))2

être plus grand que si vous l'incluiez? Dans tous les cas (non dégénérés), vous pouvez prouver que l'erreur sera identique ou inférieure (sur les données d'entraînement) lorsque vous incluezβ0puisque le modèle est libre d'utiliser ce paramètre pour réduire l'erreur s'il est présent et aide, et le mettra à zéro s'il n'aide pas. De plus, supposons que vous ayez ajouté une grande constante à y (supposez que votre sortie devait être+10000 que dans vos données de formation d'origine), et remontez le modèle, puis β0 devient clairement très important.

Vous faites peut-être référence à des modèles régularisés lorsque vous dites "supprimés". Les L1 et L2 régularisés, ces méthodes préfèrent garder des coefficients proches de zéro (et vous devriez déjà avoir la moyenne et la variance normalisées votreXau préalable pour que cette étape soit judicieuse. En régularisation, vous avez alors le choix d'inclure ou non le terme d'interception (si nous préférons aussi avoir un petitβ0?). Encore une fois, dans la plupart des cas (tous les cas?), Il vaut mieux ne pas régulariserβ0, car il est peu probable qu'il réduise le sur-ajustement et rétrécisse l'espace des fonctions représentables (en excluant celles β0) conduisant à une erreur plus élevée.

Remarque: la régression logistique de scikit régularise l'interception par défaut. Quelqu'un sait pourquoi: http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html ? Je ne pense pas que ce soit une bonne idée .

user48956
la source
Re sklearn régularisant l'interception: ce n'est le cas que si vous utilisez le solveur liblinéaire et ils notent explicitement que c'est mauvais ( scikit-learn.org/stable/modules/… ). Je suppose que le paramètre intercept_scaling est inclus dans LogisticRegression pour atténuer cela.
erobertc
La mise à l'échelle n'aide pas si vous prévoyez d'interpréter les paramètres comme des rapports de cotes.
user48956
Je suis content qu'ils aient mis à jour les documents. Beaucoup d'heures perdues ici.
user48956