Czy mogę używać algorytmów glm do wielomianowej regresji logistycznej?
14
Używam Spotfire (S ++) do analizy statystycznej w moim projekcie i muszę uruchomić wielomianową regresję logistyczną dla dużego zestawu danych. Wiem, że najlepszym algorytmem byłby mlogit, ale niestety nie jest on dostępny w s ++. Mam jednak opcję użycia algorytmu glm dla tej regresji. Chcę tu wyjaśnić dwie rzeczy:
1. Czy rozumiem, że glm może być również używany do uruchamiania wielomianowej regresji logistycznej?
Jeśli odpowiedź na poprzednie pytanie brzmi „tak”, to jakie parametry należy zastosować w glm algo?
Tak, dzięki Poisson GLM (logarytmiczny model liniowy) możesz dopasować modele wielomianowe. Stąd wielomianowe logistyczne lub logiczne liniowe modele Poissona są równoważne.
Musisz zobaczyć liczby losowe jako losowe zmienne Poissona ze średnimi μ_ {ij} i określić następujący model logarytmiczno-liniowyμ i jyijμij
log(μij)=o+pi+cj+xiβj
Aby uzyskać wielomianowy model dziennika, parametry są następujące:
Parametr dla każdej obserwacji wielomianowej, na przykład osób lub grupy. Zapewnia to dokładne odtworzenie mianowników wielomianowych i faktycznie ustanawia równoważność modelu Poissona i modelu wielomianowego. Są ustalone na prawdopodobieństwie wielomianowym, ale losowe na prawdopodobieństwie Poissona.pi
Parametr dla każdej kategorii odpowiedzi. W ten sposób liczby mogą być różne dla każdej kategorii odpowiedzi, a marginesy mogą być nierównomierne.cj
To, co naprawdę Cię interesuje, to terminy interakcji które reprezentują wpływ na logarytmiczne szanse na odpowiedź .x i jxiβjxij
Log-odds można po prostu obliczyć za pomocą . Jest to logarytmiczne prawdopodobieństwo, że obserwacja i spadnie do kategorii odpowiedzi j względem kategorii odpowiedzi .klog(μij/μik)=(cj−ck)+xi(βj−βk)k
Następnie parametry w wielomianowym modelu logit (oznaczonym literami łacińskimi) można uzyskać jako różnice między parametrami w odpowiednim logarytmicznym modelu liniowym, tj. i .b j = β j - β kaj=αj−αkbj=βj−βk
Dzięki Momo. To jest naprawdę pomocne. Moje oprogramowanie daje mi opcję wyboru rodziny jako „opcji” i połączenia jako „dziennika” podczas działania alogorytmu GLM. Myślę więc, że dokładnie to jest tutaj wymagane.
Raghvendra
7
Tak, możesz i tak właśnie robi pakiet R GLMNET dla wielomianowej regresji logistycznej. Zapisywanie funkcji wiarygodności dziennika jako:
LogL=∑i∑cniclog(pic)
Gdzie oznacza obserwacje, a oznacza kategorie wielomianowe to obserwowana liczba obserwacji w kategorii . Obserwacje są zdefiniowane przez ich unikalne kombinacje zmiennych towarzyszących - lub alternatywnie możemy zezwolić na duplikaty i ustawić każde , abyśmy mieli kategoryczne dane „binarne” (.... nie wiem, co to jest liczba mnoga binarna). ...) Dla regresji logistycznej prawdopodobieństwa są zdefiniowane jako:c n i c i c n i c = 1icnicicnic=1
pic=exp(xTiβc)∑c′exp(xTiβc′)
Jest to parametryzacja niepełna rangi i może być użyteczna, jeśli używasz prawdopodobieństwa karanego (takiego jak GLMNET). Zasadniczo moglibyśmy użyć IRLS / newton rhapson na pełnej macierzy beta , jednak otrzymacie macierze nie przekątnej. Alternatywnie możemy zoptymalizować „styl Gibbsa”, ustawiając wszystkie kategorie bet z wyjątkiem jednej, a następnie optymalizując nieco powyżej tej kategorii. Następnie przejdź do następnej kategorii i tak dalej. Widać to, ponieważ prawdopodobieństwa mają formę(β1,…,βC)
pic′=B
pic=exp(xTiβc)exp(xTiβc)+A where ∂A∂βc=0
pic′=Bexp(xTiβc)+A where ∂B∂βc=0
Że kwadratowe rozwinięcie o będzie miało taką samą formę jak dla regresji logistycznej, ale z wagami IRLS obliczonymi inaczej - chociaż nadal mamy w zwykłej aktualizacji wersji beta.βcWii,c=nicpic(1−pic)(XTWX)−1XTWY
Próbuję wdrożyć wielomianową regresję logistyczną przy użyciu wariantu IRLS QR Newton. Kod działa dla innych modeli GLM, ale nie był w stanie uruchomić mlogit. Czy byłby jakobianem funkcji softmax, która pozwoliłaby mi obliczyć Cholesky'ego tylko raz na iterację, a nie razy rozwiązać dla każdego zestawu wag na wynik? Wk
José Bayoán Santiago Calderón
Biorąc pod uwagę, że nie byłby on przekątny, nie byłby dobrze skalowany przy dużej liczbie obserwacji, prawda? Czy przechodząc na „styl Gibbsa”, czy odejmowanie parametrów kategorii podstawowej od macierzy byłoby wykonywane przed czy po prognozie? β
José Bayoán Santiago Calderón
Kiedy mówimy o „Cholesky raz” vs „Cholesky razy K” należy pamiętać, że matryce mają inny wymiar - jeśli istnieją kolumny to „raz” jest o wielkości matrycy i „czasów K” jest dla matrycapXpkp
Tak, możesz i tak właśnie robi pakiet R GLMNET dla wielomianowej regresji logistycznej. Zapisywanie funkcji wiarygodności dziennika jako:
Gdzie oznacza obserwacje, a oznacza kategorie wielomianowe to obserwowana liczba obserwacji w kategorii . Obserwacje są zdefiniowane przez ich unikalne kombinacje zmiennych towarzyszących - lub alternatywnie możemy zezwolić na duplikaty i ustawić każde , abyśmy mieli kategoryczne dane „binarne” (.... nie wiem, co to jest liczba mnoga binarna). ...) Dla regresji logistycznej prawdopodobieństwa są zdefiniowane jako:c n i c i c n i c = 1i c nic i c nic=1
Jest to parametryzacja niepełna rangi i może być użyteczna, jeśli używasz prawdopodobieństwa karanego (takiego jak GLMNET). Zasadniczo moglibyśmy użyć IRLS / newton rhapson na pełnej macierzy beta , jednak otrzymacie macierze nie przekątnej. Alternatywnie możemy zoptymalizować „styl Gibbsa”, ustawiając wszystkie kategorie bet z wyjątkiem jednej, a następnie optymalizując nieco powyżej tej kategorii. Następnie przejdź do następnej kategorii i tak dalej. Widać to, ponieważ prawdopodobieństwa mają formę(β1,…,βC)
pic′=B
Że kwadratowe rozwinięcie o będzie miało taką samą formę jak dla regresji logistycznej, ale z wagami IRLS obliczonymi inaczej - chociaż nadal mamy w zwykłej aktualizacji wersji beta.βc Wii,c=nicpic(1−pic) (XTWX)−1XTWY
źródło