Прежде всего, мы должны понимать, что R
делает программное обеспечение, когда в модель не включен перехват. Напомним, что обычным вычислением
при наличии перехвата является
Первое равенство возникает только из-за включения в модель перехвата, хотя это, вероятно, более популярный из двух способов его написания. Второе равенство на самом деле обеспечивает более общую интерпретацию! Этот вопрос также рассматривается в этом связанном вопросе .R 2 = Σ я ( у я - ˉ у ) 2R2
R2=∑i(y^i−y¯)2∑i(yi−y¯)2=1−∑i(yi−y^i)2∑i(yi−y¯)2.
Но что произойдет, если в модели нет перехвата?
Ну, в этом случае R
( тихо! ) Использует измененную форму
R20=∑iy^2i∑iy2i=1−∑i(yi−y^i)2∑iy2i.
Это помогает вспомнить, что пытается измерить. В первом случае он сравнивает вашу текущую модель с эталонной
моделью, которая включает только перехват (т. Е. Постоянный член). Во втором случае перехват отсутствует, поэтому нет смысла сравнивать его с такой моделью. Таким образом, вместо этого вычисляется , который неявно использует эталонную модель, соответствующую только шуму .R 2 0R2R20
В дальнейшем я остановлюсь на втором выражении как для и для поскольку это выражение обобщает другие контексты, и в целом более естественно думать о вещах в терминах невязок.R 2 0R2R20
Но чем они отличаются и когда?
Давайте сделаем небольшое отступление в линейную алгебру и посмотрим, сможем ли мы выяснить, что происходит. Прежде всего, давайте назовем подогнанные значения из модели с помощью intercept и подогнанные значения от модели без перехвата . ~ уy^y~
Мы можем переписать выражения для и как
а
соответственно.R2R20
R2=1−∥y−y^∥22∥y−y¯1∥22,
R20=1−∥y−y~∥22∥y∥22,
Теперь, так как , то тогда и только тогда, когда
∥y∥22=∥y−y¯1∥22+ny¯2R20>R2
∥y−y~∥22∥y−y^∥22<1+y¯21n∥y−y¯1∥22.
Левая часть больше единицы, поскольку модель, соответствующая , вложена в . Второе слагаемое в правой части - это среднеквадратичное значение ответов, деленное на среднеквадратичную ошибку модели только для пересечения. Таким образом, чем больше среднее значение отклика относительно другого варианта, тем больше у нас «слабости» и больше шансов на то, что доминирует над .y~y^R20R2
Обратите внимание, что все зависящие от модели вещи находятся слева, а не зависящие от модели вещи - справа.
Итак, как мы можем сделать соотношение на левой стороне маленьким?
Напомним, что
и где и - матрицы проекций, соответствующие подпространствам и такие что .y~=P0yy^=P1yP0P1S0S1S0⊂S1
Итак, чтобы отношение было близко к единице, нам нужно, чтобы подпространства
и были очень похожими. Теперь и отличаются только тем, является ли базисным вектором или нет, так что это означает, что
лучше быть подпространством, которое уже лежит очень близко к .S0S1S0S11S01
По сути, это означает, что у нашего предиктора лучше иметь сильное среднее смещение, и что это среднее смещение должно доминировать в вариации предиктора.
Пример
Здесь мы пытаемся сгенерировать пример с явным пересечением в модели, который ведет себя близко к случаю в вопросе. Ниже приведен простой R
код для демонстрации.
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)
Это дает следующий вывод. Начнем с модели с перехвата.
# 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
Затем посмотрите, что происходит, когда мы исключаем перехват.
# 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
Ниже приведен график данных с моделью с перехватом красным цветом и моделью без перехвата синим цветом.