Błąd „system jest pojedynczo obliczeniowy” podczas uruchamiania glm

29

Korzystam z pakietu robustbase , aby przeprowadzić oszacowanie glm. Jednak gdy to robię, pojawia się następujący błąd:

Error in solve.default(crossprod(X, DiagB * X)/nobs, EEq) : 
  system is computationally singular: reciprocal condition number = 1.66807e-16

Co to oznacza / wskazuje? Jak mogę to debugować?

PS. Jeśli potrzebujesz czegoś (formuła / specyfikacja lub dane), aby odpowiedzieć, chętnie udzielę tego.

NK1
źródło

Odpowiedzi:

26

Oznacza to, że macierz projektowa nie jest odwracalna i dlatego nie można jej użyć do opracowania modelu regresji. Wynika to z liniowo zależnych kolumn, tj. Silnie skorelowanych zmiennych. Sprawdź kowariancję parową (lub korelację) zmiennych, aby sprawdzić, czy istnieją jakieś zmienne, które można potencjalnie usunąć. Szukasz kowariancji (lub korelacji) >> 0. Alternatywnie możesz prawdopodobnie zautomatyzować ten wybór zmiennych, stosując regresję krokową do przodu.

Może to również wynikać z posiadania większej liczby zmiennych niż obserwacji, w którym to przypadku macierz projektowa prawdopodobnie nie ma pełnej rangi. Jest to nieco trudniejsze do naprawienia, ale istnieją sposoby. Uważam, że regresja Lasso powinna działać dobrze, gdy dane są „szersze” niż „długie”.

Pamiętaj: jeśli zdecydujesz się spróbować lassa lub selekcji krokowej, robisz znacznie więcej (pod względem wyboru zmiennej) niż tylko obsługę wielokolonowości.

David Marks
źródło
Dzięki, dwa pytania: 1. Czy znasz jakąś procedurę wr, która może mi się dobrze przy debugowaniu? 2. Widzę, że kiedy uruchamiam dokładnie ten sam model na dokładnie tych samych danych za pomocą glm () zamiast glmrob (), nie dostaję żadnych błędów - czy to ma sens, czy sugeruje błąd w glmrob () funkcja?
NK1
2

Spędziłem dużo czasu na tym błędzie, ale sprawdź tę stronę, która go rozwiązała

https://www.kaggle.com/c/house-prices-advanced-regression-techniques/discussion/24586

Zasadniczo możesz po prostu zmienić metodę używaną przez myszy. Używałem ppn i zmieniłem go na koszyk

rlhull6
źródło
2
Poproś, aby odpowiedź była zawarta w tekście odpowiedzi. W ten sposób ludzie chętniej go czytają i rzadziej usuwają go jako zbyt krótki i nie na temat.
Carl