Warum würde R NA als lm () -Koeffizienten zurückgeben?

32

Ich passe ein lm()Modell an einen Datensatz an, der Indikatoren für das Geschäftsquartal enthält (Q1, Q2, Q3, wodurch Q4 zum Standard wird). Verwenden von lm(Y~., data = data) Ich erhalte einen NAals Koeffizienten für Q3 und eine Warnung, dass eine Variable aufgrund von Singularitäten ausgeschlossen wurde.

Muss ich eine Q4-Spalte hinzufügen?

Fraijo
quelle

Antworten:

39

NA als Koeffizient in einer Regression zeigt an, dass die betreffende Variable in linearer Beziehung zu den anderen Variablen steht. In Ihrem Fall bedeutet dies, dass für einige . In diesem Fall gibt es keine eindeutige Lösung für die Regression, ohne eine der Variablen zu löschen. Das Hinzufügen von wird die Sache nur noch schlimmer machen.Q3=a×Q1+b×Q2+ca,b,cQ4

Martin O'Leary
quelle
1
Ich stimme zu ... es scheint ein Problem mit den Dummy-Variablendefinitionen zu geben.
Dominic Comtois
14
p>n
2
p>n
Die Variablen sind nicht linear miteinander verknüpft, da Q3 = 1 ist, wenn Q1 = Q2 = 0 ist. Darüber hinaus verursacht die Verwendung von stepAIC () und das Erzwingen, dass das Modell alle drei dieser Variablen enthält, keine Probleme. Außerdem habe ich ungefähr die dreifache Anzahl von Beobachtungen zu Variablen. Ich gehe davon aus, dass es zwischen Q3 und einer anderen Variablen Colinearität gibt, die meines Erachtens im stepAIC nicht enthalten ist.
Fraijo