Quand est-il possible de supprimer l'interception dans un modèle de régression linéaire?


118

J'utilise des modèles de régression linéaire et me demande quelles sont les conditions pour supprimer le terme d'interception.

En comparant les résultats de deux régressions différentes où l’une a l’interception et l’autre pas, je remarque que le de la fonction sans interception est beaucoup plus élevé. Y a-t-il certaines conditions ou hypothèses que je devrais suivre pour m'assurer que la suppression du terme d'interception est valide?R2


1
@chi merci d'avoir édité ma question. Y a-t-il des choses que je devrais clarifier ou reformuler dans des questions futures?
analyticsPierce

3
Votre question est bien posée. @chl a gentiment amélioré le formatage, c'est tout. Cela impliquait TeXifier le "R ^ 2" (il a été transformé en R ^ 2 , ce qui donne ). R $ 2$$R2
whuber

1
Que signifierait l'interception dans votre modèle? D'après les informations de votre question, il semble que ce serait la valeur attendue de votre réponse lorsque sqft = 0 et lotsize = 0 et baths = 0. Cela se produira-t-il jamais dans la réalité?
Timbp

1
Au lieu de y = a + b1 x1 + b2 x2 + b3x3, puis-je omettre un?
Travis

3
NB : Certains de ces commentaires et réponses portent essentiellement sur la même question (formulée dans le contexte d’une régression des prix du logement) qui a été fusionnée avec celle-ci en double.
whuber

Réponses:


87

La réponse la plus courte : jamais , sauf si vous êtes sûr que votre approximation linéaire du processus de génération de données (modèle de régression linéaire), que ce soit pour des raisons théoriques ou autres, est forcée de passer par l'origine . Si ce n'est pas le cas, les autres paramètres de régression seront biaisés, même si l'interception est statistiquement non significative (étrange mais c'est le cas, consultez Brooks Introductory Econometrics, par exemple). Enfin, comme je l'explique souvent à mes étudiants, en laissant le terme d'interception, vous vous assurez que le terme résiduel est égal à zéro.

Pour vos deux modèles, nous avons besoin de plus de contexte. Il peut arriver que le modèle linéaire ne convienne pas ici. Par exemple, vous devez d'abord enregistrer la transformation si le modèle est multiplicatif. Avoir des processus en croissance exponentielle , il peut parfois arriver que pour le modèle sans l'interception est « beaucoup » plus élevé.R2

Si vous filtrez les données, testez le modèle avec le test RESET ou tout autre test de spécification linéaire, cela peut aider à voir si mon estimation est vraie. Et, construire les modèles le plus est l' une des dernières propriétés statistiques que je fais vraiment préoccupation au sujet, mais il est agréable de présenter aux personnes qui ne sont pas si bien au courant économétrie (il y a beaucoup de trucs sales pour faire la détermination près de 1 :)).R2


3
-1 pour "jamais", voir l'exemple 1 de la réponse de Joshuas
Curious

4
@Curious, "jamais" est écrit avec "à moins que" les exemples ci-dessous montrent simplement les exceptions lorsqu'il est légal de supprimer une interception. Conservez-le si vous ne connaissez pas le processus ou la théorie générant des données, ou si vous n'êtes pas obligé de rechercher l'origine par normalisation ou tout autre modèle spécial. Conserver l'interception, c'est comme utiliser la corbeille pour collecter toutes les distorsions causées par l'approximation linéaire et d'autres simplifications. PS pratiquement la réponse montre que vous lisez le plus court :) Merci beaucoup à Joshua (+1) pour les exemples étendus.
Dmitrij Celov

3
Vous avez oublié le point de l'exemple 1 de Josué et semblez l'ignorer complètement. Dans les modèles avec covariance catégorique, la suppression des interceptes aboutit au même modèle avec une paramétrisation juste différente. C'est un cas légitime où l'interception peut être supprimée.
Curieux

2
@Curious, dans l'exemple 1 de Joshua, vous devez ajouter une nouvelle variable muette pour le niveau de la variable catégorielle que vous avez précédemment considérée comme base, et cette nouvelle variable muette prendra la valeur de l'interception. Par conséquent, vous ne supprimez PAS l'interception. il suffit de le renommer et de reparamétrer le reste des paramètres de la covariable catégorique. Par conséquent, l'argument de Dmitrij est valable.
Rufo

