Seseorang dapat melakukan regresi logit di R menggunakan kode seperti:
> library(MASS)
> data(menarche)
> glm.out = glm(cbind(Menarche, Total-Menarche) ~ Age,
+ family=binomial(logit), data=menarche)
> coefficients(glm.out)
(Intercept) Age
-21.226395 1.631968
Sepertinya algoritme pengoptimalan telah terkonvergensi - ada informasi tentang jumlah langkah algoritme penilaian skor:
Call:
glm(formula = cbind(Menarche, Total - Menarche) ~ Age, family = binomial(logit),
data = menarche)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.0363 -0.9953 -0.4900 0.7780 1.3675
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -21.22639 0.77068 -27.54 <2e-16 ***
Age 1.63197 0.05895 27.68 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 3693.884 on 24 degrees of freedom
Residual deviance: 26.703 on 23 degrees of freedom
AIC: 114.76
Number of Fisher Scoring iterations: 4
Saya ingin tahu tentang algoritma optimal apa itu? Apakah ini algoritma Newton-Raphson (keturunan urutan kedua)? Bisakah saya mengatur beberapa parameter untuk menggunakan algoritma Cauchy (keturunan gradien urutan pertama)?
r
generalized-linear-model
optimization
algorithms
logit
Marcin Kosiński
sumber
sumber
Newton's method
adalah metode keturunan urutan gradien kedua.Jawaban:
Anda akan tertarik untuk mengetahui bahwa dokumentasi untuk
glm
, diakses melalui?glm
menyediakan banyak wawasan yang bermanfaat: di bawahmethod
kami menemukan bahwa kuadrat terkecil yang diulang-ulang secara berulang adalah metode default untukglm.fit
, yang merupakan fungsi kuda kerja untukglm
. Selain itu, dokumentasi menyebutkan bahwa fungsi yang ditentukan pengguna dapat disediakan di sini, bukan sebagai standar.sumber
glm
ataufit.glm
saatR
diminta untuk mempelajari kode sumber.glm.fit
yang tidak akan sepenuhnya direproduksi karena hal itu bergantung pada kode CC_Cdqrls
.Metode yang digunakan disebutkan dalam output itu sendiri: itu adalah Fisher Scoring. Ini setara dengan Newton-Raphson dalam banyak kasus. Pengecualiannya adalah situasi di mana Anda menggunakan parameterisasi non-alami. Regresi risiko relatif adalah contoh dari skenario semacam itu. Di sana, informasi yang diharapkan dan diamati berbeda. Secara umum, Newton Raphson dan Fisher Scoring memberikan hasil yang hampir identik.
Pengoptimal umum default di R menggunakan metode numerik untuk memperkirakan momen kedua, pada dasarnya didasarkan pada linierisasi (berhati-hatilah terhadap kutukan dimensi). Jadi jika Anda tertarik untuk membandingkan efisiensi dan bias, Anda dapat menerapkan rutin kemungkinan maksimum logistik naif dengan sesuatu seperti
memberi saya
sumber
nlm
memperkirakan gradien secara numerik kemudian menerapkan Newton Raphson. Dalam BFGS saya pikir gradien diperlukan seperti halnya dengan Newton Raphson, tetapi langkah-langkah berturut-turut dievaluasi menggunakan pendekatan orde kedua yang membutuhkan perkiraan Hessian. BFGS baik untuk optimasi yang sangat nonlinier. Tetapi untuk GLM, mereka biasanya berperilaku sangat baik.Sebagai catatan, implementasi R sederhana murni dari algoritma R's glm, berdasarkan skoring Fisher (berulang kuadrat terkecil berulang), seperti yang dijelaskan dalam jawaban lain diberikan oleh:
Contoh:
Diskusi yang baik tentang algoritma pemasangan GLM, termasuk perbandingan dengan Newton-Raphson (yang menggunakan Hessian yang diamati sebagai kebalikan dari Hessian yang diharapkan dalam algoritma IRLS) dan algoritma hybrid (yang dimulai dengan IRLS, karena ini lebih mudah untuk diinisialisasi, tetapi kemudian selesaikan dengan optimasi lebih lanjut menggunakan Newton-Raphson) dapat ditemukan dalam buku "Generalized Linear Models and Extensions" oleh James W. Hardin & Joseph M. Hilbe .
sumber