Quando é correto remover a interceptação em um modelo de regressão linear?


118

Estou executando modelos de regressão linear e me perguntando quais são as condições para remover o termo de interceptação.

Ao comparar os resultados de duas regressões diferentes, em que uma tem a interceptação e a outra não, percebo que o da função sem a interceptação é muito maior. Existem certas condições ou suposições que devo seguir para garantir que a remoção do termo de interceptação seja válida?R2


11
@chi obrigado por editar minha pergunta. existem coisas que eu deveria esclarecer ou reformular em futuras perguntas?
analyticsPierce

3
Sua pergunta está bem estabelecida. A @chl gentilmente melhorou a formatação, só isso. Envolveu TeXificar o "R ^ 2" (foi transformado em R ^ 2 , que é processado como ). R $ 2$$R2
whuber

11
O que a intercepção significaria no seu modelo? A partir das informações da sua pergunta, parece que seria o valor esperado da sua resposta quando sqft = 0 e lotesize = 0 e banhos = 0. Isso nunca vai acontecer na realidade?
timbp

11
Em vez de y = a + b1 x1 + b2 x2 + b3x3, posso omitir a?
Travis

3
NB : Alguns desses comentários e respostas abordam essencialmente a mesma pergunta (enquadrada no contexto de uma regressão do preço da habitação) que foi mesclada com esta como duplicada.
whuber

Respostas:


87

A resposta mais curta : nunca , a menos que você tenha certeza de que sua aproximação linear do processo de geração de dados (modelo de regressão linear), seja por algum motivo teórico ou por qualquer outro motivo, seja forçada a passar pela origem . Caso contrário, os outros parâmetros de regressão serão enviesados, mesmo que a interceptação seja estatisticamente insignificante (estranho, mas é assim, consulte a Econometria Introdutória da Brooks, por exemplo). Finalmente, como muitas vezes explico aos meus alunos, ao deixar o termo de interceptação, você garante que o termo residual é de média zero.

Para o seu caso de dois modelos, precisamos de mais contexto. Pode acontecer que o modelo linear não seja adequado aqui. Por exemplo, você precisa registrar a transformação primeiro se o modelo for multiplicativo. Tendo processos exponencialmente crescentes, pode acontecer ocasionalmente que para o modelo sem a interceptação seja "muito" maior.R2

Rastreie os dados, teste o modelo com o teste RESET ou qualquer outro teste de especificação linear, isso pode ajudar a ver se meu palpite é verdadeiro. E construir os modelos com mais alto é uma das últimas propriedades estatísticas com as quais realmente me preocupo, mas é bom apresentar às pessoas que não estão tão familiarizadas com a econometria (existem muitos truques sujos para determinar com precisão. 1 :)).R2


3
-1 para "nunca", veja o exemplo 1 da resposta de Joshuas
curioso

4
@Curious, "never" é escrito com os exemplos "a menos que" abaixo mostrem as exceções quando é legal remover a interceptação. Quando você não conhece o processo ou a teoria de geração de dados ou não é obrigado a passar pela origem por padronização ou qualquer outro modelo especial, mantenha-o. Manter a interceptação é como usar a lixeira para coletar todas as distorções causadas pela aproximação linear e outras simplificações. PS: praticamente a resposta mostra que você leu apenas o mais curto :) Muito obrigado a Joshua (+1) pelos exemplos estendidos.
Dmitrij Celov

3
Você perdeu o objetivo do Exemplo 1 de Josué e parece ainda ignorá-lo completamente. Em modelos com covariável categórica, a remoção da interceptação resulta no mesmo modelo com apenas parametrização diferente. Este é um caso legítimo quando a interceptação pode ser removida.
curioso

2
@Curious, no exemplo 1 de Joshua, você precisa adicionar uma nova variável dummy para o nível da variável categórica que você considerava anteriormente como linha de base, e essa nova variável dummy terá o valor da interceptação, portanto você NÃO está removendo a interceptação, apenas renomeá-lo e reparameterizando o restante dos parâmetros da covariável categórica. Portanto, o argumento de Dmitrij é válido.
Rufo

