Tout d'abord, nous devons comprendre ce que fait le R
logiciel lorsqu'aucune interception n'est incluse dans le modèle. Rappelons que le calcul habituel de
quand une interception est présente est
La première égalité n’est due qu’à l’inclusion de l’interception dans le modèle alors que c’est probablement la plus populaire des deux manières de l’écrire. La deuxième égalité fournit en fait l'interprétation plus générale! Ce point est également abordé dans cette question connexe .R 2 = Σ i ( y i - ˉ y ) 2R2
R2=∑i(y^i−y¯)2∑i(yi−y¯)2=1−∑i(yi−y^i)2∑i(yi−y¯)2.
Mais que se passe-t-il s'il n'y a pas d'interception dans le modèle?
Eh bien, dans ce cas, R
( silencieusement! ) Utilise la forme modifiée
R20=∑iy^2i∑iy2i=1−∑i(yi−y^i)2∑iy2i.
Il est utile de rappeler ce que essaie de mesurer. Dans le premier cas, il compare votre modèle actuel au modèle de référence
qui inclut uniquement une interception (c.-à-d. Un terme constant). Dans le second cas, il n'y a pas d'interception, il est donc peu logique de le comparer à un tel modèle. Ainsi, à la place, est calculé, ce qui utilise implicitement un modèle de référence correspondant au bruit uniquement .R 2 0R2R20
Dans ce qui suit, je me concentre sur la deuxième expression pour et car cette expression se généralise à d'autres contextes et il est généralement plus naturel de penser aux choses en termes de résidus.R 2 0R2R20
Mais comment sont-ils différents et quand?
Faisons une brève digression dans une algèbre linéaire et voyons si nous pouvons comprendre ce qui se passe. Premièrement, appelons les valeurs ajustées du modèle avec intercept et les valeurs ajustées du modèle sans interception . y^y~
Nous pouvons réécrire les expressions pour et sous la forme
et
respectivement.R2R20
R2=1−∥y−y^∥22∥y−y¯1∥22,
R20=1−∥y−y~∥22∥y∥22,
Maintenant, puisque , alors si et seulement si
∥y∥22=∥y−y¯1∥22+ny¯2R20>R2
∥y−y~∥22∥y−y^∥22<1+y¯21n∥y−y¯1∥22.
Le côté gauche est supérieur à un puisque le modèle correspondant à est imbriqué dans celui de . Le deuxième terme à droite est la moyenne quadratique des réponses divisée par l'erreur quadratique moyenne d'un modèle avec interception uniquement. Ainsi, plus la moyenne de la réponse est grande par rapport à l’autre variation, plus nous avons de "jeu" et plus nous avons de chances de voir dominer .y~y^R20R2
Notez que tout le matériel dépendant du modèle est à gauche et que le matériel non dépendant du modèle est à droite.
Ok, alors comment rend-on le ratio du côté gauche petit?
Rappelons que
et où et sont des matrices de projection correspondant aux sous-espaces et tels que .y~=P0yy^=P1yP0P1S0S1S0⊂S1
Donc, pour que le rapport soit proche de un, il faut que les sous-espaces
et soient très similaires. Maintenant, et ne diffèrent que par le fait que soit un vecteur de base ou non, cela signifie donc que
doit être un sous-espace déjà très proche de .S0S1S0S11S01
En substance, cela signifie que notre prédicteur aurait mieux intérêt à avoir un fort décalage moyen lui-même et que ce décalage moyen devrait dominer la variation du prédicteur.
Un exemple
Ici, nous essayons de générer un exemple avec une interception explicitement dans le modèle et qui se comporte de manière similaire au cas de la question. Vous trouverez ci-dessous un R
code simple à démontrer.
set.seed(.Random.seed[1])
n <- 220
a <- 0.5
b <- 0.5
se <- 0.25
# Make sure x has a strong mean offset
x <- rnorm(n)/3 + a
y <- a + b*x + se*rnorm(x)
int.lm <- lm(y~x)
noint.lm <- lm(y~x+0) # Intercept be gone!
# For comparison to summary(.) output
rsq.int <- cor(y,x)^2
rsq.noint <- 1-mean((y-noint.lm$fit)^2) / mean(y^2)
Cela donne la sortie suivante. Nous commençons par le modèle avec intercept.
# Include an intercept!
> summary(int.lm)
Call:
lm(formula = y ~ x)
Residuals:
Min 1Q Median 3Q Max
-0.656010 -0.161556 -0.005112 0.178008 0.621790
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.48521 0.02990 16.23 <2e-16 ***
x 0.54239 0.04929 11.00 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.2467 on 218 degrees of freedom
Multiple R-squared: 0.3571, Adjusted R-squared: 0.3541
F-statistic: 121.1 on 1 and 218 DF, p-value: < 2.2e-16
Ensuite, voyez ce qui se passe lorsque nous excluons l’interception.
# No intercept!
> summary(noint.lm)
Call:
lm(formula = y ~ x + 0)
Residuals:
Min 1Q Median 3Q Max
-0.62108 -0.08006 0.16295 0.38258 1.02485
Coefficients:
Estimate Std. Error t value Pr(>|t|)
x 1.20712 0.04066 29.69 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.3658 on 219 degrees of freedom
Multiple R-squared: 0.801, Adjusted R-squared: 0.8001
F-statistic: 881.5 on 1 and 219 DF, p-value: < 2.2e-16
Vous trouverez ci-dessous un graphique des données avec le modèle avec interception en rouge et le modèle sans interception en bleu.