Por que R retornaria NA como um coeficiente lm ()?

32

Estou ajustando um lm()modelo a um conjunto de dados que inclui indicadores para o trimestre financeiro (Q1, Q2, Q3, tornando Q4 um padrão). Usando lm(Y~., data = data), recebo a NAcomo coeficiente para o terceiro trimestre e um aviso de que uma variável foi excluída por causa de singularidades.

Preciso adicionar uma coluna do quarto trimestre?

Fraijo
fonte

Respostas:

39

NA como coeficiente em uma regressão indica que a variável em questão está linearmente relacionada às outras variáveis. No seu caso, isso significa que para alguns . Se for esse o caso, não há solução única para a regressão sem descartar uma das variáveis. Adicionar o só vai piorar a situação.Q3=a×Q1+b×Q2+ca,b,cQ4

Martin O'Leary
fonte
1
Eu concordo ... parece haver um problema com as definições de variáveis ​​fictícias.
Dominic Comtois
14
(+1). NA geralmente significa que o coeficiente não é calculável. Isso pode acontecer devido à colinearidade exata, como você mencionou. Mas também pode acontecer devido à falta de observações suficientes para estimar os parâmetros relevantes (por exemplo, se ). Se seus preditores são categóricos e você está adicionando termos de interação, um NA também pode significar que não há observações com essa combinação de níveis dos fatores. p>n
Macro
2
p>n é apenas um caso especial de colinearidade - se houver menos observações que preditores, a colinearidade é um dado. Você está certo sobre os termos de interação, embora tenha certeza de que não é o que está acontecendo aqui.
Martin O'Leary
As variáveis ​​não são linearmente relacionadas, como Q3 = 1 se Q1 = Q2 = 0. Além disso, usar stepAIC () e forçar o modelo a incluir todas essas três variáveis ​​não causa problemas. Além disso, eu tenho aproximadamente 3x o número de observações em variáveis. Meu melhor palpite é que há colinearidade entre o terceiro trimestre e alguma outra variável, que eu acho que não está incluída no stepAIC.
Fraijo