59

A remoção da interceptação é um modelo diferente, mas há muitos exemplos em que é legítimo. As respostas até agora já discutiram em detalhes o exemplo em que a verdadeira interceptação é 0. Vou focar em alguns exemplos em que podemos estar interessados ​​em uma parametrização atípica do modelo.

Exemplo 1: O modelo no estilo ANOVA. Para variáveis ​​categóricas, normalmente criamos vetores binários que codificam a associação ao grupo. O modelo de regressão padrão é parametrizado como interceptar vetores dummy + k - 1. A interceptação codifica o valor esperado para o grupo "referência", ou o vetor omitido, e os vetores restantes testam a diferença entre cada grupo e a referência. Mas, em alguns casos, pode ser útil ter o valor esperado de cada grupo.

dat <- mtcars
dat$vs <- factor(dat$vs)

## intercept model: vs coefficient becomes difference
lm(mpg ~ vs + hp, data = dat)

Coefficients:
(Intercept)          vs1           hp  
   26.96300      2.57622     -0.05453  

## no intercept: two vs coefficients, conditional expectations for both groups
lm(mpg ~ 0 + vs + hp, data = dat)

Coefficients:
     vs0       vs1        hp  
26.96300  29.53922  -0.05453  

Exemplo 2: O caso de dados padronizados. Em alguns casos, pode-se estar trabalhando com dados padronizados. Nesse caso, a interceptação é 0 por design. Penso que um exemplo clássico disso foi o modelo ou fator de equações estruturais de estilo antigo, que operava apenas nas matrizes de covariância dos dados. No caso abaixo, provavelmente é uma boa ideia estimar a interceptação de qualquer maneira, apenas para diminuir o grau adicional de liberdade (que você realmente deveria ter perdido de qualquer maneira porque a média foi estimada), mas há várias situações em que construção, as médias podem ser 0 (por exemplo, certas experiências em que os participantes atribuem classificações, mas são limitadas a fornecer pontos positivos e negativos iguais).

dat <- as.data.frame(scale(mtcars))

## intercept is 0 by design
lm(mpg ~ hp + wt, data = dat)

Coefficients:
(Intercept)           hp           wt  
  3.813e-17   -3.615e-01   -6.296e-01  

## leaving the intercept out    
lm(mpg ~ 0 + hp + wt, data = dat)

Coefficients:
     hp       wt  
-0.3615  -0.6296  

Exemplo 3: Modelos multivariados e interceptações ocultas. Este exemplo é semelhante ao primeiro de várias maneiras. Nesse caso, os dados foram empilhados para que duas variáveis ​​diferentes agora estejam em um vetor longo. Uma segunda variável codifica informações sobre se o vetor de resposta,, ypertence a mpgou disp. Nesse caso, para obter as interceptações separadas para cada resultado, você suprime a interceptação geral e inclui os dois vetores fictícios para a medida. Esta é uma espécie de análise multivariada. Normalmente não é feito usandolm()porque você repetiu medidas e provavelmente deve permitir a não independência. No entanto, existem alguns casos interessantes em que isso é necessário. Por exemplo, ao tentar fazer uma análise de mediação com efeitos aleatórios, para obter a matriz de covariância de variância completa, você precisa dos dois modelos estimados simultaneamente, o que pode ser feito empilhando os dados e usando de maneira inteligente os vetores fictícios.

## stack data for multivariate analysis
dat <- reshape(mtcars, varying = c(1, 3), v.names = "y",
  timevar = "measure", times = c("mpg", "disp"), direction = "long")
dat$measure <- factor(dat$measure)

## two regressions with intercepts only
lm(cbind(mpg, disp) ~ 1, data = mtcars)

Coefficients:
             mpg     disp  
(Intercept)   20.09  230.72

## using the stacked data, measure is difference between outcome means
lm(y ~ measure, data = dat)

