Lojistik regresyonda kategorik öngörücünün önemi


19

Lojistik regresyonda kategorik değişkenler için z değerlerini yorumlamakta zorlanıyorum. Aşağıdaki örnekte 3 sınıflı bir kategorik değişkenim var ve z değerine göre CLASS2, diğerleri olmasa da alakalı olabilir.

Ama şimdi bu ne anlama geliyor?

Diğer sınıfları birleştirebileceğimi mi?
Tüm değişkenin iyi bir öngörücü olmayabilir mi?

Bu sadece bir örnektir ve buradaki gerçek z değerleri gerçek bir problemden değildir, sadece yorumlarıyla ilgili zorluklarım var.

           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 *  

Yanıtlar:


47

Aşağıdaki açıklama lojistik regresyon ile sınırlı değildir , normal doğrusal regresyon ve diğer GLM'lerde de aynı şekilde geçerlidir. Genellikle, Rkategorik bir seviyeyi hariç tutar ve katsayılar her sınıfın bu referans sınıfına (veya bazen taban çizgisi sınıfına denir) farkını gösterir (buna kukla kodlama veya tedavi kontrastları denir , farklı kontrast seçeneklerine mükemmel bir genel bakış için burayaR bakın ). Geçerli kontrastları görmek için yazın . Normalde, kategorik değişkenin seviyelerini alfabetik olarak sıralar ve ilki referans sınıfı olarak alır. Bu her zaman optimal değildir ve yazarak değiştirilebilir (burada, yeni değişkente referans sınıfını "c" olarak ayarlayacağız)Roptions("contrasts")Rnew.variable <- relevel(old.variable, ref="c"). Kategorik değişkenin her seviyesinin her katsayısı için, referans sınıfın katsayısı ile diğer sınıf arasındaki ikili farkın sıfırdan farklı olup olmadığını test etmek için bir Wald testi yapılır . Bu nedir z ve p regresyon tablosundaki-değerleri bulunmaktadır. Sadece bir kategorik sınıf anlamlı ise, bu mu değil bütün değişken anlamsız ve modelden kaldırılması gerektiğini ima. Bir gerçekleştirerek değişken genel etkisini kontrol edebilir olasılık oran testi : uygun iki model, değişken ve türü olmayan ile ve biri de (aşağıdaki örneğe bakınız). İşte bir örnek:zpanova(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

rank1rankrank1rankrank1rank2-0.675rank1rank2-3.99-0.675=-4.67rank1rank1. - 1Tüm katsayıları doğrudan görmek için model formülüne ekleyerek modeli kesişmeden de sığdırabilirsiniz :

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

Kesişimin artık gittiğini ve katsayısının rank1tam olarak ilk modelin kesişim olduğunu unutmayın. Burada, Wald testi katsayılar arasındaki ikili farkı değil, her bir katsayının sıfır olduğu hipotezini kontrol eder . Yine, her katsayının ranksıfırdan farklı olduğuna dair kanıtlarımız var . Son olarak, tüm değişkenin rankmodel uyumunu geliştirip iyileştirmediğini kontrol etmek için , bir modele ( my.mod1) ve değişken rank( my.mod2) olmadan bir modele uyuyoruz ve bir olasılık oranı testi gerçekleştiriyoruz. Bu, tüm katsayılarının ranksıfır olduğu hipotezini test eder :

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

Olabilirlik oranı testi oldukça önemlidir ve değişkenin rankmodelde kalması gerektiği sonucuna varacağız.

Bu yazı da çok ilginç.


Çok bilgilendirici cevap! Kısa bir soru: Ya sadece öngörücü olarak rütbemiz varsa? LRT testi yapmak için null admit ~ 1vs admit ~ rank - 1?
NULL

1
@NULL Evet, null'a karşı admit~rankya da uyumla admit~rank - 1eşdeğerdir.
COOLSerdash

Çok teşekkürler! Bir diğer hızlı soru: kategorik değişkenin katsayıları tek kuyruklu Wald testi yapmakla ilgilendiğimde (taban çizgisine kıyasla - kesişme demek istemiyorum), bu eksiklik gibi diğer öngörücülerin etkisi olur greve gpabundan etkilenir. kesişim dahil mi?
NULL

Diğer bir deyişle, diğer değişkenleri kontrol ederken kategorik öngörücünün katsayıları üzerinde tek kuyruklu bir test yapmak istersem, bu yolun yolu mu? ve bu doğrusal regresyon için de geçerli midir?
NULL

1
rankrankp

8

z

Yani anlamlı olmayan bir katsayı, kategorileri birleştirebileceğiniz anlamına mı geliyor? Hayır. İlk olarak, önemli olmayan, hiçbir fark olmadığı hipotezini reddedemeyeceğimiz anlamına gelir, ancak bu, bu tür farklılıkların olmadığı anlamına gelmez. Kanıt yokluğu, yokluğun kanıtı ile aynı şey değildir. İkincisi, birleştirme kategorileri, özellikle referans kategorisi, diğer tüm katsayıların yorumunu değiştirir. Bunun mantıklı olup olmadığı, bu farklı sınıfların neyi temsil ettiğine bağlıdır.

Bu, kategorik değişkenin tamamının "kötü" (anlamlı olmayan) bir yordayıcı olduğu anlamına mı geliyor? Hayır, bunun için tüm SINIF terimleri için eşzamanlı bir test yapmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.