Usuwanie istotnej statystycznie perspektywie przechwytujący zwiększa

101

W prostym modelu liniowym z jedną zmienną objaśniającą

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

Znaleźć że usunięcie termin przechwytujący znacznie poprawia dopasowanie (wartość R2 przechodzi od 0,3 do 0,9). Jednak pojęcie przechwytywania wydaje się istotne statystycznie.

Z przechwyceniem:

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

Bez przechwytywania:

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

Jak interpretowałbyś te wyniki? Czy termin przechwytujący powinien być uwzględniony w modelu, czy nie?

Edytować

Oto pozostałe sumy kwadratów:

RSS(with intercept) = 12.92305
RSS(without intercept) = 17.69277
Ernest A.
źródło
14
R2
R2
4
Cóż, RSS musi spadać (a przynajmniej nie zwiększać), gdy dołączasz dodatkowy parametr. Co ważniejsze, wiele standardowych wnioskowania w modelach liniowych nie ma zastosowania, gdy tłumisz punkt przecięcia (nawet jeśli nie jest on statystycznie istotny).
Makro
14
R
R2=1i(yiy^i)2iyi2
R2
5
R2

Odpowiedzi:

131

RR2

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

Ale co się stanie, jeśli w modelu nie ma przechwytywania?

R

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

R2R02

R2R02

Ale czym się różnią i kiedy?

Weźmy krótką dygresję do jakiejś algebry liniowej i zobaczmy, czy możemy dowiedzieć się, co się dzieje. Po pierwsze, nazwijmy dopasowane wartości z modelu za pomocą intercept i dopasowane wartości z modelu bez przechwytywania . ~ yy^y~

Możemy przepisać wyrażenia dla i jako a odpowiednio.R2R02

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

Teraz, ponieważ , a następnie jeśli i tylko jeśli y22=yy¯122+ny¯2R02>R2

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

Lewa strona jest większa niż jeden, ponieważ model odpowiadający jest zagnieżdżony w . Drugi termin po prawej stronie to średnia kwadratowa odpowiedzi podzielona przez średni błąd kwadratowy modelu tylko przechwytującego. Tak więc, im większa średnia odpowiedź w stosunku do innej odmiany, tym bardziej „luz” mamy i większa szansa, że zdominuje .y~y^R02R2

Zauważ, że wszystkie rzeczy zależne od modelu znajdują się po lewej stronie, a rzeczy nie zależne od modelu po prawej stronie.

Ok, więc jak sprawić, by stosunek po lewej stronie był mały?

Przypomnijmy, że i gdzie i są macierzami projekcyjne odpowiadające podprzestrzeni Änd taki sposób, że .y~=P0yy^=P1yP0P1S0S1S0S1

Tak więc, aby stosunek do być blisko do jednego, musimy podprzestrzenie i być bardzo podobne. Teraz i różnią się tylko czy jest wektorem podstawa czy nie, więc to oznacza, że lepiej być podprzestrzeń że już leży bardzo blisko .S0S1S0S11S01

Zasadniczo oznacza to, że nasz predyktor powinien sam mieć silne przesunięcie średnie i że to przesunięcie średnie powinno zdominować jego odmianę.

Przykład

W tym przypadku próbujemy wygenerować przykład z przecięciem jawnie w modelu, który zachowuje się blisko przypadku w pytaniu. Poniżej znajduje się prosty Rkod do zademonstrowania.

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)

Daje to następujący wynik. Zaczynamy od modelu z przechwyceniem.

# 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

Następnie zobacz, co się stanie, gdy wykluczymy przechwytywanie.

# 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

Poniżej znajduje się wykres danych z modelem z punktem przecięcia w kolorze czerwonym i modelem bez punktu przecięcia w kolorze niebieskim.

Wykres danych z liniami regresji