Coefficients:
(Intercept)   measurempg  
      230.7       -210.6  

## separate 'intercept' for each outcome
lm(y ~ 0 + measure, data = dat)

Coefficients:
measuredisp   measurempg  
     230.72        20.09  

Não estou argumentando que as interceptações geralmente devam ser removidas, mas é bom ser flexível.


7
+1. Eu não levei as pessoas a dizer rigidamente 'nunca', mas é sempre bom ter outra perspectiva e essa é uma resposta muito clara e ponderada. Bem-vindo ao CV, será ótimo tê-lo como parte da comunidade.
gung

3
@gung obrigado, você está certo. Eu editei esse idioma da minha resposta, pois acho que era inflamatório e desnecessário.
Joshua

11
@ Josué: Desculpe por fazer uma pergunta em um post de quase 2 anos, mas existem referências no seu primeiro exemplo? Estou pensando em executar um modelo de não interceptação nos meus dados, onde a variável preditora é categórica e estou interessado em saber se cada nível é significativamente diferente de 0. Obrigado!
Alex

@Alex Qualquer bom texto de regressão deve ser feito (o capítulo 8 da Análise de regressão múltipla / correlação aplicada para as Ciências do Comportamento, terceira edição cobre algumas) - você só precisa falar sobre contrastes e como codificar variáveis ​​categóricas. Uma maneira de pensar sobre isso é que você está estimando interceptações separadas para cada grupo, em vez de deixar de fora a interceptação.
Joshua

@ Josué, seu primeiro exemplo causou alguma confusão em outras partes deste site . Meu entendimento aqui é que você está sugerindo um truque útil para mostrar estimativas de parâmetros sem precisar acrescentar valor à interceptação e que não está sugerindo que o curso usual seja usar um modelo com a interceptação removida para realizar a anova. Em R, em quase todos os casos, usaria-se um modelo com interceptação para conduzir uma anova tradicional.
Sal Mangiafico

29

Há boas respostas aqui. Duas pequenas coisas:

  1. R2R2R2
  2. Xmesmo se a verdadeira interceptação for 0 .

2
O @AdamO faz uma observação semelhante ao item 2 aqui: coeficiente de regressão linear positivo , mas desenvolve a ideia muito mais completamente.
gung

14

Você não deve interromper a interceptação, independentemente de ter ou não ver todas as variáveis ​​explicativas com valores zero.

Há uma boa resposta para uma pergunta muito semelhante aqui .

Se você remover a interceptação, todas as outras estimativas ficarão tendenciosas. Mesmo que o valor real da interceptação seja aproximadamente zero (o que é tudo o que você pode concluir com seus dados), você estará mexendo nas pistas se forçar que seja exatamente zero.

A MENOS QUE - você está medindo algo com um modelo físico muito claro e óbvio que exige interceptação como zero (por exemplo, você tem altura, largura e comprimento de um prisma retangular como variáveis ​​explicativas e a variável de resposta é volume com algum erro de medição). Se sua variável de resposta é o valor da casa, você definitivamente precisa deixar a interceptação em.


11
Você pode explicar por que precisamos da interceptação para a previsão do preço da habitação? por que todo o X seria zero para qualquer casa?
Elf

10

OK, então você mudou muito a pergunta

Você pode deixar de fora a interceptação quando souber que é 0. É isso. E não, você não pode fazê-lo porque não é significativamente diferente de 0, você precisa saber que é 0 ou que seus resíduos são tendenciosos. E, nesse caso, é 0, portanto não fará diferença se você deixar de fora ... portanto, nunca deixe de fora.

R2


2
E quando queremos testar a cointegração usando o Engle / Granger em duas etapas? en.wikipedia.org/wiki/Cointegration
Jase

5

