Uji model regresi logistik menggunakan penyimpangan residual dan derajat kebebasan

8

Saya membaca halaman ini di Princeton.edu . Mereka melakukan regresi logistik (dengan R). Pada titik tertentu mereka menghitung probabilitas mendapatkan penyimpangan residual lebih tinggi daripada yang mereka dapatkan pada dengan derajat kebebasan yang sama dengan derajat kebebasan model. Menyalin-menempel dari situs web mereka ...χ2

> glm( cbind(using,notUsing) ~ age + hiEduc + noMore, family=binomial)

Call:  glm(formula = cbind(using, notUsing) ~ age + hiEduc + noMore,      
     family = binomial) 

Coefficients:
(Intercept)     age25-29     age30-39     age40-49       hiEduc       noMore  
    -1.9662       0.3894       0.9086       1.1892       0.3250       0.8330  

Degrees of Freedom: 15 Total (i.e. Null);  10 Residual
Null Deviance:      165.8 
Residual Deviance: 29.92        AIC: 113.4 

Penyimpangan residual 29,92 pada 10 df sangat signifikan:

> 1-pchisq(29.92,10)
[1] 0.0008828339

jadi kami membutuhkan model yang lebih baik


Mengapa masuk akal untuk menghitung 1-pchisq(29.92,10)dan mengapa probabilitas rendah menunjukkan bahwa ada yang salah dengan model mereka?

Remi.b
sumber

Jawaban:

7

Mereka menggunakan tes penyimpangan yang ditunjukkan di bawah ini:

D(y)=2(β^;y)+2(θ^(s);y)

Di sini mewakili model yang cocok dan mewakili model jenuh. Log-likelihood untuk model jenuh adalah (lebih sering daripada tidak) , maka Anda dibiarkan dengan sisa penyimpangan dari model yang mereka pas ( ). Tes penyimpangan ini kira-kira chi-kuadrat dengan derajat kebebasan ( menjadi pengamatan dan menjadi jumlah variabel yang dipasang). Anda memiliki dan sehingga tes akan menjadi sekitarβ^θ^(s)029.92npnpn=16p=6χ102. Nilai nol dari tes ini adalah bahwa model Anda yang pas cocok dengan data dengan baik dan tidak ada ketidakcocokan — Anda belum melewatkan sumber variasi apa pun. Dalam tes di atas Anda menolak nol dan, sebagai hasilnya, Anda telah melewatkan sesuatu dalam model yang Anda pas. Alasan untuk menggunakan tes ini adalah bahwa model jenuh akan cocok dengan data dengan sempurna jadi jika Anda berada dalam kasus di mana Anda tidak menolak nol antara model pas Anda dan model jenuh, itu menunjukkan Anda belum melewatkan sumber data besar variasi dalam model Anda.

francium87d
sumber
3

Pertanyaan Anda, sebagaimana dinyatakan, telah dijawab oleh @ francium87d. Membandingkan penyimpangan residu terhadap distribusi chi-kuadrat yang tepat merupakan pengujian model yang dipasang terhadap model jenuh dan menunjukkan, dalam hal ini, kurangnya kecocokan yang signifikan.


Namun, mungkin membantu untuk melihat lebih teliti pada data dan model untuk memahami dengan lebih baik apa artinya model tersebut memiliki ketidakcocokan:

d = read.table(text=" age education wantsMore notUsing using 
   <25       low       yes       53     6
   <25       low        no       10     4
   <25      high       yes      212    52
   <25      high        no       50    10
 25-29       low       yes       60    14
 25-29       low        no       19    10
 25-29      high       yes      155    54
 25-29      high        no       65    27
 30-39       low       yes      112    33
 30-39       low        no       77    80
 30-39      high       yes      118    46
 30-39      high        no       68    78
 40-49       low       yes       35     6
 40-49       low        no       46    48
 40-49      high       yes        8     8
 40-49      high        no       12    31", header=TRUE, stringsAsFactors=FALSE)
d = d[order(d[,3],d[,2]), c(3,2,1,5,4)]

library(binom)
d$proportion = with(d, using/(using+notUsing))
d$sum        = with(d, using+notUsing)
bCI          = binom.confint(x=d$using, n=d$sum, methods="exact")

m     = glm(cbind(using,notUsing)~age+education+wantsMore, d, family=binomial)
preds = predict(m, new.data=d[,1:3], type="response")

windows()
  par(mar=c(5, 8, 4, 2))
  bp = barplot(d$proportion, horiz=T, xlim=c(0,1), xlab="proportion",
               main="Birth control usage")
  box()
  axis(side=2, at=bp, labels=paste(d[,1], d[,2], d[,3]), las=1)
  arrows(y0=bp, x0=bCI[,5], x1=bCI[,6], code=3, angle=90, length=.05)
  points(x=preds, y=bp, pch=15, col="red")

masukkan deskripsi gambar di sini

Angka tersebut menggambarkan proporsi wanita yang diamati dalam setiap kelompok kategori yang menggunakan kontrasepsi, bersama dengan interval kepercayaan 95% yang tepat. Proporsi prediksi model disalut dengan warna merah. Kita dapat melihat bahwa dua proporsi yang diprediksi berada di luar 95% CI, dan anther lima berada di atau sangat dekat dengan batas masing-masing CI. Itu tujuh dari enam belas ( ) yang keluar dari target. Jadi prediksi model tidak cocok dengan data yang diamati dengan sangat baik. 44%

Bagaimana model ini bisa lebih cocok? Mungkin ada interaksi di antara variabel-variabel yang relevan. Mari kita tambahkan semua interaksi dua arah dan nilai kecocokan:

m2 = glm(cbind(using,notUsing)~(age+education+wantsMore)^2, d, family=binomial)
summary(m2)
# ...
#     Null deviance: 165.7724  on 15  degrees of freedom
# Residual deviance:   2.4415  on  3  degrees of freedom
# AIC: 99.949
# 
# Number of Fisher Scoring iterations: 4
1-pchisq(2.4415, df=3)  # [1] 0.4859562
drop1(m2, test="LRT")
# Single term deletions
# 
# Model:
# cbind(using, notUsing) ~ (age + education + wantsMore)^2
#                     Df Deviance     AIC     LRT Pr(>Chi)  
# <none>                   2.4415  99.949                   
# age:education        3  10.8240 102.332  8.3826  0.03873 *
# age:wantsMore        3  13.7639 105.272 11.3224  0.01010 *
# education:wantsMore  1   5.7983 101.306  3.3568  0.06693 .

Nilai p untuk kurangnya uji kelayakan untuk model ini sekarang adalah . Tetapi apakah kita benar-benar membutuhkan semua istilah interaksi ekstra itu? The perintah menunjukkan hasil tes model yang bersarang tanpa mereka. Interaksi antara dan tidak cukup signifikan, tetapi saya akan baik-baik saja dengan itu dalam model. Jadi mari kita lihat bagaimana prediksi dari model ini dibandingkan dengan data: 0.486drop1()educationwantsMore

masukkan deskripsi gambar di sini

Ini tidak sempurna, tetapi kita tidak boleh berasumsi bahwa proporsi yang diamati adalah refleksi sempurna dari proses menghasilkan data yang benar. Bagi saya ini terlihat seperti mereka memantul di sekitar jumlah yang sesuai (lebih tepatnya bahwa data memantul di sekitar prediksi, saya kira).

gung - Pasang kembali Monica
sumber
2

Saya tidak percaya bahwa statistik deviance residual memiliki . Saya pikir ini adalah distribusi yang merosot karena teori asimptotik tidak berlaku ketika derajat kebebasan meningkat pada kecepatan yang sama dengan ukuran sampel. Bagaimanapun saya ragu bahwa tes memiliki kekuatan yang cukup, dan mendorong tes diarahkan seperti tes linearitas menggunakan splines regresi dan tes interaksi.χ2

Frank Harrell
sumber
1
Saya pikir karena dalam hal ini semua prediktor bersifat kategoris, tidak. derajat kebebasan model jenuh tidak akan meningkat dengan ukuran sampel, sehingga pendekatan asimptotik masuk akal. Ukuran sampel masih agak kecil.
Scortchi
Tidak yakin itu saja. Df dari parameter model adalah tetap tetapi df dari sisa " " adalah minus itu. χ2n
Frank Harrell
Dalam hal ini data terdiri dari 1607 individu dalam tabel kontingensi & tes ini membandingkan model 6-parameter dengan model jenuh 16-parameter (daripada model 1607-parameter).
Scortchi
Maka itu tidak boleh dilabeli sebagai residual . χ2
Frank Harrell
1
Saya setuju terminologi ini disayangkan: glmmemberikan "penyimpangan residual" yang berbeda ketika data dikelompokkan dari ketika mereka tidak - & "penyimpangan nol" yang berbeda dalam hal ini.
Scortchi