kardynał
źródło
4
To jest naprawdę spektakularne, +1. Pytanie: często, gdy chcemy rozstrzygnąć modele b / t 2, przeprowadzamy test modelu zagnieżdżonego, czy to wyklucza, czy nadal byłoby prawidłowe testowanie modelu zredukowanego bez przechwytywania względem pełnego modelu bez niego ?
gung
5
@gung: Nie, nie wierzę, że cokolwiek wyklucza nas z typowego testuTest nie zależy od obecności przechwytywania i rzeczywiście uważam, że statystyka zadziała w tym przypadku na . To daje nam trochę informacji ilościowych, ponieważ jeśli rzeczywiście , to wiemy, że zakładając oczywiście, że poprawnie wykonałem algebrę. FF
F=(n2)(\y\ytilde22\y\yhat221)
R02>R12
F<(n2)y¯2n1\yy¯\one22,
kardynał
1
Wolę wyrażenieR02=Y~2Y2
Stéphane Laurent
3
@ naught101: Nie powiedziałbym, że jest to bardziej prawdziwe, ale ogólnie jest to równie rozsądny punkt widzenia. Dla niniejszego wykładu, jest to wygodne, aby rozważyć to jako nieobecny w tym sensie, że jesteśmy zainteresowani ostatecznie relacji pomiędzy podprzestrzeni i . Różnica między nimi polega na obecności lub jego braku wektora . S1S01
kardynał
1
Coś mi brakuje. Czy to, co robi R, zgadza się ? Mam na myśli, czy zgłaszana wartość R ^ 2 jest nawet zdalnie porównywalna między przypadkami przechwytującymi zi bez nich?
Andy Clifton
1

Decyzję oparłbym na kryteriach informacyjnych, takich jak kryteria Akaike lub Bayes-Schwarz, a nie R ^ 2; nawet wtedy nie uważałbym ich za absolutne.

Jeśli masz proces, w którym nachylenie jest bliskie zeru, a wszystkie dane są dalekie od początku, poprawna wartość R ^ 2 powinna być niska, ponieważ większość zmian w danych będzie spowodowana szumem. Jeśli spróbujesz dopasować takie dane do modelu bez przechwytywania, wygenerujesz duży i niewłaściwy termin nachylenia i prawdopodobnie lepiej wyglądający R ^ 2, jeśli zostanie użyta wersja bezpłatna przechwytująca.

Poniższy wykres pokazuje, co dzieje się w tych ekstremalnych przypadkach. Tutaj proces generowania jest taki, że x = 100,100,1, .... a y to tylko 100 + losowy szum ze średnią 0 i odchyleniem standardowym .1. Punkty są czarnymi okręgami, dopasowanie bez przecięcia to niebieska linia, a dopasowanie z przecięciem (zerowanie nachylenia) to czerwona linia:

[Przepraszam, że nie pozwoli mi opublikować wykresu; uruchom poniższy kod R, aby go wygenerować. Pokazuje początek w lewym dolnym rogu, skupisko punktów w prawym górnym rogu. Nieprawidłowe dopasowanie bez przecięcia przechodzi od dolnej lewej do prawej górnej, a prawidłowe dopasowanie to linia równoległa do osi x]

Prawidłowy model do tego powinien mieć R ^ 2 równy zero - być stałym plus losowy szum. R da ci i R ^ 2 0,99 za dopasowanie bez przechwytywania. Nie będzie to miało większego znaczenia, jeśli użyjesz modelu tylko do prognozowania z wartościami xw zakresie danych treningowych, ale zawiedzie się źle, jeśli x wykracza poza wąski zakres zestawu treningowego lub próbujesz uzyskać prawdziwy wgląd poza zwykłymi przewidywaniami.

AIC poprawnie pokazuje, że preferowany jest model z przechwyceniem. Kod R tego jest następujący:

 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'))

Wyjście AIC to

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

Zauważ, że AIC nadal otrzymuje niewłaściwy model w tym przypadku, ponieważ prawdziwym modelem jest model stały; ale inne liczby losowe dadzą dane, dla których AIC jest najniższy dla modelu stałego. Zauważ, że jeśli odrzucisz nachylenie, powinieneś ponownie zamontować model bez niego, nie próbuj używać przecięcia z modelu i zignoruj ​​nachylenie.

Jonathan Harris
źródło