59

La suppression de l'interception est un modèle différent, mais il existe de nombreux exemples dans lesquels elle est légitime. Les réponses à ce jour ont déjà traité en détail de l'exemple où l'interception vraie est 0. Je me concentrerai sur quelques exemples dans lesquels nous pourrions être intéressés par une paramétrisation de modèle atypique.

Exemple 1: le modèle de type ANOVA. Pour les variables catégorielles, nous créons généralement des vecteurs binaires codant l'appartenance à un groupe. Le modèle de régression standard est paramétré comme intercept + k - 1 vecteurs factices. L'interception code la valeur attendue pour le groupe "référence" ou le vecteur omis, et les vecteurs restants testent la différence entre chaque groupe et la référence. Mais dans certains cas, il peut être utile de connaître la valeur attendue de chaque groupe.

dat <- mtcars
dat$vs <- factor(dat$vs)

## intercept model: vs coefficient becomes difference
lm(mpg ~ vs + hp, data = dat)

Coefficients:
(Intercept)          vs1           hp  
   26.96300      2.57622     -0.05453  

## no intercept: two vs coefficients, conditional expectations for both groups
lm(mpg ~ 0 + vs + hp, data = dat)

Coefficients:
     vs0       vs1        hp  
26.96300  29.53922  -0.05453  

Exemple 2: Le cas des données normalisées. Dans certains cas, on peut travailler avec des données normalisées. Dans ce cas, l'interception est 0 par conception. Je pense qu'un exemple classique de ceci est les modèles ou facteurs à équations structurelles à l'ancienne, qui ne fonctionnaient que sur les matrices de covariance des données. Dans le cas ci-dessous, il est probablement judicieux d’estimer l’interception de toute façon, ne serait-ce que pour laisser tomber le degré de liberté supplémentaire (que vous auriez vraiment dû perdre de toute façon parce que la moyenne a été estimée), mais il existe quelques cas où construction, les moyennes peuvent être 0 (par exemple, certaines expériences où les participants attribuent des cotes, mais sont contraints de donner des nombres positifs et négatifs égaux).

dat <- as.data.frame(scale(mtcars))

## intercept is 0 by design
lm(mpg ~ hp + wt, data = dat)

Coefficients:
(Intercept)           hp           wt  
  3.813e-17   -3.615e-01   -6.296e-01  

## leaving the intercept out    
lm(mpg ~ 0 + hp + wt, data = dat)

Coefficients:
     hp       wt  
-0.3615  -0.6296  

Exemple 3: Modèles multivariés et intersections cachées. Cet exemple est similaire au premier à bien des égards. Dans ce cas, les données ont été empilées de sorte que deux variables différentes sont maintenant dans un long vecteur. Une seconde variable code des informations indiquant si le vecteur de réponse yappartient à mpgou disp. Dans ce cas, pour obtenir les interceptions distinctes pour chaque résultat, vous supprimez l'interception globale et incluez les deux vecteurs factices pour la mesure. C'est une sorte d'analyse multivariée. Ce n'est généralement pas fait aveclm()parce que vous avez des mesures répétées et devrait probablement permettre la non-indépendance. Cependant, il existe des cas intéressants où cela est nécessaire. Par exemple, lorsque vous essayez d'effectuer une analyse de médiation avec des effets aléatoires, pour obtenir la matrice de covariance de variance complète, vous avez besoin d'estimer les deux modèles simultanément, ce qui peut être effectué en empilant les données et en faisant un usage intelligent des vecteurs factices.

## stack data for multivariate analysis
dat <- reshape(mtcars, varying = c(1, 3), v.names = "y",
  timevar = "measure", times = c("mpg", "disp"), direction = "long")
dat$measure <- factor(dat$measure)

## two regressions with intercepts only
lm(cbind(mpg, disp) ~ 1, data = mtcars)

Coefficients:
             mpg     disp  
(Intercept)   20.09  230.72

## using the stacked data, measure is difference between outcome means
lm(y ~ measure, data = dat)

