A remoção do termo de interceptação estatisticamente significativo aumenta no modelo linear

101

Em um modelo linear simples com uma única variável explicativa,

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

Acho que remover o termo de interceptação melhora muito o ajuste (o valor de varia de 0,3 a 0,9). No entanto, o termo de interceptação parece ser estatisticamente significativo.R2

Com interceptação:

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

Sem interceptação:

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

Como você interpretaria esses resultados? Um termo de interceptação deve ser incluído no modelo ou não?

Editar

Aqui estão as somas residuais de quadrados:

RSS(with intercept) = 12.92305
RSS(without intercept) = 17.69277
Ernest A
fonte
14
Lembro-me de como a razão explicada para a variação total SOMENTE se a interceptação for incluída. Caso contrário, não pode ser derivado e perde sua interpretação. R2
Momo
@ Momo: Bom ponto. Calculei as somas residuais de quadrados para cada modelo, o que parece sugerir que o modelo com termo de interceptação é um ajuste melhor, independentemente do que diz. R2
Ernest A
4
Bem, o RSS precisa diminuir (ou pelo menos não aumentar) quando você inclui um parâmetro adicional. Mais importante, grande parte da inferência padrão em modelos lineares não se aplica quando você suprime a interceptação (mesmo que não seja estatisticamente significativa).
Macro
14
O que faz quando não há interceptação é que ele calcula (observe, nenhuma subtração da média em os termos do denominador). Isso aumenta o denominador que, para o mesmo MSE ou similar, faz com que o aumente. R 2 = 1 - Σ i ( y i - y i ) 2R R2
R2=1i(yiy^i)2iyi2
R2
cardeal
5
O não é necessariamente maior. É apenas maior sem intercepto, desde que o MSE do ajuste nos dois casos seja semelhante. Porém, observe que, como o @Macro apontou, o numerador também fica maior no caso sem interceptação, portanto depende de qual deles vence! Você está certo de que eles não devem ser comparados entre si, mas também sabe que o SSE com interceptação sempre será menor que o SSE sem interceptação. Isso faz parte do problema com o uso de medidas dentro da amostra para diagnóstico de regressão. Qual é o seu objetivo final para o uso deste modelo? R2
cardeal

Respostas:

131

Antes de tudo, devemos entender o que o Rsoftware está fazendo quando nenhuma interceptação é incluída no modelo. Lembre-se de que o cálculo usual de quando uma interceptação está presente é A primeira igualdade ocorre apenas devido à inclusão da interceptação no modelo , embora essa seja provavelmente a mais popular das duas maneiras de escrevê-lo. A segunda igualdade realmente fornece a interpretação mais geral! Este ponto também é abordado nesta questão relacionada .R 2 = Σ i ( y i - ˉ y ) 2R2

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

Mas, o que acontece se não houver interceptação no modelo?

Bem, nesse caso, R( silenciosamente! ) Usa o formato modificado

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

Isso ajuda a lembrar o que está tentando medir. No primeiro caso, ele está comparando seu modelo atual com o modelo de referência que inclui apenas uma interceptação (ou seja, termo constante). No segundo caso, não há interceptação, portanto, faz pouco sentido compará-lo a esse modelo. Então, em vez disso, é calculado, que usa implicitamente um modelo de referência correspondente apenas ao ruído .R 2 0R2R02

No que se segue, concentro-me na segunda expressão para e uma vez que essa expressão generaliza para outros contextos e geralmente é mais natural pensar nas coisas em termos de resíduos.R 2 0R2R02

Mas, como eles são diferentes e quando?

Vamos dar uma breve digressão em alguma álgebra linear e ver se conseguimos descobrir o que está acontecendo. Antes de tudo, vamos chamar os valores ajustados do modelo com interceptação e os valores ajustados do modelo sem interceptar . y^y~

Podemos reescrever as expressões para e como e respectivamente.R2R02

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

Agora, desde que , então se e somente se y22=yy¯122+ny¯2R02>R2

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

O lado esquerdo é maior que um, pois o modelo correspondente a está aninhado no modelo . O segundo termo no lado direito é a média quadrática das respostas divididas pelo erro quadrático médio de um modelo somente de interceptação. Portanto, quanto maior a média da resposta em relação à outra variação, mais "folga" temos e maior chance de dominar .y~y^R02R2

Observe que todo o material dependente do modelo está do lado esquerdo e o material não dependente do modelo está do lado direito.

Ok, então como reduzimos a proporção no lado esquerdo?

Recorde-se que e onde e são matrizes de projecção correspondentes à subespaços e tal que .y~=P0yy^=P1yP0P1S0S1S0S1

