लॉजिट या प्रोबिट मॉडल में चुने हुए गुणांक की एक साथ समानता के लिए परीक्षण कैसे करें?


14

लॉजिट या प्रोबिट मॉडल में चुने हुए गुणांक की एक साथ समानता के लिए परीक्षण कैसे करें? मानक दृष्टिकोण क्या है और कला दृष्टिकोण की स्थिति क्या है?

जवाबों:


30

वाल्ड टेस्ट

एक मानक दृष्टिकोण वाल्ड परीक्षण है । यह वही है जो स्टैटा कमांड test एक लॉगिट या प्रोबिट रिग्रेशन के बाद करता है। आइए देखें कि यह R में एक उदाहरण को देखकर कैसे काम करता है:

mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv") # Load dataset from the web
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial") # calculate the logistic regression

summary(mylogit)

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

कहो, आप परिकल्पना बनाम का परीक्षण करना चाहते हैं । यह परीक्षण के बराबर है । Wald परीक्षण आँकड़ा है:βgre=βgpaβgreβgpaβgreβgpa=0

W=(β^β0)se^(β^)N(0,1)

या

W2=(θ^θ0)2Var(θ^)χ12

यहाँ हमारा यहाँ और । इसलिए हमें केवल की मानक त्रुटि की आवश्यकता है । हम डेल्टा विधि के साथ मानक त्रुटि की गणना कर सकते हैं : बीटाजीआर-बीटाजीपीएकθ0=0बीटाजीआर-बीटाजीपीएकθ^βgreβgpaθ0=0βgreβgpa

se^(βgreβgpa)Var(βgre)+Var(βgpa)2Cov(βgre,βgpa)

तो हम भी और । उपस्कर -सहसंयोजक मैट्रिक्स को लॉजिस्टिक रिग्रेशन चलाने के बाद कमांड के साथ निकाला जा सकता है : β जी पी एकβgreβgpavcov

var.mat <- vcov(mylogit)[c("gre", "gpa"),c("gre", "gpa")]

colnames(var.mat) <- rownames(var.mat) <- c("gre", "gpa")

              gre           gpa
gre  1.196831e-06 -0.0001241775
gpa -1.241775e-04  0.1101040465

अंत में, हम मानक त्रुटि की गणना कर सकते हैं:

se <- sqrt(1.196831e-06 + 0.1101040465 -2*-0.0001241775)
se
[1] 0.3321951

तो आपका Wald -value हैz

wald.z <- (gre-gpa)/se
wald.z
[1] -2.413564

एक प्राप्त करने के लिए -value, बस मानक सामान्य वितरण का उपयोग करें:p

2*pnorm(-2.413564)
[1] 0.01579735

इस मामले में हमारे पास सबूत हैं कि गुणांक एक-दूसरे से अलग हैं। इस दृष्टिकोण को दो से अधिक गुणांक तक बढ़ाया जा सकता है।

का उपयोग करते हुए multcomp

यह बल्कि थकाऊ गणना पैकेज Rका उपयोग करने में आसानी से किया जा सकता है multcomp। यहाँ ऊपर के रूप में एक ही उदाहरण है, लेकिन इसके साथ किया गया है multcomp:

library(multcomp)

glht.mod <- glht(mylogit, linfct = c("gre - gpa = 0"))

summary(glht.mod)    

Linear Hypotheses:
               Estimate Std. Error z value Pr(>|z|)  
gre - gpa == 0  -0.8018     0.3322  -2.414   0.0158 *

confint(glht.mod)

गुणांक के अंतर के लिए एक आत्मविश्वास अंतराल की भी गणना की जा सकती है:

Quantile = 1.96
95% family-wise confidence level


Linear Hypotheses:
               Estimate lwr     upr    
gre - gpa == 0 -0.8018  -1.4529 -0.1507

अतिरिक्त उदाहरणों के लिए multcomp, यहां या यहां देखें ।


संभावना अनुपात परीक्षण (LRT)

एक लॉजिस्टिक प्रतिगमन के गुणांक अधिकतम संभावना द्वारा पाए जाते हैं। लेकिन क्योंकि संभावना फ़ंक्शन में बहुत सारे उत्पाद शामिल होते हैं, लॉग-लाइबिलिटी को अधिकतम किया जाता है जो उत्पादों को रकम में बदल देता है। जो मॉडल बेहतर ढंग से फिट होता है, उसकी लॉग-अप संभावना अधिक होती है। अधिक चर वाले मॉडल में कम से कम शून्य मॉडल के समान संभावना है। साथ वैकल्पिक मॉडल (अधिक चर वाले मॉडल) की लॉग- को और साथ अशक्त मॉडल की लॉग- , संभावना अनुपात परीक्षण सांख्यिकीय है: L L 0LLaLL0

