Memeriksa residual untuk normalitas dalam model linier umum

12

Makalah ini menggunakan model linier umum (distribusi kesalahan binomial dan negatif binomial) untuk menganalisis data. Tetapi kemudian di bagian analisis statistik metode, ada pernyataan ini:

... dan yang kedua dengan memodelkan data keberadaan menggunakan Model Regresi Logistik, dan data waktu pencarian makan menggunakan Generalized Linear Model (GLM). Distribusi binomial negatif dengan fungsi log link digunakan untuk memodelkan data waktu mencari makan (Welsh et al. 1996) dan kecukupan model diverifikasi dengan pemeriksaan resi (McCullagh & Nelder 1989). Tes Shapiro-Wilk atau Kolmogorov-Smirnov digunakan untuk menguji normalitas tergantung pada ukuran sampel; data ditransformasikan-log sebelum analisis untuk mematuhi normalitas.

Jika mereka mengasumsikan distribusi kesalahan binomial dan negatif binomial, maka tentunya mereka seharusnya tidak memeriksa normalitas residual?

luciano
sumber
2
Perhatikan bahwa kesalahan tidak terdistribusi secara binerial - setiap respons terdistribusi secara binerial dengan parameter probabilitas yang diberikan oleh nilai prediktor yang sesuai, sesuai jawaban untuk salah satu pertanyaan Anda yang lain .
Scortchi
3
Tidak ada dalam regresi binomial atau regresi binomial negatif dari yang seharusnya normal. Jika respons yang mereka transformasikan, itu mungkin sangat kontraproduktif; itu akan mengacaukan GLM.
Glen_b -Reinstate Monica
1
Dari kutipan Anda tidak jelas apa yang sebenarnya mereka uji untuk normalitas (apakah Anda yakin itu adalah residu?) Atau untuk analisis apa mereka mentransformasikan data (Anda yakin itu GLM?).
Scortchi
Saya telah sedikit memperluas kutipan. Bisakah seseorang mengkonfirmasi jika apa yang dilakukan penulis makalah itu salah atau benar?
luciano
Saya khawatir ini masih belum terlalu jelas - hubungi penulis untuk perincian tentang bagaimana mereka melakukan analisis jika tidak dijelaskan di tempat lain dalam makalah atau rujukannya.
Scortchi

Jawaban:

16

NB residual penyimpangan (atau Pearson) tidak diharapkan memiliki distribusi normal kecuali untuk model Gaussian. Untuk kasus regresi logistik, seperti @Stat mengatakan, residu penyimpangan untuk th pengamatan diberikan olehiyi

riD=2|log(1π^i)|

jika &yi=0

riD=2|log(π^i)|

jika , di mana adalah probabilitas Bernoulli yang cocok. Karena masing-masing hanya dapat mengambil satu dari dua nilai, jelas distribusinya tidak bisa normal, bahkan untuk model yang ditentukan dengan benar:yi=1πi^

#generate Bernoulli probabilities from true model
x <-rnorm(100)
p<-exp(x)/(1+exp(x))

#one replication per predictor value
n <- rep(1,100)
#simulate response
y <- rbinom(100,n,p)
#fit model
glm(cbind(y,n-y)~x,family="binomial") -> mod
#make quantile-quantile plot of residuals
qqnorm(residuals(mod, type="deviance"))
abline(a=0,b=1)

QQ plot n = 1

Tetapi jika ada replikasi pengamatan untuk pola prediktor ke- , & residu penyimpangan didefinisikan untuk mengumpulkan ininii

riD=sgn(yiniπ^i)2[yilogyinπ^i+(niyi)logniyini(1π^i)]

(di mana sekarang adalah hitungan keberhasilan dari 0 hingga ) maka ketika semakin besar distribusi residu lebih mendekati normalitas:n i n iyinini

#many replications per predictor value
n <- rep(30,100)
#simulate response
y<-rbinom(100,n,p)
#fit model
glm(cbind(y,n-y)~x,family="binomial")->mod
#make quantile-quantile plot of residuals
qqnorm(residuals(mod, type="deviance"))
abline(a=0,b=1)

QQ plot n = 30

Hal-hal serupa untuk Poisson atau GLM binomial negatif: untuk jumlah prediksi yang rendah distribusi residu diskrit & miring, tetapi cenderung normal untuk jumlah yang lebih besar di bawah model yang ditentukan dengan benar.

Tidak biasa, setidaknya tidak di leher saya di hutan, untuk melakukan tes formal normal residual; jika pengujian normalitas pada dasarnya tidak berguna ketika model Anda mengasumsikan normalitas yang tepat, maka fortiori itu tidak berguna ketika tidak. Namun demikian, untuk model tak jenuh, diagnostik residual grafis berguna untuk menilai keberadaan & sifat kurang fit, mengambil normalitas dengan cubitan atau segenggam garam tergantung pada jumlah ulangan per pola prediktor.

Scortchi - Reinstate Monica
sumber
1