Coefficients:
(Intercept)   measurempg  
      230.7       -210.6  

## separate 'intercept' for each outcome
lm(y ~ 0 + measure, data = dat)

Coefficients:
measuredisp   measurempg  
     230.72        20.09  

Je ne dis pas que les interceptions devraient généralement être supprimées, mais il est bon d'être flexible.


7
+1 Je n'ai pas pris les gens pour dire de manière rigide «jamais», mais c'est toujours agréable d'avoir un autre point de vue et c'est une réponse très claire et réfléchie. Bienvenue sur CV, ce sera un plaisir de vous compter parmi les membres de la communauté.
gung

3
@gung merci, vous avez raison. J'ai corrigé ce libellé hors de ma réponse car je pensais qu'il était incendiaire et inutile.
Josué

1
@ Joshua: Désolé que je pose une question sur un article de presque 2 ans, mais y a-t-il des références sur votre premier exemple? Je songe à exécuter un modèle sans interception sur mes données dans lequel la variable de prédicteur est catégorique et je voudrais savoir si chaque niveau est significativement différent de 0. Merci!
Alex

@Alex Tout bon texte de régression devrait faire l'affaire (le chapitre 8 de la 3e éd., Analyse de la régression / corrélation multiple appliquée, en traite.) - il vous suffit de lui parler des contrastes et de la manière de coder des variables catégorielles. Une façon de penser à cela est que vous estimez des intercepts distincts pour chaque groupe, plutôt que de les laisser de côté.
Josué

@ Josué, votre premier exemple a semé la confusion ailleurs sur ce site . Si j'ai bien compris, vous proposez une astuce pratique pour afficher des estimations de paramètres sans avoir besoin d'ajouter de la valeur à l'interception, et vous ne suggérez pas que la méthode habituelle consiste à utiliser un modèle dont l'interception est supprimée pour effectuer anova. Dans R, dans presque tous les cas, on utiliserait un modèle avec une interception pour effectuer un anova traditionnel.
Sal Mangiafico


14

Vous ne devez pas abandonner l'interception, que vous ayez ou non les chances de voir toutes les variables explicatives ayant la valeur zéro.

Il y a une bonne réponse à une question très similaire ici .

Si vous supprimez l'interception, les autres estimations deviennent toutes biaisées. Même si la valeur réelle de l'interception est approximativement égale à zéro (ce que vous pouvez déduire de vos données), vous manipulez les pentes si vous le forcez à être exactement égal à zéro.

SAUF SI - vous mesurez quelque chose avec un modèle physique très clair et évident qui exige que l'interception soit nulle (par exemple, vous avez la hauteur, la largeur et la longueur d'un prisme rectangulaire comme variables explicatives et la variable de réponse est le volume avec une erreur de mesure). Si votre variable de réponse est la valeur de la maison, vous devez absolument laisser l'interception en.


1
Pouvez-vous s'il vous plaît expliquer, pourquoi nous avons besoin de l'interception pour la prévision du prix de l'immobilier? pourquoi tous les X seraient-ils nuls pour n'importe quelle maison?
Elf

10

OK, alors vous avez BEAUCOUP changé la question

Vous pouvez laisser l'interception quand vous savez qu'il est 0. C'est tout. Et non, vous ne pouvez pas le faire parce que ce n'est pas très différent de 0, vous devez savoir que c'est 0 ou que vos résidus sont biaisés. Et, dans ce cas, la valeur est 0, cela ne changera rien si vous le laissez de côté ... ne le laissez jamais de côté.

R2


2
Qu'en est-il lorsque nous souhaitons tester la cointégration avec Engle / Granger 2-step? en.wikipedia.org/wiki/Cointegration
Jase

5

La plupart des modèles de régression multiple incluent un terme constant (c.-à-d. L'ordonnée à l'origine), car cela garantit que le modèle sera non biaisé, c'est-à-dire que la moyenne des résidus sera exactement égale à zéro. (Les coefficients dans un modèle de régression sont estimés par les moindres carrés, c’est-à-dire en minimisant l’erreur quadratique moyenne. Or, l’erreur quadratique moyenne est égale à la variance des erreurs plus le carré de leur moyenne: c’est une identité mathématique. la valeur de la constante dans le modèle modifie la moyenne des erreurs mais n'affecte pas la variance: par conséquent, si la somme des erreurs au carré doit être minimisée, la constante doit être choisie de sorte que la moyenne des erreurs soit égale à zéro. )

