Co to jest niedobór rang i jak sobie z tym poradzić?

87

Dopasowanie regresji logistycznej za pomocą lme4 kończy się na

Error in mer_finalize(ans) : Downdated X'X is not positive definite. 

Prawdopodobną przyczyną tego błędu jest najwyraźniej brak rangi. Co to jest niedobór rang i jak go rozwiązać?

Jack Tanner
źródło
2
Radzę sprawdzić, czy żadna ze zmiennych nie jest stała (tj. Brak wariancji). Jeśli nie masz nic przeciwko temu wynikowi, sprawdź, czy masz zmienne o złożonej wartości lub zmienne nieskończone.
tristan
3
Zazwyczaj oznacza to, że jedna lub więcej zmiennych nie jest liniowo niezależna, ponieważ zmienną problematyczną można wyrazić jako kombinację innych zmiennych. Pakiet R caretma funkcję o nazwie, findLinearCombosktóra powie ci, które zmienne problematyczne.
richiemorrisroe
2
Zgadzam się z richiemorrisroe. Ponieważ mówi, że X'X nie jest pozytywnie określony, myślę, że sugerują, że macierz projektowa X'X jest pojedyncza, a zatem nie ma pełnej rangi. Stąd co najmniej jedną zmienną towarzyszącą można zapisać jako dokładne liniowe kombinacje innych zmiennych towarzyszących.
Michael Chernick,

Odpowiedzi:

123

Niedobór rang w tym kontekście oznacza, że ​​w twoich danych nie ma wystarczających informacji, aby oszacować pożądany model. Wywodzi się z wielu źródeł. Porozmawiam tutaj o modelowaniu w dość ogólnym kontekście, zamiast jawnej regresji logistycznej, ale wszystko nadal dotyczy konkretnego kontekstu.

Niedobór może wynikać z po prostu zbyt małej ilości danych. Zasadniczo nie można jednoznacznie oszacować n parametrów z mniej niż n punktami danych. Nie oznacza to, że wszystko, czego potrzebujesz, to n punktów, ponieważ jeśli wystąpi jakiś szum w procesie, uzyskasz raczej słabe wyniki. Potrzebujesz więcej danych, aby pomóc algorytmowi wybrać rozwiązanie, które reprezentuje wszystkie dane, w sensie minimalnego błędu. Dlatego używamy narzędzi najmniejszych kwadratów. Ile danych potrzebujesz? Zawsze zadawano mi to pytanie w poprzednim życiu, a odpowiedź była większa niż ty lub tyle, ile możesz. :)

Czasami możesz mieć więcej danych niż potrzebujesz, ale niektóre (zbyt wiele) punktów to repliki. Replikacja jest DOBRA w tym sensie, że pomaga zmniejszyć hałas, ale nie pomaga zwiększyć rangi liczbowej. Załóżmy zatem, że masz tylko dwa punkty danych. Nie można oszacować unikalnego modelu kwadratowego poprzez punkty. Milion powtórzeń każdego punktu nadal nie pozwoli ci dopasować więcej niż linii prostej, dzięki czemu nadal tylko skutecznie para punktów. Zasadniczo replikacja nie dodaje zawartości informacyjnej. Wszystko, co robi, to zmniejszanie hałasu w miejscach, w których masz już informacje.

Czasami masz informacje w niewłaściwych miejscach. Na przykład nie można dopasować dwuwymiarowego modelu kwadratowego, jeśli wszystko, co masz, to punkty leżące w linii prostej w dwóch wymiarach. To znaczy, załóżmy, że masz punkty rozrzucone tylko wzdłuż linii x = y na płaszczyźnie i chcesz dopasować model dla powierzchni z (x, y). Nawet z zillionami punktów (nawet replik) nie będziesz miał wystarczających informacji, aby inteligentnie oszacować coś więcej niż stały model. O dziwo, jest to powszechny problem, który widziałem w próbkowanych danych. Użytkownik zastanawia się, dlaczego nie może zbudować dobrego modelu. Problem jest wbudowany w same dane, z których pobrano próbki.

Czasami jest to po prostu wybór modelu. Można to postrzegać jako „niewystarczającą ilość danych”, ale z drugiej strony. Chcesz oszacować skomplikowany model, ale dostarczyłeś niewystarczających danych, aby to zrobić.

We wszystkich powyższych przypadkach odpowiedzią jest uzyskanie większej ilości danych, inteligentnie pobranych z miejsc, które dostarczą informacji o aktualnie brakującym procesie. Projektowanie eksperymentów to dobre miejsce na rozpoczęcie.

Jednak nawet dobre dane są czasami nieodpowiednie, przynajmniej liczbowo. (Dlaczego przy dobrych danych zdarzają się złe rzeczy?) Problem może być związany z modelem. Może polegać jedynie na złym doborze jednostek. Może to wynikać z programowania komputerowego wykonanego w celu rozwiązania problemu. (Ugh! Od czego zacząć?)

