Saya sangat bingung dengan bagaimana berat bekerja di glm dengan family = "binomial". Dalam pemahaman saya, kemungkinan glm dengan family = "binomial" ditentukan sebagai berikut: mana adalah "proporsi keberhasilan yang diamati" dan adalah jumlah percobaan yang diketahui.yn
Dalam pemahaman saya, probabilitas keberhasilan adalah parametrized dengan beberapa koefisien linier sebagai dan fungsi glm dengan pencarian family = "binomial" untuk: Maka masalah optimasi ini dapat disederhanakan sebagai:β p = p ( β ) arg max β ∑ i
Oleh karena itu jika kita membiarkan untuk semua untuk beberapa konstanta , maka harus juga benar bahwa:
File bantuan glm mengatakan:
"For a binomial GLM prior weights are used to give the number of trials
when the response is the proportion of successes"
Oleh karena itu saya berharap bahwa penskalaan berat tidak akan mempengaruhi perkiraan mengingat proporsi keberhasilan sebagai respons. Namun dua kode berikut mengembalikan nilai koefisien yang berbeda:
Y <- c(1,0,0,0) ## proportion of observed success
w <- 1:length(Y) ## weight= the number of trials
glm(Y~1,weights=w,family=binomial)
Ini menghasilkan:
Call: glm(formula = Y ~ 1, family = "binomial", weights = w)
Coefficients:
(Intercept)
-2.197
sementara jika saya kalikan semua bobot dengan 1000, koefisien yang diperkirakan berbeda:
glm(Y~1,weights=w*1000,family=binomial)
Call: glm(formula = Y ~ 1, family = binomial, weights = w * 1000)
Coefficients:
(Intercept)
-3.153e+15
Saya melihat banyak contoh lain seperti ini bahkan dengan beberapa skala dalam bobot. Apa yang terjadi disini?
weights
argumen berakhir di dua tempat di dalamglm.fit
fungsi (di glm.R ), yang merupakan pekerjaan di R: 1) dalam residu penyimpangan, dengan cara fungsi Cbinomial_dev_resids
(dalam keluarga.c ) dan 2) pada langkah IWLS dengan caraCdqrls
(dalam lm.c ). Saya tidak tahu cukup C untuk bisa lebih membantu dalam melacak logika