Видалення статистично значущого перехоплюючого терміну збільшує у лінійній моделі


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

Але, чим вони відрізняються, і коли?

Давайте проведемо короткий відступ у деяку лінійну алгебру і подивимось, чи зможемо ми зрозуміти, що відбувається. Перш за все, назвемо пристосовані значення з моделі за допомогою перехоплення та встановлених значень від моделі без перехоплення . ~ у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 моделі, ми проводимо тестування вкладеної моделі, чи це перешкоджає тому, чи все-таки справедливим буде тестування зменшеної моделі без перехоплення проти повної моделі w / it ?
gung

5
@gung: Ні, я не вірю, що щось не виключає нас від типового -test. Тест не залежить від наявності перехоплення, і, справді, я вважаю, що -statistic вийде в цьому випадку . Це дає нам трохи кількісної інформації у тому, що якщо , то ми знаємо, що припускаючи, звичайно, алгебру я зробив правильно. FF
F=(n2)(\y\ytilde22\y\yhat221)
R02>R12
F<(n2)y¯2n1\yy¯\one22,
кардинал

1
Я віддаю перевагу виразуR02=Y~2Y2
Stéphane Laurent

3
@ naught101: Я б не сказав, що це більш правдиво, але це однаково розумна точка зору, взагалі кажучи. Для нинішньої експозиції, зручно розглядати його як відсутній в тому сенсі , що ми в кінцевому рахунку зацікавлені у відносинах між підпросторами і . Різниця між ними - це наявність або відсутність базового вектора . S1S01
кардинал

1
Я щось пропускаю. Це те, що робить R, правильно ? Я маю на увазі, чи є значення R ^ 2, про яке повідомляється, навіть віддалено порівнянне між випадками перехоплення та без них?
Енді Кліфтон,

1

Я б базував своє рішення на таких інформаційних критеріях, як критерії Akaike або Bayes-Schwarz, а не R ^ 2; навіть тоді я б не вважав це абсолютним.

Якщо у вас є процес, коли нахил близький до нуля, і всі дані далекі від походження, ваш правильний R ^ 2 повинен бути низьким, оскільки більшість варіацій даних буде викликана шумом. Якщо ви спробуєте пристосувати такі дані до моделі без перехоплення, ви генеруєте великий і неправильний термін нахилу і, ймовірно, краще виглядатиме R ^ 2, якщо буде використана безкоштовна версія перехоплення.

Наступний графік показує, що відбувається в таких крайніх випадках. Тут процес генерації полягає в тому, що x = 100,100.1, .... і y - це просто 100 + випадковий шум із середнім значенням 0 і стандартним відхиленням .1. Окуляри - це чорні кола, облягаючий без перехоплення - синя лінія, а підтяжка з перехопленням (нульовий нахил) - червона лінія:

[Вибачте, це не дозволить мені опублікувати графік; запустіть R-код нижче для його створення. Він показує початок у нижньому лівому куті, скупчення точок у правому верхньому куті. Неправильне підхоплення без перехрестя йде з нижнього лівого в верхнє праворуч, а правильне прилягання - це лінія, паралельна осі x]

Правильна модель для цього повинна мати R ^ 2 нуля --- бути постійним плюс випадковий шум. R дасть вам і R ^ 2 від .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 є найнижчим для постійної моделі. Зауважте, що якщо ви відкинете нахил, вам слід переобладнати модель без неї, а не намагатися використовувати перехоплення від моделі та ігнорувати нахил.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.