Wie gehe ich mit einem Fehler wie „Koeffizienten: 14 wegen Singularitäten nicht definiert“ in R um?

15

Wie kann man diesem Fehler entgegenwirken, wenn Sie bei einem GLM den Fehler "Wegen Singularitäten nicht definiert" in der anova-Ausgabe erhalten?

Einige haben vermutet, dass es an der Kollinearität zwischen den Kovariaten liegt oder dass eine der Ebenen im Datensatz nicht vorhanden ist (siehe: Interpretation "wegen Singularitäten nicht definiert" in lm ).

Wenn ich sehen wollte , die „besondere Behandlung“ das Modell fahren und ich habe 4 Stufen der Behandlung: Treat 1, Treat 2, Treat 3& Treat 4, die in meiner Tabelle aufgezeichnet werden als: wenn Treat 11 der Rest ist gleich Null ist, wenn Treat 21 der Rest ist gleich Null sind, usw., was müsste ich tun?

Platypezid
quelle
Ich sehe, dass viele Menschen dieses Problem haben. Versteht jemand die Antwort auf diese Personenanfrage? stat.ethz.ch/pipermail/r-help/2006-April/103836.html
Platypezid

Antworten:

27

Wahrscheinlich erhalten Sie diesen Fehler, weil zwei oder mehr Ihrer unabhängigen Variablen perfekt kollinear sind (z. B. falsche Codierung von Dummy-Variablen, um identische Kopien zu erstellen).

Verwenden Sie cor () für Ihre Daten oder alias () für Ihr Modell zur genaueren Betrachtung.

Peter
quelle
9
Danke, kannte die alias () Funktion nicht. Das ist sehr praktisch. Cheers, O.
OFish
1

Der Fehler "Wegen Singularitäten nicht definiert" tritt aufgrund einer starken Korrelation zwischen Ihren unabhängigen Variablen auf. Dies kann durch n-1 Dummy-Variablen vermieden werden. In Ihrem Fall sollten Sie für die Behandlungsvariable 3 binäre Dummy-Variablen (Treat1, Treat2, Treat3) verwenden.

Bei der R-Programmierung führt die lineare Regressionsfunktion in lm () zu "NA" als Koeffizient für stark korrelierte Variablen.

Saravana Kumar
quelle
1
Können Sie sagen, wie Sie dies als Ergänzung zur bestehenden Antwort ansehen? Vielleicht durch Bearbeitung?
mdewey