Prima di tutto, dovremmo capire cosa R
sta facendo il software quando nessuna intercettazione è inclusa nel modello. Ricorda che il solito calcolo di
quando è presente un'intercettazione è
La prima uguaglianza si verifica solo a causa dell'inclusione dell'intercetta nel modello anche se questo è probabilmente il più popolare dei due modi di scriverlo. La seconda uguaglianza in realtà fornisce l'interpretazione più generale! Questo punto è anche l'indirizzo in questa domanda correlata .R2
R2=∑i(y^i−y¯)2∑i(yi−y¯)2=1−∑i(yi−y^i)2∑i(yi−y¯)2.
Ma cosa succede se non ci sono intercettazioni nel modello?
Bene, in quel caso, R
( silenziosamente! ) Usa la forma modificata
R20=∑iy^2i∑iy2i=1−∑i(yi−y^i)2∑iy2i.
Aiuta a ricordare ciò che sta cercando di misurare. Nel primo caso, sta confrontando il modello corrente con il modello di riferimento
che include solo un'intercettazione (ovvero, termine costante). Nel secondo caso, non c'è intercettazione, quindi ha poco senso confrontarlo con un tale modello. Quindi, invece, viene calcolato , che utilizza implicitamente un modello di riferimento corrispondente solo al rumore .R2R20
Nel seguito che segue, mi concentro sulla seconda espressione sia per che per poiché quell'espressione si generalizza ad altri contesti ed è generalmente più naturale pensare alle cose in termini di residui.R2R20
Ma come sono diversi e quando?
Facciamo una breve digressione in qualche algebra lineare e vediamo se riusciamo a capire cosa sta succedendo. Prima di tutto, chiamiamo i valori adattati dal modello con intercetta e i valori adattati dal modello senza intercettare . y^y~
Possiamo riscrivere le espressioni per e come
e
rispettivamente.R2R20
R2=1−∥y−y^∥22∥y−y¯1∥22,
R20=1−∥y−y~∥22∥y∥22,
Ora, poiché , quindi se e solo se
∥y∥22=∥y−y¯1∥22+ny¯2R20>R2
∥y−y~∥22∥y−y^∥22<1+y¯21n∥y−y¯1∥22.
Il lato sinistro è maggiore di uno poiché il modello corrispondente a è nidificato all'interno di quello di . Il secondo termine sul lato destro è la media quadrata delle risposte divisa per l'errore quadratico medio di un modello solo intercetta. Quindi, maggiore è la media della risposta rispetto all'altra variazione, maggiore è il "gioco" che abbiamo e maggiori sono le probabilità che domini .y~y^R20R2
Si noti che tutte le cose dipendenti dal modello si trovano sul lato sinistro e che le cose non dipendenti dal modello si trovano sul lato destro.
Ok, quindi come possiamo ridurre il rapporto sul lato sinistro?
Ricordiamo che
e dove e sono matrici di proiezione corrispondenti a sottospazi e tale che .y~=P0yy^=P1yP0P1S0S1S0⊂S1
Quindi, affinché il rapporto sia vicino a uno, abbiamo bisogno che i sottospazi
e siano molto simili. Ora e differiscono solo dal fatto che sia un vettore base o meno, quindi ciò significa che
essere un sottospazio che si trova già molto vicino a .S0S1S0S11S01
In sostanza, ciò significa che il nostro predittore dovrebbe avere un offset medio forte stesso e che questo offset medio dovrebbe dominare la variazione del predittore.
Un esempio
Qui proviamo a generare un esempio con un'intercettazione esplicita nel modello e che si comporta vicino al caso nella domanda. Di seguito è riportato un R
codice semplice da dimostrare.
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)
Questo dà il seguente output. Iniziamo con il modello con intercetta.
# 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
Quindi, vedi cosa succede quando escludiamo l'intercettazione.
# 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
Di seguito è riportato un diagramma dei dati con il modello con intercettazione in rosso e il modello senza intercettazione in blu.