W wielokrotnej regresji liniowej można znaleźć współczynnik za pomocą następującego wzoru.
beta = solve(t(X) %*% X) %*% (t(X) %*% Y) ; beta
Na przykład:
> y <- c(9.3, 4.8, 8.9, 6.5, 4.2, 6.2, 7.4, 6, 7.6, 6.1)
> x0 <- c(1,1,1,1,1,1,1,1,1,1)
> x1 <- c(100,50,100,100,50,80,75,65,90,90)
> x2 <- c(4,3,4,2,2,2,3,4,3,2)
> Y <- as.matrix(y)
> X <- as.matrix(cbind(x0,x1,x2))
> beta = solve(t(X) %*% X) %*% (t(X) %*% Y);beta
[,1]
x0 -0.8687015
x1 0.0611346
x2 0.9234254
> model <- lm(y~+x1+x2) ; model$coefficients
(Intercept) x1 x2
-0.8687015 0.0611346 0.9234254
Chciałbym obliczyć w ten sam „ręczny” sposób beta dla regresji logistycznej. Gdzie oczywiście y byłoby 1 lub 0. Zakładając, że używam rodziny dwumianowej z łączem logit.
Odpowiedzi:
Estymator OLS w modelu regresji liniowej jest dość rzadki, gdy ma właściwość, że może być reprezentowany w postaci zamkniętej, to znaczy bez potrzeby wyrażania go jako optymalizator funkcji. Jest to jednak optymalizator funkcji - funkcja resztkowej sumy kwadratów - i może być obliczony jako taki.
MLE w modelu regresji logistycznej jest również optymalizatorem odpowiednio zdefiniowanej funkcji prawdopodobieństwa logarytmicznego, ale ponieważ nie jest dostępny w postaci wyrażenia zamkniętego, należy go obliczyć jako optymalizator.
Większość estymatorów statystycznych można wyrazić jedynie jako optymalizatory odpowiednio skonstruowanych funkcji danych zwanych funkcjami kryterialnymi. Takie optymalizatory wymagają zastosowania odpowiednich algorytmów optymalizacji numerycznej. Optymalizatory funkcji można obliczyć w R za pomocą
optim()
funkcji, która udostępnia niektóre algorytmy optymalizacji ogólnego przeznaczenia lub jeden z bardziej specjalistycznych pakietów, takich jakoptimx
. Kluczowa jest znajomość algorytmu optymalizacji, który należy zastosować dla różnych typów modeli i funkcji kryteriów statystycznych.Regresja liniowa resztkowa suma kwadratów
Estymator OLS jest definiowany jako optymalizator dobrze znanej resztkowej funkcji kwadratów:
W przypadku podwójnie różniczkowej funkcji wypukłej, takiej jak resztkowa suma kwadratów, większość optymalizatorów opartych na gradiencie dobrze sobie radzi. W takim przypadku będę używać algorytmu BFGS.
Daje to:
Logarytmiczna regresja prawdopodobieństwa
Funkcja kryterium odpowiadająca MLE w modelu regresji logistycznej jest funkcją logarytmu prawdopodobieństwa.
optim()
Pokazuję, jak skonstruować i zoptymalizować funkcję kryterialną, używając funkcji jeszcze raz wykorzystującej algorytm BFGS.To daje
Ostrzegamy, że algorytmy optymalizacji numerycznej wymagają starannego użycia lub możesz skończyć z różnego rodzaju rozwiązaniami patologicznymi. Dopóki nie zrozumiesz ich dobrze, najlepiej skorzystać z dostępnych opcji pakietowych, które pozwalają skoncentrować się na określeniu modelu, zamiast martwić się o to, jak obliczyć liczbowo szacunki.
źródło
-sum(vY%*%(mX%*%vBeta)-log(1+exp(mX%*%vBeta)))
Nie możesz się stąd dostać. Rozwiązania zarówno ogólnego modelu liniowego, jak i modelu logistycznego wynikają z rozwiązania odpowiednich równań maksymalnego prawdopodobieństwa, ale tylko model liniowy ma rozwiązanie w postaci zamkniętej.
Jeśli zajrzysz do książki McCullagha i Neldera, możesz dowiedzieć się, jak uzyskać rozwiązania w przypadku logistycznym (lub innym uogólnionym modelu). W efekcie rozwiązania są tworzone iteracyjnie, przy czym każda iteracja wymaga rozwiązania ważonej regresji liniowej. Wagi zależą częściowo od funkcji łącza.
źródło