Jak radzić sobie z błędem, takim jak „Współczynniki: 14 niezdefiniowane z powodu osobliwości” w R?

17

Kiedy robisz GLM i pojawia się błąd „nieokreślony z powodu osobliwości” w wyjściu anova, jak można temu przeciwdziałać?

Niektórzy sugerują, że jest to spowodowane kolinearnością między zmiennymi towarzyszącymi lub że jeden z poziomów nie jest obecny w zbiorze danych (patrz: interpretacja „nieokreślony z powodu osobliwości” w lm )

Gdybym chciał zobaczyć, które „zwłaszcza leczenie” napędza model i mam 4 poziomy leczenia: Treat 1, Treat 2, Treat 3i Treat 4, które są zapisane w arkuszu kalkulacyjnym, jak: kiedy Treat 1jest 1 reszta jest zero, kiedy Treat 2jest 1 reszta są równe zeru, itd., co musiałbym zrobić?

Platypezid
źródło
Widzę, że wiele osób ma ten problem. Czy ktoś rozumie odpowiedź na to pytanie? stat.ethz.ch/pipermail/r-help/2006-April/103836.html
Platypezid

Odpowiedzi:

28

Prawdopodobnie występuje ten błąd, ponieważ dwie lub więcej zmiennych niezależnych jest idealnie współliniowych (np. Błędne kodowanie zmiennych zastępczych w celu wykonania identycznych kopii).

Użyj cor () na swoich danych lub aliasu () w swoim modelu, aby dokładniej sprawdzić.

Piotr
źródło
11
Dzięki nie znam funkcji alias (). To naprawdę przydatne. Pozdrawiam, O.
OFish
Nie znałem też tej funkcji alias. Nieźle.
igorkf
1

Błąd „nie zdefiniowano z powodu osobliwości” wystąpi z powodu silnej korelacji między zmiennymi niezależnymi. Można tego uniknąć, stosując zmienne zastępcze n-1. W twoim przypadku dla zmiennej Leczenie powinieneś użyć 3 binarnych zmiennych obojętnych (Treat1, Treat2, Treat3).

W programowaniu R funkcja regresji liniowej lm () spowoduje, że „NA” będzie tak samo efektywne dla silnie skorelowanych zmiennych.

Saravana Kumar
źródło
1
Czy możesz powiedzieć, jak postrzegasz to jako uzupełnienie istniejącej odpowiedzi? Być może poprzez edycję?
mdewey