D=2(LLaLL0)χdf1df22

संभावना अनुपात परीक्षण आँकड़ा एक अनुसरण करता है-स्वतंत्रता की डिग्री के साथ चर की संख्या में अंतर होना। हमारे मामले में, यह 2 है।χ2

संभावना अनुपात परीक्षण करने के लिए, हमें भी दो संभावना की तुलना करने में सक्षम होने के लिए बाधा साथ मॉडल फिट करने की आवश्यकता है । पूर्ण मॉडल में फ़ॉर्म । हमारे बाधा मॉडल का रूप है: । लॉग ( पी मैंβgre=βgpaलॉग(p i)

log(pi1pi)=β0+β1gre+β2gpa+β3rank2+β4rank3+β5rank4
log(pi1pi)=β0+β1(gre+gpa)+β2rank2+β3rank3+β4rank4
mylogit2 <- glm(admit ~ I(gre + gpa) + rank, data = mydata, family = "binomial")

हमारे मामले में, हम logLikएक लॉजिस्टिक रिग्रेशन के बाद दो मॉडल की लॉग-लाइक को निकालने के लिए उपयोग कर सकते हैं :

L1 <- logLik(mylogit)
L1
'log Lik.' -229.2587 (df=6)

L2 <- logLik(mylogit2)
L2
'log Lik.' -232.2416 (df=5)

पूर्ण मॉडल (-229.26) की तुलना में बाधा युक्त मॉडल greऔर gpaथोड़ा अधिक लॉग-लाइक (-232.24) है। हमारी संभावना अनुपात परीक्षण आँकड़ा है:

D <- 2*(L1 - L2)
D
[1] 16.44923

अब हम का उपयोग कर सकते हैं CDF गणना करने के लिए -value: पीχ22p

1-pchisq(D, df=1)
[1] 0.01458625

-value यह दर्शाता है कि गुणांक अलग हैं बहुत छोटा है।p

आर में संभावना अनुपात परीक्षण में निर्मित है; हम anovaसंभावना अनुपात परीक्षण की गणना करने के लिए फ़ंक्शन का उपयोग कर सकते हैं :

anova(mylogit2, mylogit, test="LRT")

Analysis of Deviance Table

Model 1: admit ~ I(gre + gpa) + rank
Model 2: admit ~ gre + gpa + rank
  Resid. Df Resid. Dev Df Deviance Pr(>Chi)  
1       395     464.48                       
2       394     458.52  1   5.9658  0.01459 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

फिर, हम मजबूत सबूत है कि के गुणांक है greऔर gpaएक-दूसरे से काफी अलग हैं।


स्कोर टेस्ट (उर्फ राव का स्कोर टेस्ट उर्फ ​​लग्रेंज मल्टीप्लायर टेस्ट)

स्कोर समारोह लॉग-संभावना समारोह के व्युत्पन्न है ( ) जहां मापदंड हैं और डेटा (univariate मामले यहाँ उदाहरण के लिए दिखाया गया है प्रयोजनों):लॉग एल ( θ | एक्स ) θ एक्सU(θ)लॉगएल(θ|एक्स)θएक्स

यू(θ)=लॉगएल(θ|एक्स)θ

यह मूल रूप से लॉग-लाइबिलिटी फ़ंक्शन का ढलान है। इसके अलावा, चलो हो फिशर जानकारी मैट्रिक्स जो के संबंध में लॉग-संभावना समारोह का दूसरा व्युत्पन्न के नकारात्मक उम्मीद है । स्कोर परीक्षण के आँकड़े हैं:I(θ)θ

S(θ0)=U(θ02)I(θ0)χ12

स्कोर टेस्ट की गणना भी की जा सकती है anova(स्कोर टेस्ट के आंकड़ों को "राव" कहा जाता है):

anova(mylogit2, mylogit,  test="Rao")

Analysis of Deviance Table

Model 1: admit ~ I(gre + gpa) + rank
Model 2: admit ~ gre + gpa + rank
  Resid. Df Resid. Dev Df Deviance    Rao Pr(>Chi)  
1       395     464.48                              
2       394     458.52  1   5.9658 5.9144  0.01502 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

निष्कर्ष पहले जैसा ही है।


ध्यान दें

मॉडल के रेखीय होने पर विभिन्न परीक्षण आँकड़ों के बीच एक दिलचस्प संबंध है (जॉनस्टन और डीनार्डो (1997): इकोनोमेट्रिक मैथड्स ): वाल्ड LR स्कोर।


1
मुझे आश्चर्य है कि कम किए गए मॉडल को केवल बाहर क्यों greऔर gpa? क्या वह परीक्षण नहीं कर रहा है , not ? मेरे लिए, सही ढंग से परीक्षण करने के लिए , हम रखने की जरूरत है और और इस बीच थोपना। β1=β2=0β1=β2β1=β2gregpaβgre=βgpa
सुबह 11:07 बजे सिबस जुआ

1
@SibbsGambling अच्छा पकड़! मैंने उसी हिसाब से अपना जवाब अपडेट किया।
COOLSerdash

क्या यह केवल निरंतर भविष्यवाणियों तक सीमित है, या मैं - उदाहरण के लिए - यह भी देख सकता हूं कि क्या एक श्रेणीगत चर के दो स्तर काफी भिन्न हैं? मान लीजिए, क्या रैंक 3 और रैंक 4 के बीच अंतर महत्वपूर्ण है?
डैनियल

1
@ डैनियल हां, इस दृष्टिकोण का उपयोग एक श्रेणीगत चर के स्तरों के लिए भी किया जा सकता है। multcompसंकुल यह विशेष रूप से आसान बना देता है। उदाहरण के लिए, यह कोशिश करें glht.mod <- glht(mylogit, linfct = c("rank3 - rank4= 0")):। लेकिन एक बहुत आसान तरीका यह होगा rank3कि संदर्भ स्तर (उपयोग mydata$rank <- relevel(mydata$rank, ref="3")) किया जाए और फिर सामान्य प्रतिगमन आउटपुट का उपयोग किया जाए। कारक के प्रत्येक स्तर की तुलना संदर्भ स्तर से की जाती है। के लिए p- मान rank4वांछित तुलना होगी।
COOLSerdash

1
@ डैनियल मॉडल आउटपुट (परिवर्तित संदर्भ स्तर) से पी-मान और glhtमेरे लिए (लगभग ) समान हैं। अपने दूसरे प्रश्न के बारे में: केवल एक रेखीय परिकल्पना का परीक्षण करता है जबकि सभी 6 जोड़ीवार तुलनाओं का परीक्षण करता है । इसलिए पी-वैल्यू को कई तुलनाओं के लिए समायोजित किया जाना चाहिए। इसका मतलब यह है कि तुकी के परीक्षण का उपयोग करने वाले पी-मान आम तौर पर एकल तुलना से अधिक हैं। 0.591linfct = c("rank3 - rank4= 0")mcp(rank="Tukey")rank
COOLSerdash

9

आपने अपने चर निर्दिष्ट नहीं किए, यदि वे द्विआधारी या कुछ और हैं। मुझे लगता है कि आप बाइनरी चर के बारे में बात करते हैं। प्रोबिट और लॉगिट मॉडल के बहुराष्ट्रीय संस्करण भी मौजूद हैं।

सामान्य तौर पर, आप परीक्षण दृष्टिकोणों की पूरी त्रिमूर्ति का उपयोग कर सकते हैं, अर्थात

संभावना-अनुपात परीक्षण

एल एम टेस्ट

वाल्ड टेस्ट

प्रत्येक परीक्षण विभिन्न परीक्षण-आँकड़ों का उपयोग करता है। मानक दृष्टिकोण तीन परीक्षणों में से एक को लेना होगा। तीनों का उपयोग संयुक्त परीक्षण करने के लिए किया जा सकता है।

एलआर परीक्षण एक प्रतिबंधित और अप्रतिबंधित मॉडल के लॉग-लाइबिलिटी के अंतर का उपयोग करता है। तो प्रतिबंधित मॉडल वह मॉडल है, जिसमें निर्दिष्ट गुणांक शून्य पर सेट हैं। अप्रतिबंधित "सामान्य" मॉडल है। वाल्ड परीक्षण का लाभ है, कि केवल अप्रतिबंधित मॉडल का अनुमान है। यह मूल रूप से पूछता है, यदि प्रतिबंध अप्रतिबंधित MLE में मूल्यांकन किया गया है तो लगभग संतुष्ट है। लैग्रेंज-मल्टीप्लायर टेस्ट के मामले में केवल प्रतिबंधित मॉडल का अनुमान लगाना होगा। प्रतिबंधित एमएल आकलनकर्ता का उपयोग अप्रतिबंधित मॉडल के स्कोर की गणना करने के लिए किया जाता है। यह स्कोर आमतौर पर शून्य नहीं होगा, इसलिए यह विसंगति एलआर परीक्षण का आधार है। आपके संदर्भ में LM-Test का उपयोग विषमलैंगिकता के परीक्षण के लिए भी किया जा सकता है।


7

मानक दृष्टिकोण वाल्ड परीक्षण, संभावना अनुपात परीक्षण और स्कोर परीक्षण हैं। विषम रूप से वे समान होना चाहिए। मेरे अनुभव में संभावना अनुपात परीक्षण परिमित नमूनों पर सिमुलेशन में थोड़ा बेहतर प्रदर्शन करने के लिए जाता है, लेकिन जिन मामलों में यह मामले बहुत ही चरम (छोटे नमूने) परिदृश्यों में होंगे, जहां मैं इन सभी परीक्षणों को केवल किसी न किसी सन्निकटन के रूप में ले जाऊंगा। हालांकि, आपके मॉडल (सहसंयोजकों की संख्या, इंटरैक्शन प्रभाव की उपस्थिति) और आपके डेटा (बहुविकल्पीता, आपके आश्रित चर के सीमांत वितरण) के आधार पर, "आश्चर्यजनक रूप से असीमपटोटिया" आश्चर्यजनक रूप से छोटी संख्या में टिप्पणियों द्वारा अच्छी तरह से अनुमान लगाया जा सकता है।

नीचे केवल 150 टिप्पणियों के नमूने में वाल्ड, संभावना अनुपात और स्कोर परीक्षण का उपयोग करके स्टैटा में इस तरह के अनुकरण का एक उदाहरण है। इस तरह के एक छोटे से नमूने में भी तीन परीक्षण काफी समान पी-वैल्यू पैदा करते हैं और पी-वैल्यू का सैंपल डिस्ट्रीब्यूशन जब शून्य परिकल्पना सच होता है, तो लगता है कि एक समान वितरण का पालन करना चाहिए (या कम से कम एक समान वितरण से विचलन होना चाहिए) मोंटे कार्लो प्रयोग में बेतरतीबपन के कारण कोई भी बड़ा होने की उम्मीद नहीं करेगा)।