Dans un modèle de régression simple, la constante représente l'ordonnée à l'origine de la droite de régression, sous une forme non normalisée. Dans un modèle de régression multiple, la constante représente la valeur qui serait prédite pour la variable dépendante si toutes les variables indépendantes étaient simultanément égales à zéro - une situation qui peut ne pas être significative physiquement ou économiquement. Si vous n'êtes pas particulièrement intéressé par ce qui se produirait si toutes les variables indépendantes étaient simultanément égales à zéro, vous laissez normalement la constante dans le modèle, quelle que soit sa signification statistique. En plus de garantir que les erreurs dans l'échantillon sont non biaisées, la présence de la constante permet à la ligne de régression de "rechercher son propre niveau" et de fournir le meilleur ajustement à des données qui ne peuvent être que localement linéaires.

Toutefois, dans de rares cas, vous pouvez souhaiter exclure la constante du modèle. Il s'agit d'une option d'adaptation de modèle dans la procédure de régression de tout progiciel. Cette procédure est parfois appelée régression par le biais de l'origine, ou RTO. Habituellement, cela ne sera fait que si:

  1. il est possible d’imaginer les variables indépendantes prenant toutes la valeur zéro en même temps, et vous estimez que, dans ce cas, il devrait logiquement découler que la variable dépendante sera également égale à zéro; ou sinon
  2. la constante est redondante avec l'ensemble des variables indépendantes que vous souhaitez utiliser.

Un exemple de cas (1) serait un modèle dans lequel toutes les variables - dépendantes et indépendantes - représentaient les premières différences des autres séries temporelles. Si vous régressez la première différence de Y sur la première différence de X, vous prédisez directement les modifications de Y en fonction linéaire des modifications de X, sans référence aux niveaux actuels des variables. Dans ce cas, il pourrait être raisonnable (bien que non obligatoire) de supposer que Y devrait rester inchangé, en moyenne, chaque fois que X est inchangé - c’est-à-dire qu’il ne devrait pas y avoir de tendance à la hausse ou à la baisse en l’absence de modification de la niveau de X.

Un exemple de cas (2) serait une situation dans laquelle vous souhaitez utiliser un ensemble complet de variables d'indicateur saisonnier - par exemple, vous utilisez des données trimestrielles et vous souhaitez inclure les variables Q1, Q2, Q3 et Q4 représentant des valeurs additives. effets saisonniers. Ainsi, Q1 pourrait ressembler à 1 0 0 0 1 0 0 0 ..., Q2 ressemblerait à 0 1 0 0 0 1 0 0 ..., etc. Vous ne pouvez pas utiliser les quatre éléments et une constante dans le même modèle, car Q1 + Q2 + Q3 + Q4 = 1 1 1 1 1 1 1 1 1. . . . , qui est identique à un terme constant. En d'autres termes, les cinq variables Q1, Q2, Q3, Q4 et CONSTANT ne sont pas linéairement indépendantes: l'une d'elles peut être exprimée sous forme d'une combinaison linéaire des quatre autres. Pour pouvoir adapter un modèle de régression linéaire, il est indispensable que les variables indépendantes soient linéairement indépendantes. sinon les coefficients des moindres carrés ne peuvent pas être déterminés de manière unique,

Un mot d'avertissement: R-squared et la statistique F n'ont pas la même signification dans un modèle RTO que dans un modèle de régression ordinaire, et ils ne sont pas calculés de la même manière par tous les logiciels. Voir cet article pour quelques mises en garde. Vous ne devez pas essayer de comparer R-carré entre les modèles qui incluent ou non un terme constant, bien qu'il soit correct de comparer l'erreur type de la régression.

