To pytanie jest dość ogólne i wyczerpujące, ale proszę o wyrozumiałość.
W mojej aplikacji mam wiele zestawów danych, z których każdy składa się z ~ 20 000 punktów danych z ~ 50 funkcjami i jedną zależną zmienną binarną. Usiłuję modelować zestawy danych przy użyciu regularnej regresji logistycznej (pakiet R glmnet )
W ramach mojej analizy stworzyłem wykresy szczątkowe w następujący sposób. Dla każdej funkcji sortuję punkty danych zgodnie z wartością tej funkcji, dzielę punkty danych na 100 segmentów, a następnie obliczam średnią wartość wyjściową i średnią wartość prognozy w każdym segmencie. Spisuję te różnice.
Oto przykładowy wykres resztkowy:
Na powyższym wykresie cecha ma zakres [0,1] (z dużym stężeniem przy 1). Jak widać, gdy wartość funkcji jest niska, model wydaje się tendencyjny do przeszacowania prawdopodobieństwa wystąpienia 1 wyjścia. Na przykład w najbardziej wysuniętym w lewo segmencie model przecenia prawdopodobieństwo o około 9%.
Uzbrojony w te informacje, chciałbym zmienić definicję funkcji w prosty sposób, aby z grubsza poprawić ten błąd. Zmiany takie jak wymiana
lub
W jaki sposób mogę to zrobić? Szukam ogólnej metodologii, aby człowiek mógł szybko przewijać wszystkie ~ 50 wykresów i wprowadzać zmiany, a także robić to dla wszystkich zestawów danych i często powtarzać, aby aktualizować modele wraz z upływem czasu.
Jako ogólne pytanie, czy jest to nawet właściwe podejście? Wyszukiwania Google dla „analizy resztkowej regresji logistycznej” nie zwracają wielu wyników z dobrymi praktycznymi poradami. Wydaje się, że są naprawieni po odpowiedzi na pytanie: „Czy ten model jest dobrze dopasowany?” i zaoferuj różne testy, takie jak Hosmer-Lemeshow, aby odpowiedzieć. Ale nie dbam o to, czy mój model jest dobry, chcę wiedzieć, jak go ulepszyć!
jest mało prawdopodobne, aby istniało w tym celu ogólne oprogramowanie. najprawdopodobniej dlatego, że nie ma ogólnej teorii rozwiązywania problemów w regresji. stąd jest to raczej odpowiedź typu „co bym zrobił” niż teoretycznie uzasadniona procedura.
tworzony wykres jest w zasadzie wizualnym testem HL ze 100 przedziałami, ale z użyciem jednego predyktora zamiast przewidywanego prawdopodobieństwa zrobienia binowania. oznacza to, że twoja procedura może odziedziczyć niektóre właściwości testu HL.
Twoja procedura wydaje się rozsądna, chociaż powinieneś być świadomy „przeszacowania” swoich kryteriów. twoje kryteria są również mniej przydatne jako diagnostyka, ponieważ stały się częścią procesu szacowania. Ponadto, ilekroć robisz coś intuicyjnie, powinieneś zapisać swój proces decyzyjny tak szczegółowo, jak to praktyczne. dzieje się tak, ponieważ możesz odkryć zalążki ogólnego procesu lub teorii, które po opracowaniu prowadzą do lepszej procedury (bardziej automatycznej i optymalnej w odniesieniu do niektórych teorii).
myślę, że jednym ze sposobów jest zmniejszenie liczby działek, które należy zbadać. jednym ze sposobów jest dopasowanie każdej zmiennej jako splajnu sześciennego, a następnie zbadanie wykresów, które mają niezerowe nieliniowe oszacowania. biorąc pod uwagę liczbę punktów danych, jest to również łatwe automatyczne rozwiązanie dla nieliniowości. zwiększy to twój model z 50 do 200 + 50k, gdzie k jest liczbą węzłów. można by pomyśleć o tym jako o zastosowaniu „statystycznego rozszerzenia szeregu Taylora” „prawdziwej” transformacji.
jeśli po tym diagnostyka nadal wygląda źle, spróbuję dodać warunki interakcji.
części twojego pytania wydają się bardziej na temat pisania interaktywnego programu, który jest bardziej domeną przepływu stosu niż tutaj. przydatne może być również poszukiwanie narzędzi analizy danych eksploracyjnych, ponieważ są one bardziej prawdopodobne, że mają funkcje, które można wyłączyć.
źródło