Удаление статистически значимого члена перехвата увеличивает в линейной модели

101

В простой линейной модели с одной объясняющей переменной

αi=β0+β1δi+ϵi

Я считаю, что удаление члена перехвата значительно улучшает соответствие (значение идет от 0,3 до 0,9). Однако термин «перехват» представляется статистически значимым.R2

С перехватом:

Call:
lm(formula = alpha ~ delta, data = cf)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.72138 -0.15619 -0.03744  0.14189  0.70305 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.48408    0.05397    8.97   <2e-16 ***
delta        0.46112    0.04595   10.04   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 0.2435 on 218 degrees of freedom
Multiple R-squared: 0.316,    Adjusted R-squared: 0.3129 
F-statistic: 100.7 on 1 and 218 DF,  p-value: < 2.2e-16

Без перехвата:

Call:
lm(formula = alpha ~ 0 + delta, data = cf)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.92474 -0.15021  0.05114  0.21078  0.85480 

Coefficients:
      Estimate Std. Error t value Pr(>|t|)    
delta  0.85374    0.01632   52.33   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 0.2842 on 219 degrees of freedom
Multiple R-squared: 0.9259,   Adjusted R-squared: 0.9256 
F-statistic:  2738 on 1 and 219 DF,  p-value: < 2.2e-16

Как бы вы интерпретировали эти результаты? Должен ли термин «перехват» быть включен в модель или нет?

редактировать

Вот оставшиеся суммы квадратов:

RSS(with intercept) = 12.92305
RSS(without intercept) = 17.69277
Эрнест А
источник
14
Я помню, что будет отношением объясненной ТОЛЬКО к полной дисперсии, если перехват включен. В противном случае он не может быть получен и теряет свою интерпретацию. R2
Momo
@ Момо: Хорошая мысль. Я рассчитал остаточные суммы квадратов для каждой модели, которые, по-видимому, предполагают, что модель с термином перехвата лучше подходит независимо от того, что говорит . R2
Эрнест А
4
Что ж, RSS должен уменьшаться (или, по крайней мере, не увеличиваться), когда вы включаете дополнительный параметр. Что еще более важно, большая часть стандартного вывода в линейных моделях не применяется, когда вы подавляете перехват (даже если он не является статистически значимым).
Макрос
14
Что делает , когда нет перехвата, так это то, что он вычисляет вместо этого (обратите внимание, вычитание среднего значения не вычитается в знаменательные условия). Это увеличивает знаменатель, который для того же или подобного MSE вызывает увеличение . R 2 = 1 - Σ я ( у я - у я ) 2R R2
R2=1i(yiy^i)2iyi2
R2
кардинал
5
не обязательно больше. Это только больше без перехвата, пока MSE соответствия в обоих случаях похожи. Но обратите внимание, что, как указал @Macro, числитель также увеличивается в случае без перехвата, поэтому он зависит от того, кто из них победит! Вы правы, что их не следует сравнивать друг с другом, но вы также знаете, что SSE с перехватом всегда будет меньше, чем SSE без перехвата. Это является частью проблемы с использованием выборочных мер для регрессионной диагностики. Какова ваша конечная цель для использования этой модели? R2
кардинал

Ответы:

131

Прежде всего, мы должны понимать, что Rделает программное обеспечение, когда в модель не включен перехват. Напомним, что обычным вычислением при наличии перехвата является Первое равенство возникает только из-за включения в модель перехвата, хотя это, вероятно, более популярный из двух способов его написания. Второе равенство на самом деле обеспечивает более общую интерпретацию! Этот вопрос также рассматривается в этом связанном вопросе .R 2 = Σ я ( у я - ˉ у ) 2R2

R2=i(y^iy¯)2i(yiy¯)2=1i(yiy^i)2i(yiy¯)2.

Но что произойдет, если в модели нет перехвата?

Ну, в этом случае R( тихо! ) Использует измененную форму

R02=iy^i2iyi2=1i(yiy^i)2iyi2.

Это помогает вспомнить, что пытается измерить. В первом случае он сравнивает вашу текущую модель с эталонной моделью, которая включает только перехват (т. Е. Постоянный член). Во втором случае перехват отсутствует, поэтому нет смысла сравнивать его с такой моделью. Таким образом, вместо этого вычисляется , который неявно использует эталонную модель, соответствующую только шуму .R 2 0R2R02

В дальнейшем я остановлюсь на втором выражении как для и для поскольку это выражение обобщает другие контексты, и в целом более естественно думать о вещах в терминах невязок.R 2 0R2R02

Но чем они отличаются и когда?

Давайте сделаем небольшое отступление в линейную алгебру и посмотрим, сможем ли мы выяснить, что происходит. Прежде всего, давайте назовем подогнанные значения из модели с помощью intercept и подогнанные значения от модели без перехвата . ~ уy^y~

Мы можем переписать выражения для и как а соответственно.R2R02

R2=1yy^22yy¯122,
R02=1yy~22y22,

Теперь, так как , то тогда и только тогда, когда y22=yy¯122+ny¯2R02>R2

yy~22yy^22<1+y¯21nyy¯122.

Левая часть больше единицы, поскольку модель, соответствующая , вложена в . Второе слагаемое в правой части - это среднеквадратичное значение ответов, деленное на среднеквадратичную ошибку модели только для пересечения. Таким образом, чем больше среднее значение отклика относительно другого варианта, тем больше у нас «слабости» и больше шансов на то, что доминирует над .y~y^R02R2

