Signifikansi prediktor kategoris dalam regresi logistik


19

Saya mengalami kesulitan menafsirkan nilai z untuk variabel kategori dalam regresi logistik. Dalam contoh di bawah ini saya memiliki variabel kategori dengan 3 kelas dan menurut nilai z, CLASS2 mungkin relevan sementara yang lain tidak.

Tapi sekarang apa artinya ini?

Bahwa saya bisa menggabungkan kelas lain menjadi satu?
Bahwa seluruh variabel mungkin bukan prediktor yang baik?

Ini hanya contoh dan nilai z aktual di sini bukan dari masalah nyata, saya hanya mengalami kesulitan tentang interpretasi mereka.

           Estimate    Std. Error  z value Pr(>|z|)    
CLASS0     6.069e-02  1.564e-01   0.388   0.6979    
CLASS1     1.734e-01  2.630e-01   0.659   0.5098    
CLASS2     1.597e+00  6.354e-01   2.514   0.0119 *  

Jawaban:


47

Penjelasan berikut tidak terbatas pada regresi logistik tetapi berlaku sama dalam regresi linier normal dan GLM lainnya. Biasanya, Rmengecualikan satu tingkat kategori dan koefisien menunjukkan perbedaan masing-masing kelas dengan kelas referensi ini (atau kadang-kadang disebut kelas dasar) (ini disebut pengkodean dummy atau kontras perawatan R, lihat di sini untuk ikhtisar yang sangat baik dari opsi kontras yang berbeda ). Untuk melihat kontras saat ini R, ketik options("contrasts"). Biasanya, Rmemesan level variabel kategorikal berdasarkan abjad dan mengambil yang pertama sebagai kelas referensi. Ini tidak selalu optimal dan dapat diubah dengan mengetik (di sini, kita akan mengatur kelas referensi menjadi "c" dalam variabel baru)new.variable <- relevel(old.variable, ref="c"). Untuk setiap koefisien dari setiap level variabel kategori, uji Wald dilakukan untuk menguji apakah perbedaan berpasangan antara koefisien kelas referensi dan kelas lainnya berbeda dari nol atau tidak. Ini adalah apa nilai dan dalam tabel regresi. Jika hanya satu kelas kategorikal yang signifikan, ini tidak berarti bahwa seluruh variabel tidak ada artinya dan harus dikeluarkan dari model. Anda dapat memeriksa efek keseluruhan dari variabel dengan melakukan uji rasio kemungkinan : fit dua model, satu dengan dan satu tanpa variabel dan jenis di (lihat contoh di bawah). Berikut ini sebuah contoh:zhalanova(model1, model2, test="LRT")R

mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")

mydata$rank <- factor(mydata$rank)

my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")

summary(my.mod)

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept) -3.989979   1.139951  -3.500 0.000465 ***
gre          0.002264   0.001094   2.070 0.038465 *  
gpa          0.804038   0.331819   2.423 0.015388 *  
rank2       -0.675443   0.316490  -2.134 0.032829 *  
rank3       -1.340204   0.345306  -3.881 0.000104 ***
rank4       -1.551464   0.417832  -3.713 0.000205 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Tingkat rank1telah dihilangkan dan masing-masing koefisien rankmenunjukkan perbedaan antara koefisien rank1dan ranktingkat yang sesuai . Jadi perbedaan antara koefisien rank1dan rank2akan . Koefisien hanyalah intersep. Jadi koefisien sebenarnya adalah . Tes Wald di sini menguji apakah perbedaan antara koefisien kelas referensi (di sini ) dan tingkat yang sesuai berbeda dari nol. Dalam hal ini, kami memiliki bukti bahwa koefisien semua kelas berbeda dari koefisien . Anda juga bisa menyesuaikan model tanpa memotong dengan menambahkan-0,675rank1rank2-3,99-0,675=-4.67rank1rank1- 1 ke rumus model untuk melihat semua koefisien secara langsung:

my.mod2 <- glm(admit ~ gre + gpa + rank - 1, data = mydata, family = "binomial")

summary(my.mod2) # no intercept model

Coefficients:
       Estimate Std. Error z value Pr(>|z|)    
gre    0.002264   0.001094   2.070 0.038465 *  
gpa    0.804038   0.331819   2.423 0.015388 *  
rank1 -3.989979   1.139951  -3.500 0.000465 ***
rank2 -4.665422   1.109370  -4.205 2.61e-05 ***
rank3 -5.330183   1.149538  -4.637 3.54e-06 ***
rank4 -5.541443   1.138072  -4.869 1.12e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Perhatikan bahwa intersep hilang sekarang dan koefisien rank1tepat adalah intersep dari model pertama. Di sini, uji Wald memeriksa bukan perbedaan berpasangan antara koefisien tetapi hipotesis bahwa masing-masing koefisien individu adalah nol. Sekali lagi, kami memiliki bukti bahwa setiap koefisien rankberbeda dari nol. Akhirnya, untuk memeriksa apakah seluruh variabel rankmeningkatkan kecocokan model, kami mencocokkan satu model dengan ( my.mod1) dan satu tanpa variabel rank( my.mod2) dan melakukan uji rasio kemungkinan. Ini menguji hipotesis bahwa semua koefisien ranknol:

my.mod1 <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") # with rank
my.mod2 <- glm(admit ~ gre + gpa, data = mydata, family = "binomial") # without rank

anova(my.mod1, my.mod2, test="LRT")

Analysis of Deviance Table

Model 1: admit ~ gre + gpa + rank
Model 2: admit ~ gre + gpa
  Resid. Df Resid. Dev Df Deviance  Pr(>Chi)    
1       394     458.52                          
2       397     480.34 -3  -21.826 7.088e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Uji rasio kemungkinan sangat signifikan dan kami akan menyimpulkan bahwa variabel rankharus tetap dalam model.

Posting ini juga sangat menarik.


Jawaban yang sangat informatif! Satu pertanyaan singkat: bagaimana jika kita hanya memiliki peringkat sebagai prediktor? Untuk melakukan tes LRT, nol akan menjadi admit ~ 1vs admit ~ rank - 1?
NULL

1
@ NULL Ya, baik yang null vs. admit~rankatau admit~rank - 1, mereka setara dengan fit.
COOLSerdash

Terima kasih banyak! Satu pertanyaan singkat lainnya: ketika saya tertarik untuk melakukan uji Wald satu sisi koefisien variabel kategoris (tanpa membandingkan dengan baseline - maksud saya tidak ada intersep), apakah efek dari prediktor lain seperti gredan gpaakan terpengaruh oleh kurangnya masuknya intersep?
NULL

Dengan kata lain, jika saya ingin melakukan uji satu sisi pada koefisien dari prediktor kategorik sambil mengendalikan kovariat lainnya, apakah ini jalan yang harus ditempuh? dan apakah ini juga berlaku untuk regresi linier?
NULL

1
rankrankhal

8

z

Jadi, apakah koefisien yang tidak signifikan berarti Anda dapat menggabungkan kategori? Pertama, tidak signifikan artinya kita tidak dapat menolak hipotesis bahwa tidak ada perbedaan, tetapi itu tidak berarti bahwa tidak ada perbedaan seperti itu. Tidak adanya bukti tidak sama dengan bukti ketidakhadiran. Kedua, menggabungkan kategori, terutama kategori referensi, mengubah interpretasi dari semua koefisien lainnya. Apakah itu masuk akal atau tidak tergantung pada apa yang diperjuangkan oleh kelas-kelas yang berbeda itu.

Apakah itu berarti bahwa seluruh variabel kategori adalah prediktor "buruk" (tidak signifikan)? Tidak, untuk itu Anda perlu melakukan tes simultan untuk semua istilah CLASS.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.