Najpierw porozmawiajmy o jednostkach i skalowaniu. Załóżmy, że próbuję rozwiązać problem, w którym jedna zmienna jest DUŻO rzędów wielkości większa od drugiej. Załóżmy na przykład, że mam problem związany z moim wzrostem i rozmiarem buta. Zmierzę swój wzrost w nanometrach. Mój wzrost wyniósłby około 1,78 miliarda (1,78e9) nanometrów. Oczywiście wybiorę rozmiar buta w kilogramach, czyli 9,14e-21 kilogramów. Podczas modelowania regresji regresja liniowa polega na algebrze liniowej, która obejmuje liniowe kombinacje zmiennych. Problem polega na tym, że liczby te różnią się o wiele rzędów wielkości (a nawet o te same jednostki). Matematyka zawodzi, gdy program komputerowy próbuje dodawać i odejmować liczby, które różnią się o tyle rzędów wielkości (dla podwójnej precyzji numer,

Sztuką jest zwykle używanie wspólnych jednostek, ale w przypadku niektórych problemów jest to problem, gdy zmienne różnią się o zbyt wiele rzędów wielkości. Ważniejsze jest skalowanie liczb, aby były podobne pod względem wielkości.

Następnie mogą pojawić się problemy z dużymi liczbami i niewielkimi zmianami tych liczb. Załóżmy zatem, że próbujesz zbudować model wielomianowy umiarkowanie wysokiego rzędu z danymi, w których wszystkie dane wejściowe znajdują się w przedziale [1,2]. Kwadratowanie, dzielenie na kostki itp., Liczby rzędu 1 lub 2 nie będą powodować problemów podczas pracy z arytmetyką podwójnej precyzji. Alternatywnie dodaj 1e12 do każdej liczby. Teoretycznie matematyka na to pozwoli. Wystarczy przesunąć dowolny model wielomianowy, który budujemy na osi X. Miałby dokładnie taki sam kształt, ale zostałby przetłumaczony przez 1e12 po prawej. W praktyce algebra liniowa zawiedzie się żałośnie z powodu problemów z niedoborem rang. Nic nie zrobiłeś, tylko przetłumaczyłeś dane, ale nagle zaczynasz widzieć wyskakujące pojedyncze macierze.

Zazwyczaj zrobiony komentarz będzie sugestią „wyśrodkowania i skalowania danych”. W efekcie mówi się o przesunięciu i skalowaniu danych, tak aby miały one średnią bliską zera, a odchylenie standardowe wynosi około 1. To znacznie poprawi warunkowanie większości modeli wielomianowych, zmniejszając problemy z niedoborem rang.

Istnieją inne powody niedoboru rang. W niektórych przypadkach jest on wbudowany bezpośrednio w model. Załóżmy na przykład, że podam pochodną funkcji, czy mogę jednoznacznie wywnioskować samą funkcję? Oczywiście, że nie, ponieważ integracja obejmuje stałą całkowania, nieznany parametr, który na ogół można wywnioskować na podstawie znajomości wartości funkcji w pewnym momencie. W rzeczywistości pojawia się to czasem także w problemach estymacji, gdzie osobliwość systemu wynika z fundamentalnej natury badanego systemu.

Z pewnością pominąłem kilka z wielu powodów niedoboru rang w systemie liniowym i zbyt długo walczyłem. Mam nadzieję, że udało mi się wyjaśnić te, które omówiłem w prosty sposób, i sposób na złagodzenie problemu.


źródło
42

Aby uzyskać definicję rangi macierzy, możesz odwołać się do dowolnego dobrego podręcznika na temat algebry liniowej lub zajrzeć na stronę Wikipedii .

macierzy mówi się pełnego rzędu, jeśli i jego kolumna jest liniową kombinacją od siebie. W takim przypadku macierz jest dodatnia, co oznacza, że ​​ma odwrotność .n×pXnpp×pXTX(XTX)1

Jeśli nie ma pełnej rangi, jedna z kolumn jest w pełni wyjaśniona przez inne, w tym sensie, że jest to liniowa kombinacja pozostałych. Trywialnym przykładem jest duplikacja kolumny. Może się to również zdarzyć, jeśli masz zmienną 0-1, a kolumna składa się tylko z 0 lub tylko 1. W takim przypadku pozycja macierzy jest mniejsza niż a nie ma odwrotności.XXnXTX

Ponieważ rozwiązanie wielu problemów regresji (w tym regresji logistycznej) obejmuje obliczenia pośrednie , niemożliwe jest wówczas oszacowanie parametrów modelu. Z ciekawości możesz sprawdzić tutaj, w jaki sposób ten termin bierze udział w formule wielokrotnej regresji liniowej.(XTX)1

Tak było z absolutnym niedoborem rang. Ale czasami problem pojawia się, gdy macierz jest „prawie” pełna, co szczegółowo opisano w @woodchips. Ten problem jest zwykle określany jako wielokoliniowość . Ten problem jest dość powszechny, więcej informacji można znaleźć w powiązanych postach tutaj i tam .X

gui11aume
źródło
23

odpowiedź user974 jest fantastyczna z perspektywy modelowania, a odpowiedź gui11aume jest fantastyczna z perspektywy matematycznej. Chcę dopracować pierwszą odpowiedź ściśle z perspektywy modelowania mieszanego: konkretnie uogólnionej perspektywy modelowania mieszanego (GLMM). Jak widać, odwołałeś się do funkcji R, mer_finalizektóra znajduje się w fantastycznym lme4pakiecie. Mówisz również, że dopasowujesz model regresji logistycznej.

Istnieje wiele problemów, które pojawiają się przy tego rodzaju algorytmach numerycznych. Kwestia struktury macierzowej matrycy modelowej efektów stałych jest z pewnością warta rozważenia, jak nawiązywał do user974. Ale to jest bardzo łatwe do oceny, po prostu obliczył model.matrixswoich formula=and data=argumentów w modelu i podejmuje wyznacznik przy użyciu detfunkcji. Jednak efekty losowe znacznie komplikują interpretację, numeryczną procedurę szacunkową i wnioskowanie na temat efektów ustalonych (co zwykle uważa się za współczynniki regresji w „regularnym” modelu regresji).

Załóżmy, że w najprostszym przypadku masz tylko model przechwytywania losowego. Zatem w zasadzie rozważasz istnienie tysięcy niezmierzonych źródeł heterogeniczności, które są utrzymywane na stałym poziomie w powtarzanych pomiarach w ramach klastrów. Szacuje się „wielki” punkt przechwytywania, ale uwzględnia się heterogeniczność, zakładając, że przechwytywanie specyficzne dla klastra ma jakiś średni rozkład normalny. Punkty przechwytywania są iteracyjnie szacowane i wykorzystywane do aktualizacji efektów modelu aż do osiągnięcia konwergencji (prawdopodobieństwo logarytmiczne - lub jego przybliżenie - zostanie zmaksymalizowane). Model mieszany jest bardzo łatwy do wyobrażenia, ale matematycznie prawdopodobieństwo jest bardzo złożone i podatne na problemy z osobliwościami, lokalnymi minimami i punktami brzegowymi (iloraz szans = 0 lub nieskończoność). Modele mieszane nie mają kwadratowych prawdopodobieństw jak kanoniczne GLM.

Niestety, Czcigodni i Ripley nie zainwestowali dużo w diagnostykę awarii zbieżności tak jak twoja. Praktycznie niemożliwe jest nawet spekulowanie na niezliczonych możliwych błędach prowadzących do takiego komunikatu. Zastanów się zatem, jakie typy diagnostyki stosuję poniżej:

  1. Ile jest obserwacji w klastrze?
  2. Jakie są wyniki marginalnego dopasowania modelu przy użyciu GEE?
  3. Co to jest ICC klastrów? Czy heterogeniczność klastra jest zbliżona do heterogeniczności klastra?
  4. Dopasuj 1-stopniowy estymator i spójrz na oszacowane efekty losowe. Czy są w przybliżeniu normalne?
  5. Dopasuj mieszany model Bayesa i spójrz na rozkład tylny dla ustalonych efektów. Czy wydają się mieć rozkład w przybliżeniu normalny?
  6. Spójrz na wykres panelowy klastrów pokazujący ekspozycję lub regresor zainteresowania w stosunku do wyniku za pomocą wygładzacza. Czy trendy są spójne i wyraźne, czy też istnieje wiele możliwych sposobów ich wyjaśnienia? (np. jakie jest „ryzyko” wśród nienaświetlonych osób, czy narażenie wydaje się ochronne lub szkodliwe?)
  7. Czy można ograniczyć próbkę do osobników posiadających wystarczającą liczbę obserwacji na osobę (powiedzmy n = 5 lub n = 10), aby oszacować „idealny” efekt leczenia?

Alternatywnie możesz rozważyć kilka różnych metod modelowania:

  1. Czy jest wystarczająco mało klastrów lub punktów czasowych, aby użyć stałego efektu (takiego jak wskaźniki grupowe lub wielomianowy efekt czasowy) do modelowania poziomu skupienia / heterogeniczności autoregresyjnej?
  2. Czy odpowiedni jest model brzeżny (użycie GEE w celu poprawy wydajności szacowania standardowego błędu, ale nadal stosowanie tylko stałych efektów)
  3. Czy model bayesowski z informacyjnym wyprzedzeniem efektów losowych mógłby poprawić oszacowanie?
AdamO
źródło
2
+1: Dziękujemy za zajęcie się „mieszaną” częścią pierwotnego pytania. Ten post ładnie uzupełnia już dobry zestaw odpowiedzi.
whuber