A maioria dos modelos de regressão múltipla inclui um termo constante (ou seja, a interceptação), pois isso garante que o modelo seja imparcial - ou seja, a média dos resíduos será exatamente zero. (Os coeficientes em um modelo de regressão são estimados por mínimos quadrados - ou seja, minimizando o erro quadrático médio. Agora, o erro quadrático médio é igual à variação dos erros mais o quadrado de sua média: essa é uma identidade matemática. o valor da constante no modelo altera a média dos erros, mas não afeta a variância.Portanto, se a soma dos erros ao quadrado deve ser minimizada, a constante deve ser escolhida de forma que a média dos erros seja zero. )

Em um modelo de regressão simples, a constante representa a interceptação em Y da linha de regressão, de forma não padronizada. Em um modelo de regressão múltipla, a constante representa o valor que seria previsto para a variável dependente se todas as variáveis ​​independentes fossem simultaneamente iguais a zero - uma situação que pode não ser física ou economicamente significativa. Se você não está particularmente interessado no que aconteceria se todas as variáveis ​​independentes fossem simultaneamente zero, normalmente você deixa a constante no modelo, independentemente de sua significância estatística. Além de garantir que os erros na amostra sejam imparciais, a presença da constante permite que a linha de regressão "busque seu próprio nível" e forneça o melhor ajuste aos dados que podem ser apenas linearmente localmente.

No entanto, em casos raros, você pode excluir a constante do modelo. Essa é uma opção de ajuste de modelo no procedimento de regressão em qualquer pacote de software e, às vezes, é chamada de regressão através da origem ou RTO, abreviando. Normalmente, isso será feito apenas se:

  1. é possível imaginar as variáveis ​​independentes, todas assumindo o valor zero simultaneamente, e você sente que, nesse caso, deve seguir logicamente que a variável dependente também será igual a zero; se não
  2. a constante é redundante com o conjunto de variáveis ​​independentes que você deseja usar.

Um exemplo do caso (1) seria um modelo no qual todas as variáveis ​​- dependentes e independentes - representassem primeiras diferenças de outras séries temporais. Se você estiver regredindo a primeira diferença de Y na primeira diferença de X, estará prevendo diretamente as alterações em Y como uma função linear das alterações em X, sem referência aos níveis atuais das variáveis. Nesse caso, pode ser razoável (embora não obrigatório) supor que Y deve permanecer inalterado, em média, sempre que X permanecer inalterado - ou seja, que Y não deve ter uma tendência ascendente ou descendente na ausência de qualquer alteração na nível de X.

Um exemplo do caso (2) seria uma situação em que você deseja usar um conjunto completo de variáveis ​​de indicadores sazonais - por exemplo, você está usando dados trimestrais e deseja incluir as variáveis ​​Q1, Q2, Q3 e Q4 representando aditivos efeitos sazonais. Assim, Q1 pode parecer 1 0 0 0 1 0 0 0 ..., Q2 pareceria 0 1 0 0 0 1 0 0 ... e assim por diante. Você não pode usar todos os quatro e uma constante no mesmo modelo, pois Q1 + Q2 + Q3 + Q4 = 1 1 1 1 1 1 1 1 1. . . . , que é o mesmo que um termo constante. Ou seja, as cinco variáveis ​​Q1, Q2, Q3, Q4 e CONSTANT não são linearmente independentes: qualquer uma delas pode ser expressa como uma combinação linear das outras quatro. Um pré-requisito técnico para ajustar um modelo de regressão linear é que as variáveis ​​independentes sejam linearmente independentes; caso contrário, os coeficientes dos mínimos quadrados não podem ser determinados exclusivamente,

Uma palavra de advertência: o quadrado R e a estatística F não têm o mesmo significado em um modelo RTO que em um modelo de regressão comum e não são calculados da mesma maneira por todos os softwares. Veja este artigo para algumas advertências. Você não deve tentar comparar o quadrado do R entre os modelos que incluem e não incluem um termo constante, embora seja correto comparar o erro padrão da regressão.