Portanto, para que a proporção fique próxima de uma, precisamos que os subespaços e sejam muito semelhantes. Agora e diferem apenas se é um vetor base ou não, o que significa que melhor que seja um subespaço que já esteja muito próximo de .S0S1S0S11S01

Em essência, isso significa que o nosso preditor deve ter uma forte compensação média e que esse desvio médio deve dominar a variação do preditor.

Um exemplo

Aqui tentamos gerar um exemplo com uma interceptação explicitamente no modelo e que se comporta próximo ao caso da pergunta. Abaixo está um Rcódigo simples para demonstrar.

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)

Isso fornece a seguinte saída. Começamos com o modelo com interceptação.

# 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

Então, veja o que acontece quando excluímos a interceptação.

# 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

Abaixo está um gráfico dos dados com o modelo com interceptação em vermelho e o modelo sem interceptação em azul.

Gráfico de dados com linhas de regressão

cardeal
fonte
4
Isso é realmente espetacular, +1. Uma pergunta: geralmente quando queremos adjudicar modelos b / t 2, realizamos um teste de modelo aninhado, isso impede que, ou ainda seria válido testar um modelo reduzido sem a interceptação contra um modelo completo com ele ?
gung
5
@gung: Não, não acredito que exista algo que nos impeça do teste típico . O teste não depende da presença de uma interceptação e, de fato, acredito que a estatística funcionará neste caso como . Isso nos fornece um pouco de informação quantitativa, pois, se de fato , sabemos que assumindo, é claro, que eu fiz a álgebra corretamente. FF
F=(n2)(\y\ytilde22\y\yhat221)
R02>R12
F<(n2)y¯2n1\yy¯\one22,
cardeal
1
Eu prefiro a expressãoR02=Y~2Y2
Stéphane Laurent
3
@ naught101: Eu não diria que é mais verdade, mas é um ponto de vista igualmente razoável, de um modo geral. Para a presente exposição, é conveniente considerá-la ausente no sentido em que estamos interessados ​​no relacionamento entre os subespaços e . A diferença entre os dois é a presença, ou a falta dela, do vetor base . S1S01
cardeal
1
Estou sentindo falta de algo. O que R faz, correto ? Quero dizer, o valor de R ^ 2 relatado é remotamente comparável entre os casos com e sem interceptação?
21714 Andy Clifton
1

Basearia minha decisão em critérios de informação como os critérios de Akaike ou Bayes-Schwarz em vez de R ^ 2; mesmo assim, eu não os veria como absolutos.

Se você tiver um processo em que a inclinação esteja próxima de zero e todos os dados estejam longe da origem, seu R ^ 2 correto deverá ser baixo, pois a maior parte da variação nos dados ocorrerá devido a ruído. Se você tentar ajustar esses dados a um modelo sem interceptar, gerará um termo de inclinação grande e errado e provavelmente um R ^ 2 com melhor aparência se a versão sem interceptação for usada.

O gráfico a seguir mostra o que acontece nesses casos extremos. Aqui, o processo de geração é que x = 100.100,1, .... e y são apenas 100 + ruído aleatório com média 0 e desvio padrão .1. Os pontos são círculos pretos, o ajuste sem a interceptação é a linha azul e o ajuste com a interceptação (zerando a inclinação) é a linha vermelha:

[Desculpe, não vai me deixar postar o gráfico; execute o código R abaixo para gerá-lo. Ele mostra a origem no canto inferior esquerdo, o conjunto de pontos no canto superior direito. O ajuste incorreto sem interceptação vai da esquerda inferior para a direita superior e o ajuste correto é uma linha paralela ao eixo x]

O modelo correto para isso deve ter um R ^ 2 de zero - seja um ruído constante mais aleatório. R dará a você e R ^ 2 de 0,99 para o ajuste sem interceptação. Isso não importará muito se você usar apenas o modelo para previsão com valores x dentro do intervalo dos dados de treinamento, mas falhará miseravelmente se x sair do intervalo estreito do conjunto de treinamento ou se estiver tentando obter informações verdadeiras além da previsão.

O AIC mostra corretamente que o modelo com a interceptação é o preferido. O código R para isso é:

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

A saída AIC é

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

Observe que o AIC ainda obtém o modelo errado neste caso, pois o modelo verdadeiro é o modelo constante; mas outros números aleatórios produzirão dados para os quais o AIC é mais baixo para o modelo constante. Observe que, se você descartar a inclinação, deve recolocar o modelo sem ela, não tente usar a interceptação do modelo e ignore a inclinação.

Jonathan Harris
fonte