clear all
set more off

// data preparation
sysuse nlsw88, clear

gen byte edcat = cond(grade <  12, 1,     ///
                 cond(grade == 12, 2, 3)) ///
                 if grade < .
label define edcat 1 "less than high school" ///
                   2 "high school"           ///
                   3 "more than high school"
label value edcat edcat
label variable edcat "education in categories"

// create cascading dummies, i.e.
// edcat2 compares high school with less than high school
// edcat3 compares more than high school with high school
gen byte edcat2 = (edcat >= 2) if edcat < .
gen byte edcat3 = (edcat >= 3) if edcat < .

keep union edcat2 edcat3 race south
bsample 150 if !missing(union, edcat2, edcat3, race, south)

// constraining edcat2 = edcat3 is equivalent to adding 
// a linear effect (in the log odds) of edcat
constraint define 1 edcat2 = edcat3

// estimate the constrained model
logit union edcat2 edcat3 i.race i.south, constraint(1)

// predict the probabilities
predict pr
gen byte ysim = .
gen w = .

program define sim, rclass
    // create a dependent variable such that the null hypothesis is true
    replace ysim = runiform() < pr

    // estimate the constrained model
    logit ysim edcat2 edcat3 i.race i.south, constraint(1)
    est store constr

    // score test
    tempname b0
    matrix `b0' = e(b)
    logit ysim edcat2 edcat3 i.race i.south, from(`b0') iter(0)
    matrix chi = e(gradient)*e(V)*e(gradient)'
    return scalar p_score = chi2tail(1,chi[1,1])

    // estimate unconstrained model
    logit ysim edcat2 edcat3 i.race i.south 
    est store full

    // Wald test
    test edcat2 = edcat3
    return scalar p_Wald = r(p)

    // likelihood ratio test
    lrtest full constr
    return scalar p_lr = r(p)
end

simulate p_score=r(p_score) p_Wald=r(p_Wald) p_lr=r(p_lr), reps(2000) : sim
simpplot p*, overall reps(20000) scheme(s2color) ylab(,angle(horizontal))

यहाँ छवि विवरण दर्ज करें


2
स्कोर टेस्ट क्या @ जेन-बोल्ड के लिए एक अलग नाम है जिसे लैग्रेग मल्टीप्लायर (LM) टेस्ट कहा जाता है।
मार्टेन ब्यूस

अच्छा जवाब (+1)। मैं विशेष रूप से सिमुलेशन के प्रयास को पसंद करता हूं। मुझे नहीं पता था कि स्टाटा में स्कोर टेस्ट की गणना कैसे की जाती है। धन्यवाद।
कोल्लेरदश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.