Apa yang mereka lakukan adalah benar! Saya akan memberi Anda referensi untuk memeriksa ulang. Lihat Bagian 13.4.4 dalam Pengantar Analisis Regresi Linier, Edisi ke-5oleh Douglas C. Montgomery, Elizabeth A. Peck, G. Geoffrey Vining. Khususnya, lihat contoh di halaman 460, di mana mereka cocok dengan binary glm dan periksa kembali asumsi normalitas dari "Deviance Residuals". Seperti yang disebutkan pada halaman 458, ini karena "residu penyimpangan berperilaku seperti residual biasa dalam model regresi linier normal-teori standar". Jadi masuk akal jika Anda memplotnya pada skala plot probabilitas normal dan juga nilai pas. Sekali lagi lihat halaman 456 dari referensi di atas. Dalam contoh yang mereka berikan pada halaman 460 dan 461, tidak hanya untuk kasus binomial, tetapi juga untuk Poisson glm dan Gamma dengan (tautan = log), mereka telah memeriksa normalitas residual penyimpangan.
Untuk kasus binomial residual penyimpangan didefinisikan sebagai:

riD=2|ln(1πi^)|
jika dan jika . Sekarang beberapa pengkodean dalam R untuk menunjukkan kepada Anda bagaimana Anda bisa mendapatkannya:yi=0yi=1
riD=2|ln(πi^)|
yi=1
> attach(npk)

> #Fitting binomila glm
> fit.1=glm(P~yield,family=binomial(logit))
> 
> #Getting deviance residuals directly
> rd=residuals(fit.1,type = c("deviance"))
> rd
         1          2          3          4          5          6          7 
 1.1038306  1.2892945 -1.2912991 -1.1479881 -1.1097832  1.2282009 -1.1686771 
         8          9         10         11         12         13         14 
 1.1931365  1.2892945  1.1903473 -0.9821829 -1.1756061 -1.0801690  1.0943912 
        15         16         17         18         19         20         21 
-1.3099491  1.0333213  1.1378369 -1.2245380 -1.2485566  1.0943912 -1.1452410 
        22         23         24 
 1.2352561  1.1543163 -1.1617642 
> 
> 
> #Estimated success probabilities
> pi.hat=fitted(fit.1)
> 
> #Obtaining deviance residuals directly
> rd.check=-sqrt(2*abs(log(1-pi.hat)))
> rd.check[P==1]=sqrt(2*abs(log(pi.hat[P==1])))
> rd.check
         1          2          3          4          5          6          7 
 1.1038306  1.2892945 -1.2912991 -1.1479881 -1.1097832  1.2282009 -1.1686771 
         8          9         10         11         12         13         14 
 1.1931365  1.2892945  1.1903473 -0.9821829 -1.1756061 -1.0801690  1.0943912 
        15         16         17         18         19         20         21 
-1.3099491  1.0333213  1.1378369 -1.2245380 -1.2485566  1.0943912 -1.1452410 
        22         23         24 
 1.2352561  1.1543163 -1.1617642 
> 

Periksa di sini untuk kasing Poisson juga.

Stat
sumber
2
Contoh Anda adalah pilihan yang aneh. Apakah Anda membuat plot PP atau QQ dari residu penyimpangan itu; jika demikian, apa yang Anda simpulkan?
Scortchi
5
Poinnya adalah dalam hal ini tidak ada gunanya memeriksa normalitas residu - mereka jelas tidak terdistribusi normal, juga tidak seharusnya. Hanya karena jumlah pengamatan untuk setiap pola prediktor meningkat, distribusi residu (satu residu dihitung per pola prediktor) cenderung ke normal. Demikian pula untuk model Poisson atau binomial negatif - jumlah harus besar agar pendekatan normal menjadi baik.
Scortchi
2
Pertanyaannya adalah apakah residu dari model linier umum harus didistribusikan secara normal. Jawaban Anda tampaknya adalah "ya" yang tidak memenuhi syarat (meskipun sumber Anda pasti memberikan kualifikasi yang diperlukan, tidak setiap pembaca akan memeriksanya). Anda kemudian memberikan contoh di mana tidak ada alasan sama sekali untuk mengharapkan residu terdistribusi secara normal, bahkan jika modelnya ditentukan dengan benar: pembaca yang tidak waspada akan berasumsi bahwa mereka seharusnya & itu, karena mereka jelas tidak, ini adalah Oleh karena itu contoh pendeteksian model salah spesifikasi dengan memeriksa residu (meskipun Anda ...
Scortchi - Reinstate Monica
2
... belum mengatakannya). Jadi saya pikir jawabannya memerlukan banyak klarifikasi untuk berguna.
Scortchi
2
Komentar IMO @ Scortchi masuk akal di sini. Melihat apa yang dapat saya lihat dari buku Montgomery di pratinjau buku google mereka membuat plot QQ, tetapi tidak melakukan tes normalitas yang sebenarnya seperti disebutkan oleh poster asli. Tentu membuat plot QQ masuk akal sebagai tes diagnostik, tetapi dalam hampir semua situasi yang realistis bahkan penyimpangan tetap. tidak akan normal.
Andy W