Observe que o termo "independente" é usado (pelo menos) de três maneiras diferentes no jargão da regressão: qualquer variável única pode ser chamada de variável independente se estiver sendo usada como preditor, e não como predicado. Um grupo de variáveis ​​é linearmente independente se nenhuma delas puder ser expressa exatamente como uma combinação linear das outras. Diz-se que um par de variáveis ​​é estatisticamente independente se elas não forem apenas linearmente independentes, mas também totalmente não informativas uma em relação à outra. Em um modelo de regressão, você deseja que sua variável dependente seja estatisticamente dependente das variáveis ​​independentes, que devem ser linearmente (mas não necessariamente estatisticamente) independentes entre si.


2
A que artigo você está se referindo?
gung

2

Revisão completa dos meus pensamentos. De fato, interromper a interceptação causará um problema de viés.

Você já pensou em centralizar seus dados para que uma interceptação tivesse algum significado e evitasse explicar como alguns valores (irracionais) poderiam dar valores negativos? Se você ajustar todas as três variáveis ​​explicativas subtraindo o sqrft médio, o tamanho médio do lote e o banho médio, a interceptação agora indicará o valor (de uma casa?) Com o sdrft, o tamanho do lote e os banhos médios.

Essa centralização não altera o relacionamento relativo das variáveis ​​independentes. Portanto, o ajuste do modelo nos dados centralizados ainda considerará os banhos insignificantes. Montar o modelo sem o banho incluído. Você ainda pode obter um valor-p grande para a interceptação, mas ele deve ser incluído e você terá um modelo no formato y = a + b (sqrft) + c (tamanho do lote).


1

Passei algum tempo respondendo a uma pergunta semelhante postada por outra pessoa, mas ela estava fechada. Existem ótimas respostas aqui, mas a resposta que forneço é um pouco mais simples. Pode ser mais adequado para pessoas que têm um fraco entendimento de regressão.

Q1: como interpretar a interceptação no meu modelo?

Nos modelos de regressão, o objetivo é minimizar a quantidade de variação inexplicada em uma variável de resultado:

y = b0 + b1⋅x + ϵ

onde y é o valor previsto da sua medida de resultado (por exemplo, log_blood_hg), b0 é a interceptação, b1 é a inclinação, x é uma variável preditora e ϵ é um erro residual.

A interceptação (b0) é o valor médio previsto de y quando todos x = 0. Em outras palavras, é o valor da linha de base de y, antes de você usar quaisquer variáveis ​​(por exemplo, espécies) para minimizar ainda mais ou explicar a variação em log_blood_hg .

Ao adicionar uma inclinação (que estima como um aumento / diminuição de uma unidade em log_blood_hg muda com um aumento de uma unidade em x, por exemplo, espécies), adicionamos o que já sabemos sobre a variável de resultado, que é seu valor de linha de base (por exemplo, interceptação), com base na mudança em outra variável.

Q2: Quando é apropriado incluir ou não a interceptação, principalmente no que diz respeito ao fato de os modelos apresentarem resultados muito diferentes?

Para modelos simples como esse, nunca é realmente apropriado interromper a interceptação.

Os modelos apresentam resultados diferentes quando você interrompe a interceptação porque, em vez de aterrar a inclinação no valor da linha de base de Y, ela é forçada a passar pela origem de y, que é 0. Portanto, a inclinação fica mais íngreme (ou seja, mais poderosa e significativa ) porque você forçou a linha através da origem, não porque faz um trabalho melhor de minimizar a variação em y. Em outras palavras, você criou artificialmente um modelo que minimiza a variação em y removendo a interceptação ou o ponto de aterramento inicial do seu modelo.

Há casos em que a remoção da interceptação é apropriada - como ao descrever um fenômeno com uma interceptação 0. Você pode ler sobre isso aqui , além de outras razões pelas quais remover uma interceptação não é uma boa ideia.


1

y=α+βx+ϵ
α=0yx=0

R2R2R2

Conclusão: NÃO DEIXE O INTERCEPTO FORA DO MODELO (a menos que você realmente saiba realmente o que está fazendo).

Xs=vt

Existem também modelos especiais que deixam de fora a interceptação. Um exemplo são dados emparelhados, estudos com gêmeos .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.