Notez que le terme "indépendant" est utilisé dans (au moins) trois manières différentes dans le jargon de régression: toute variable unique peut être appelée variable indépendante si elle est utilisée comme prédicteur plutôt que comme prédicte. Un groupe de variables est linéairement indépendant si aucune d’entre elles ne peut être exprimée exactement comme une combinaison linéaire des autres. Une paire de variables est dite statistiquement indépendante si elles sont non seulement linéairement indépendantes, mais aussi totalement non informatives les unes par rapport aux autres. Dans un modèle de régression, vous souhaitez que votre variable dépendante soit statistiquement dépendante des variables indépendantes, qui doivent être linéairement (mais pas nécessairement statistiquement) indépendantes entre elles.


2
De quel article parlez-vous?
gung

2

Révision complète de mes pensées. En effet, abandonner l'interception causera un problème de biais.

Avez-vous envisagé de centrer vos données pour qu'une interception ait un sens et d'éviter d'expliquer comment certaines valeurs (déraisonnables) pourraient donner des valeurs négatives? Si vous ajustez les trois variables explicatives en soustrayant la moyenne sqrft, moyenne lotsize et moyenne bath, alors l'interception indiquera maintenant la valeur (d'une maison?) Avec sdrft, lotsize et bath moyens.

Ce centrage ne changera pas la relation relative des variables indépendantes. Ainsi, l'ajustement du modèle sur les données centrées trouvera toujours des bains aussi insignifiants. Reposer le modèle sans le bain inclus. Vous pouvez toujours obtenir une grande valeur de p pour l'interception, mais elle devrait être incluse et vous obtiendrez un modèle de la forme y = a + b (sqrft) + c (lotsize).


1

Je viens de passer un peu de temps à répondre à une question similaire posée par quelqu'un d'autre, mais celle-ci était close. Il y a d'excellentes réponses ici, mais la réponse que je donne est un peu plus simple. Cela conviendrait peut-être mieux aux personnes qui comprennent mal la régression.

Q1: Comment interpréter l'interception dans mon modèle?

Dans les modèles de régression, l'objectif est de minimiser la quantité de variance inexpliquée dans une variable de résultat:

y = b0 + b1⋅x + ϵ

où y est la valeur prévue de votre mesure de résultat (par exemple, log_blood_hg), b0 est l'interception, b1 est la pente, x est une variable prédictive et ϵ est une erreur résiduelle.

L'interception (b0) est la valeur moyenne prédite de y lorsque tout x = 0. En d'autres termes, il s'agit de la valeur de base de y, avant que vous n'utilisiez des variables (par exemple, des espèces) pour minimiser ou expliquer davantage la variance dans log_blood_hg .

En ajoutant une pente (qui estime comment une augmentation / diminution d'une unité de log_blood_hg change avec une augmentation d'une unité de x, par exemple, une espèce), nous ajoutons à ce que nous savons déjà sur la variable de résultat, qui est sa valeur de base (c'est-à-dire intercept), basé sur le changement d'une autre variable.

Q2: Quand est-il approprié d'inclure ou non l'inclusion, particulièrement en ce qui concerne le fait que les modèles donnent des résultats très différents?

Pour des modèles simples comme celui-ci, il n'est jamais vraiment approprié de laisser tomber l'interception.

Les modèles donnent des résultats différents lorsque vous lâchez l'interception car, plutôt que d'ancrer la pente dans la valeur de base de Y, elle est forcée de passer par l'origine de y, qui est 0. Par conséquent, la pente devient plus raide (c'est-à-dire plus puissante et significative). ) parce que vous avez forcé la ligne par l’origine, et non pas parce qu’elle réduit mieux la variance de y. En d'autres termes, vous avez créé artificiellement un modèle qui minimise la variance de y en supprimant l'interception ou le point de mise à la terre initial de votre modèle.

Dans certains cas, la suppression de l'interception est appropriée, par exemple pour décrire un phénomène avec une interception à 0. Vous pouvez lire à ce sujet ici , ainsi que d'autres raisons pour lesquelles la suppression d'une interception n'est pas une bonne idée.


1

y=α+βX+ε
α=0yX=0

R2R2R2

Conclusion: NE LAISSEZ PAS L'INTERCEPT HORS DU MODÈLE (à moins que vous ne sachiez vraiment ce que vous faites).

Xs=vt

Il existe également des modèles spéciaux qui laissent de côté l'interception. Un exemple est les données appariées, les études jumelles .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.