Anda telah menemukan properti GLM yang intim, tetapi umum, cocok dengan kemungkinan maksimum . Hasilnya keluar begitu seseorang mempertimbangkan kasus paling sederhana dari semuanya: Menyesuaikan parameter tunggal ke tunggal pengamatan!
Satu kalimat jawaban : Jika semua kita peduli sepatutnya sarana terpisah untuk subset menguraikan sampel kami, maka GLMS akan selalu menghasilkan μ j = ˉ y j untuk setiap bagian j , sehingga struktur kesalahan yang sebenarnya dan parametrization kepadatan kedua menjadi tidak relevan ke estimasi (titik)!μ^j=y¯jj
Sedikit lebih banyak : Menyesuaikan faktor-faktor kortogonal ortogonal dengan kemungkinan maksimum setara dengan cara-cara yang terpisah untuk memisahkan subset dari sampel kami, jadi ini menjelaskan mengapa Poisson dan GLM binomial negatif menghasilkan estimasi parameter yang sama. Memang, hal yang sama terjadi apakah kita menggunakan Poisson, negbin, Gaussian, invers Gaussian atau Regresi Gamma (lihat di bawah). Dalam kasus Poisson dan negbin, fungsi tautan default adalah tautan , tetapi itu adalah herring merah; sementara ini menghasilkan mentah yang samalog estimasi parameter , kita akan melihat di bawah bahwa properti ini benar-benar tidak ada hubungannya dengan fungsi tautan sama sekali.
Ketika kita tertarik pada parametrization dengan lebih banyak struktur, atau itu tergantung pada prediktor kontinu, maka struktur kesalahan yang diasumsikan menjadi relevan karena hubungan mean-varians dari distribusi karena berkaitan dengan parameter dan fungsi nonlinear yang digunakan untuk memodelkan kondisi. cara.
GLM dan keluarga dispersi eksponensial: Crash course
Sebuah keluarga dispersi eksponensial dalam bentuk alami adalah salah satu seperti bahwa kepadatan log adalah bentuk
logf(y;θ,ν)=θy−b(θ)ν+a(y,ν).
Di sini adalah parameter alami dan ν adalah parameter dispersi . Jika ν diketahui, ini hanya akan menjadi keluarga eksponensial satu parameter standar. Semua GLM yang dipertimbangkan di bawah ini menganggap model kesalahan dari keluarga ini.θνν
Pertimbangkan contoh pengamatan tunggal dari keluarga ini. Jika kita cocok oleh kemungkinan maksimum, kita mendapatkan bahwa y = b ' ( θ ) , terlepas dari nilai ν . Ini mudah meluas ke kasus sampel iid sejak likelihood log menambahkan, menghasilkan ˉ y = b ' ( θ ) .θy=b′(θ^)νy¯=b′(θ^)
Tetapi, kita juga tahu, karena keteraturan yang bagus dari kepadatan log sebagai fungsi dari , itu
∂θ
Jadi, sebenarnya b ′ ( θ ) = E Y = μ .
∂∂θElogf(Y;θ,ν)=E∂∂θlogf(Y;θ,ν)=0.
b′(θ)=EY=μ
Karena perkiraan kemungkinan maksimum yang berubah dalam transformasi, ini berarti bahwa
untuk keluarga ini kepadatan.y¯=μ^
Sekarang, dalam GLM, kami memodelkan sebagai μ i = g - 1 ( x T i β ) di mana g adalah fungsi tautan. Tetapi jika x i adalah vektor semua nol kecuali untuk 1 tunggal pada posisi j , maka μ i = g ( β j ) . Kemungkinan GLM kemudian memfaktorkan berdasarkan β j 'dan kami melanjutkan seperti di atas. Inilah tepatnya kasus faktor ortogonal.μiμi=g−1(xTiβ)gxijμi=g(βj)βj
Apa yang berbeda dari prediktor kontinu?
Ketika prediktor kontinu atau kategorik, tetapi tidak dapat direduksi menjadi bentuk ortogonal, maka kemungkinan tidak lagi menjadi faktor individu dengan rata-rata terpisah tergantung pada parameter terpisah. Pada titik ini, struktur kesalahan dan fungsi tautan memang ikut berperan.
Jika salah satu engkol melalui (membosankan) aljabar, persamaan kemungkinan menjadi
untuk semua j = 1 , ... , p di mana λ i = x T i β . Di sini,parameter β dan ν masuk secara implisit melalui hubungan tautan μ i = g ( λ i ) = g ( x T i β ) dan varians σ 2 i .
∑i=1n(yi−μi)xijσ2i∂μi∂λi=0,
j=1,…,pλi=xTiββνμi=g(λi)=g(xTiβ)σ2i
Dengan cara ini, fungsi tautan dan model kesalahan yang diasumsikan menjadi relevan dengan estimasi.
Contoh: Model kesalahan (hampir) tidak masalah
Dalam contoh di bawah ini, kami menghasilkan data acak binomial negatif tergantung pada tiga faktor kategori. Setiap pengamatan berasal dari satu kategori dan parameter dispersi yang sama ( ) digunakan.k=6
Kami kemudian cocok dengan data ini menggunakan lima GLM yang berbeda, masing-masing dengan tautan : ( a ) binomial negatif, ( b ) Poisson, ( c ) Gaussian, ( d ) Inverse Gaussian dan ( e ) Gamma GLMs. Semua ini adalah contoh keluarga dispersi eksponensial.log
Dari tabel, kita dapat melihat bahwa estimasi parameter identik , meskipun beberapa GLM ini adalah untuk data diskrit dan yang lain untuk kontinu, dan beberapa untuk data non-negatif sementara yang lain tidak.
negbin poisson gaussian invgauss gamma
XX1 4.234107 4.234107 4.234107 4.234107 4.234107
XX2 4.790820 4.790820 4.790820 4.790820 4.790820
XX3 4.841033 4.841033 4.841033 4.841033 4.841033
Peringatan dalam pos berasal dari fakta bahwa prosedur pemasangan akan gagal jika pengamatan tidak termasuk dalam domain kepadatan tertentu. Misalnya, jika kami memiliki hitungan yang dihasilkan secara acak dalam data di atas, maka Gamma GLM akan gagal untuk menyatu karena GLM Gamma membutuhkan data yang benar-benar positif.0
Contoh: Fungsi tautan (hampir) tidak masalah
loglog(β^)log(β^2)β^
> coefs.po
log id sqrt
XX1 4.234107 4.234107 4.234107
XX2 4.790820 4.790820 4.790820
XX3 4.841033 4.841033 4.841033
Peringatan dalam pos hanya merujuk pada fakta bahwa taksiran mentah akan berbeda dengan fungsi tautan, tetapi taksiran taksiran parameter rata-rata tidak akan.
Kode r
# Warning! This code is a bit simplified for compactness.
library(MASS)
n <- 5
m <- 3
set.seed(17)
b <- exp(5+rnorm(m))
k <- 6
# Random negbin data; orthogonal factors
y <- rnbinom(m*n, size=k, mu=rep(b,each=n))
X <- factor(paste("X",rep(1:m,each=n),sep=""))
# Fit a bunch of GLMs with a log link
con <- glm.control(maxit=100)
mnb <- glm(y~X+0, family=negative.binomial(theta=2))
mpo <- glm(y~X+0, family="poisson")
mga <- glm(y~X+0, family=gaussian(link=log), start=rep(1,m), control=con)
miv <- glm(y~X+0, family=inverse.gaussian(link=log), start=rep(2,m), control=con)
mgm <- glm(y~X+0, family=Gamma(link=log), start=rep(1,m), control=con)
coefs <- cbind(negbin=mnb$coef, poisson=mpo$coef, gaussian=mga$coef
invgauss=miv$coef, gamma=mgm$coef)
# Fit a bunch of Poisson GLMs with different links.
mpo.log <- glm(y~X+0, family=poisson(link="log"))
mpo.id <- glm(y~X+0, family=poisson(link="identity"))
mpo.sqrt <- glm(y~X+0, family=poisson(link="sqrt"))
coefs.po <- cbind(log=mpo$coef, id=log(mpo.id$coef), sqrt=log(mpo.sqrt$coef^2))