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.