Значення категоричного предиктора в логістичній регресії


19

У мене виникають проблеми з інтерпретацією значень z для категоричних змінних в логістичній регресії. У наведеному нижче прикладі я маю категоричну змінну з 3 класами, і відповідно до значення z, CLASS2 може бути релевантним, а інші - ні.

Але тепер що це означає?

Що я міг би об'єднати інші класи до одного?
Що вся змінна може бути не гарним прогнозчиком?

Це лише приклад, і фактичні значення z тут не є реальною проблемою, у мене просто є труднощі з їх інтерпретацією.

           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 *  

Відповіді:


47

Наступне пояснення не обмежується логістичною регресією, але однаково застосовується як для звичайної лінійної регресії, так і для інших GLM. Зазвичай Rвиключає один рівень категоричного, а коефіцієнти позначають різницю кожного класу до цього еталонного класу (або іноді називають базовим класом) (це називається фіктивним кодуванням або контрастами лікування R, див. Тут для відмінного огляду різних варіантів контрастування ). Щоб побачити поточні контрасти R, введіть options("contrasts"). Зазвичай Rвпорядковує рівні категоріальної змінної в алфавітному порядку і приймає перший як еталонний клас. Це не завжди є оптимальним, і його можна змінити, набравши текст (тут ми встановимо опорний клас на "c" у новій змінній)new.variable <- relevel(old.variable, ref="c"). Для кожного коефіцієнта кожного рівня категоріальної змінної проводиться тест Вальда , щоб перевірити, чи відрізняється попарна різниця між коефіцієнтом опорного класу та іншим класом, відмінним від нуля чи ні. Це те, що і -значення в таблиці регресії. Якщо важливий лише один категоричний клас, це не означає, що вся змінна є безглуздою і її слід вилучити з моделі. Ви можете перевірити загальний ефект змінної, виконуючи тест відношення правдоподібності : підходять дві моделі, одна з яких і один без змінної і типу в (дивись приклад нижче). Ось приклад: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

Рівень rank1опущений, і кожен коефіцієнт rankпозначає різницю між коефіцієнтом rank1та відповідним rankрівнем. Отже різниця між коефіцієнтом rank1і і rank2становила б . Коефіцієнт просто перехоплення. Тож справжній коефіцієнт буде . Тести Wald тут перевіряють, чи різниця між коефіцієнтом опорного класу (тут ) та відповідними рівнями відрізняється від нуля. У цьому випадку ми маємо докази того, що коефіцієнти всіх класів відрізняються від коефіцієнта . Ви також можете підігнати модель без перехоплення, додавши-0,675rank1rank2-3,99-0,675=-4.67rank1rank1- 1 до формули моделі, щоб переглянути всі коефіцієнти безпосередньо:

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

Зауважимо, що перехоплення зараз відсутнє, а коефіцієнт - rank1це саме перехоплення першої моделі. Тут тест Уолда перевіряє не парну різницю між коефіцієнтами, а гіпотезу про те, що кожен окремий коефіцієнт дорівнює нулю. Знову ми маємо докази того, що кожен коефіцієнт rankвідрізняється від нуля. Нарешті, щоб перевірити, чи вся змінна rankпокращує придатність моделі, ми підходимо до однієї моделі з ( my.mod1) та однієї без змінної rank( my.mod2) та проводимо тест на коефіцієнт ймовірності. Це перевіряє гіпотезу, що всі коефіцієнти rankдорівнюють нулю:

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

Тест на коефіцієнт ймовірності є дуже вагомим, і ми б зробили висновок, що змінна rankповинна залишатися в моделі.

Цей пост також дуже цікавий.


Дуже інформативна відповідь! Одне швидке запитання: що робити, якщо ми маємо лише ранг як прогноктор? Для виконання тесту LRT нуль буде admit ~ 1vs admit ~ rank - 1?
NULL

1
@NULL Так, або нульове порівняно, admit~rankабо admit~rank - 1вони є рівнозначними щодо придатності.
COOLSerdash

Щиро дякую! Ще одне швидке запитання: коли мені цікаво виконати односхилий тест Уолда щодо коефіцієнтів категоріальної змінної (без порівняння з базовою лінією - я маю на увазі відсутність перехоплення), вплинуло б на інших предикторів, таких як greі на gpaних вплине ця відсутність включення перехоплення?
NULL

Іншими словами, якщо я хочу здійснити односхилий тест на коефіцієнти категоріального предиктора, контролюючи інші коваріати, це шлях? і чи це також застосовно до лінійної регресії?
NULL

1
rankrankp

8

z

Так чи означає несуттєвий коефіцієнт, що ви можете об'єднати категорії? Ні. По-перше, незначне означає, що ми не можемо відкинути гіпотезу про відсутність різниці, але це не означає, що таких відмінностей не існує. Відсутність доказів - це не те саме, що свідчення про відсутність. По-друге, категорії злиття, особливо референтна категорія, змінюють інтерпретацію всіх інших коефіцієнтів. Від того, чи має це сенс, залежить від того, на що стоять ці різні класи.

Чи означає це, що вся категоріальна змінна є "поганим" (несуттєвим) прогноктором? Ні, для цього вам потрібно буде виконати одночасний тест на всі умови КЛАСУ.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.