निम्नलिखित स्पष्टीकरण लॉजिस्टिक प्रतिगमन तक सीमित नहीं है, लेकिन सामान्य रैखिक प्रतिगमन और अन्य GLM में समान रूप से लागू होता है। आमतौर पर R
श्रेणीबद्ध और गुणांक के एक स्तर को छोड़कर, प्रत्येक वर्ग के अंतर को इस संदर्भ वर्ग (या कभी-कभी आधार रेखा वर्ग) कहा जाता है (इसे डमी कोडिंग या उपचार विपरीत कहा जाता है R
, विभिन्न विपरीत विकल्पों के उत्कृष्ट अवलोकन के लिए यहां देखें । )। वर्तमान विरोधाभासों को देखने के लिए R
, टाइप करें options("contrasts")
। आम तौर पर, R
श्रेणीगत चर के स्तरों को वर्णानुक्रम में क्रमबद्ध करता है और संदर्भ वर्ग के रूप में पहला लेता है। यह हमेशा इष्टतम नहीं होता है और इसे टाइप करके बदला जा सकता है (यहां, हम संदर्भ वर्ग को नए चर में "c" पर सेट करेंगे)new.variable <- relevel(old.variable, ref="c")
। श्रेणीगत चर के प्रत्येक स्तर के प्रत्येक गुणांक के लिए, एक वाल्ड परीक्षण यह परीक्षण करने के लिए किया जाता है कि संदर्भ वर्ग के गुणांक और अन्य वर्ग के बीच युग्मक अंतर शून्य से अलग है या नहीं। यह वही है जो प्रतिगमन तालिका में z और पी -values हैं। यदि केवल एक श्रेणीगत श्रेणी महत्वपूर्ण है, तो इसका मतलब यह नहीं है कि संपूर्ण चर अर्थहीन है और इसे मॉडल से हटा दिया जाना चाहिए। आप एक प्रदर्शन से चर के समग्र प्रभाव की जांच कर सकते संभावना अनुपात परीक्षण : दो मॉडल, के साथ एक और एक चर और प्रकार के बिना फिट anova(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
- 0.675rank1
rank2
- 3.99 - 0.675 = - 4.67rank1
rank1
। आप - 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
मॉडल में रहना चाहिए।
यह पोस्ट भी बहुत दिलचस्प है।
admit ~ 1
बनाम होगाadmit ~ rank - 1
?