Обратите внимание, что все зависящие от модели вещи находятся слева, а не зависящие от модели вещи - справа.

Итак, как мы можем сделать соотношение на левой стороне маленьким?

Напомним, что и где и - матрицы проекций, соответствующие подпространствам и такие что .y~=P0yy^=P1yP0P1S0S1S0S1

Итак, чтобы отношение было близко к единице, нам нужно, чтобы подпространства и были очень похожими. Теперь и отличаются только тем, является ли базисным вектором или нет, так что это означает, что лучше быть подпространством, которое уже лежит очень близко к .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

Ниже приведен график данных с моделью с перехватом красным цветом и моделью без перехвата синим цветом.

График данных с линиями регрессии

кардинальный
источник
4
Это действительно впечатляюще, +1. Вопрос: часто, когда мы хотим судить о моделях b / t 2, мы выполняем тест с вложенной моделью, исключает ли это это, или все еще будет допустимым тестировать сокращенную модель без перехвата с полной моделью без него? ?
gung - Восстановить Монику
5
@ Gung: Нет, я не верю, что есть что-то, что мешает нам участвовать в типичном тесте. Тест не зависит от наличия перехвата, и, действительно, я полагаю, что статистика в этом случае сработает как . Это дает нам немного количественной информации о том, что если действительно , то мы знаем, что если, конечно, я правильно выполнил алгебру. FF
F=(n2)(\y\ytilde22\y\yhat221)
R02>R12
F<(n2)y¯2n1\yy¯\one22,
кардинал
1
Я предпочитаю выражениеR02=Y~2Y2
Стефан Лоран,
3
@ naught101: Я бы не сказал, что это более правдиво, но это в целом разумная точка зрения. Для настоящей экспозиции удобно считать ее отсутствующей в том смысле, что нас в конечном итоге интересует связь между подпространствами и . Разница между ними заключается в наличии или отсутствии базового вектора . S1S01
кардинал
1
Я что-то упустил. Что делает R, правильно ? Я имею в виду, является ли значение R ^ 2, о котором сообщается, даже отдаленно сопоставимым между случаями с перехватом и без него?
Энди Клифтон
1

Я бы основывал свое решение на информационных критериях, таких как критерии Акаике или Байеса-Шварца, а не на R ^ 2; даже тогда я бы не рассматривал их как абсолютные.

Если у вас есть процесс, где наклон близок к нулю, а все данные находятся далеко от источника, ваше правильное значение R ^ 2 должно быть низким, так как большая часть изменений в данных будет из-за шума. Если вы попытаетесь вписать такие данные в модель без перехвата, вы сгенерируете большой и неправильный термин наклона и, вероятно, будете выглядеть лучше R ^ 2, если используется бесплатная версия с перехватом.

Следующий график показывает, что происходит в этих крайних случаях. Здесь процесс генерации состоит в том, что x = 100,100,1, .... а y - это просто 100 + случайный шум со средним 0 и стандартным отклонением .1. Точки - черные круги, подгонка без пересечения - синяя линия, а подгонка с перехватом (обнуление наклона) - красная линия:

[Извините, это не позволит мне опубликовать график; запустите R-код ниже, чтобы сгенерировать его. Он показывает начало координат в левом нижнем углу, группу точек в верхнем правом углу. Плохая подгонка без перехвата идет из нижнего левого угла в верхний правый, а правильная подгонка - это линия, параллельная оси x]

Правильная модель для этого должна иметь R ^ 2 ноль --- постоянный плюс случайный шум. R даст вам и R ^ 2 0,99 для посадки без перехвата. Это не будет иметь большого значения, если вы будете использовать модель для прогнозирования только с значениями x в пределах диапазона обучающих данных, но с треском провалится, если x выходит за пределы узкого диапазона обучающего набора или вы пытаетесь получить истинное понимание вне предвидения.

AIC правильно показывает, что модель с перехватом является предпочтительной. Код R для этого:

 Nsamp=100
x=seq(1,100,1)*.1+100 # x=101.1,101.2,....
y=rnorm(n=length(x))+100 # random noise +100 (best model is constant)

model_withint=lm(y~x)
print(summary(model_withint))
flush.console()
model_noint=lm(y~x+0) 
print(summary(model_noint))
print (AIC(model_withint))
print(sprintf ('without intercept  AIC=%f',AIC(model_noint)))
print(sprintf ('with intercept  AIC=%f',AIC(model_withint)))
print(sprintf ('constant model  AIC=%f',AIC(lm(y~1))))
plot(x,y,ylim=c(0,105),xlim=c(0,105))
lines( c(0,105),c(0,105)*model_noint$coefficients['x'],col=c('blue'))
lines( c(0,105),c(1,1)*(lm(y~1)$coefficients['(Intercept)']),col=c('red'))

Выход AIC

   "without intercept  AIC=513.549626"
    "with intercept  AIC=288.112573"
    "constant model  AIC=289.411682"

Обратите внимание, что AIC все еще получает неправильную модель в этом случае, поскольку истинная модель является постоянной моделью; но другие случайные числа приведут к данным, для которых AIC является наименьшим для постоянной модели. Обратите внимание, что если вы отбрасываете уклон, вам следует переоснастить модель без него, не пытаться использовать перехват из модели и игнорировать уклон.

Джонатан Харрис
источник