जवाबों:
एक मानक दृष्टिकोण वाल्ड परीक्षण है । यह वही है जो स्टैटा कमांड 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 परीक्षण आँकड़ा है:
या
यहाँ हमारा यहाँ और । इसलिए हमें केवल की मानक त्रुटि की आवश्यकता है । हम डेल्टा विधि के साथ मानक त्रुटि की गणना कर सकते हैं : बीटाजीआरई-बीटाजीपीएकθ0=0बीटाजीआरई-बीटाजीपीएक
तो हम भी और । उपस्कर -सहसंयोजक मैट्रिक्स को लॉजिस्टिक रिग्रेशन चलाने के बाद कमांड के साथ निकाला जा सकता है : β जी पी एकvcov
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 है
wald.z <- (gre-gpa)/se
wald.z
[1] -2.413564
एक प्राप्त करने के लिए -value, बस मानक सामान्य वितरण का उपयोग करें:
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
, यहां या यहां देखें ।
एक लॉजिस्टिक प्रतिगमन के गुणांक अधिकतम संभावना द्वारा पाए जाते हैं। लेकिन क्योंकि संभावना फ़ंक्शन में बहुत सारे उत्पाद शामिल होते हैं, लॉग-लाइबिलिटी को अधिकतम किया जाता है जो उत्पादों को रकम में बदल देता है। जो मॉडल बेहतर ढंग से फिट होता है, उसकी लॉग-अप संभावना अधिक होती है। अधिक चर वाले मॉडल में कम से कम शून्य मॉडल के समान संभावना है। साथ वैकल्पिक मॉडल (अधिक चर वाले मॉडल) की लॉग- को और साथ अशक्त मॉडल की लॉग- , संभावना अनुपात परीक्षण सांख्यिकीय है: L L 0
संभावना अनुपात परीक्षण आँकड़ा एक अनुसरण करता है-स्वतंत्रता की डिग्री के साथ चर की संख्या में अंतर होना। हमारे मामले में, यह 2 है।
संभावना अनुपात परीक्षण करने के लिए, हमें भी दो संभावना की तुलना करने में सक्षम होने के लिए बाधा साथ मॉडल फिट करने की आवश्यकता है । पूर्ण मॉडल में फ़ॉर्म । हमारे बाधा मॉडल का रूप है: । लॉग ( पी मैंलॉग(p i)
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: पी
1-pchisq(D, df=1)
[1] 0.01458625
-value यह दर्शाता है कि गुणांक अलग हैं बहुत छोटा है।
आर में संभावना अनुपात परीक्षण में निर्मित है; हम 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 मामले यहाँ उदाहरण के लिए दिखाया गया है प्रयोजनों):लॉग एल ( θ | एक्स ) θ एक्स
यह मूल रूप से लॉग-लाइबिलिटी फ़ंक्शन का ढलान है। इसके अलावा, चलो हो फिशर जानकारी मैट्रिक्स जो के संबंध में लॉग-संभावना समारोह का दूसरा व्युत्पन्न के नकारात्मक उम्मीद है । स्कोर परीक्षण के आँकड़े हैं:
स्कोर टेस्ट की गणना भी की जा सकती है 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 स्कोर।
multcomp
संकुल यह विशेष रूप से आसान बना देता है। उदाहरण के लिए, यह कोशिश करें glht.mod <- glht(mylogit, linfct = c("rank3 - rank4= 0"))
:। लेकिन एक बहुत आसान तरीका यह होगा rank3
कि संदर्भ स्तर (उपयोग mydata$rank <- relevel(mydata$rank, ref="3")
) किया जाए और फिर सामान्य प्रतिगमन आउटपुट का उपयोग किया जाए। कारक के प्रत्येक स्तर की तुलना संदर्भ स्तर से की जाती है। के लिए p- मान rank4
वांछित तुलना होगी।
glht
मेरे लिए (लगभग ) समान हैं। अपने दूसरे प्रश्न के बारे में: केवल एक रेखीय परिकल्पना का परीक्षण करता है जबकि सभी 6 जोड़ीवार तुलनाओं का परीक्षण करता है । इसलिए पी-वैल्यू को कई तुलनाओं के लिए समायोजित किया जाना चाहिए। इसका मतलब यह है कि तुकी के परीक्षण का उपयोग करने वाले पी-मान आम तौर पर एकल तुलना से अधिक हैं। linfct = c("rank3 - rank4= 0")
mcp(rank="Tukey")
rank
आपने अपने चर निर्दिष्ट नहीं किए, यदि वे द्विआधारी या कुछ और हैं। मुझे लगता है कि आप बाइनरी चर के बारे में बात करते हैं। प्रोबिट और लॉगिट मॉडल के बहुराष्ट्रीय संस्करण भी मौजूद हैं।
सामान्य तौर पर, आप परीक्षण दृष्टिकोणों की पूरी त्रिमूर्ति का उपयोग कर सकते हैं, अर्थात
संभावना-अनुपात परीक्षण
एल एम टेस्ट
वाल्ड टेस्ट
प्रत्येक परीक्षण विभिन्न परीक्षण-आँकड़ों का उपयोग करता है। मानक दृष्टिकोण तीन परीक्षणों में से एक को लेना होगा। तीनों का उपयोग संयुक्त परीक्षण करने के लिए किया जा सकता है।
एलआर परीक्षण एक प्रतिबंधित और अप्रतिबंधित मॉडल के लॉग-लाइबिलिटी के अंतर का उपयोग करता है। तो प्रतिबंधित मॉडल वह मॉडल है, जिसमें निर्दिष्ट गुणांक शून्य पर सेट हैं। अप्रतिबंधित "सामान्य" मॉडल है। वाल्ड परीक्षण का लाभ है, कि केवल अप्रतिबंधित मॉडल का अनुमान है। यह मूल रूप से पूछता है, यदि प्रतिबंध अप्रतिबंधित MLE में मूल्यांकन किया गया है तो लगभग संतुष्ट है। लैग्रेंज-मल्टीप्लायर टेस्ट के मामले में केवल प्रतिबंधित मॉडल का अनुमान लगाना होगा। प्रतिबंधित एमएल आकलनकर्ता का उपयोग अप्रतिबंधित मॉडल के स्कोर की गणना करने के लिए किया जाता है। यह स्कोर आमतौर पर शून्य नहीं होगा, इसलिए यह विसंगति एलआर परीक्षण का आधार है। आपके संदर्भ में LM-Test का उपयोग विषमलैंगिकता के परीक्षण के लिए भी किया जा सकता है।
मानक दृष्टिकोण वाल्ड परीक्षण, संभावना अनुपात परीक्षण और स्कोर परीक्षण हैं। विषम रूप से वे समान होना चाहिए। मेरे अनुभव में संभावना अनुपात परीक्षण परिमित नमूनों पर सिमुलेशन में थोड़ा बेहतर प्रदर्शन करने के लिए जाता है, लेकिन जिन मामलों में यह मामले बहुत ही चरम (छोटे नमूने) परिदृश्यों में होंगे, जहां मैं इन सभी परीक्षणों को केवल किसी न किसी सन्निकटन के रूप में ले जाऊंगा। हालांकि, आपके मॉडल (सहसंयोजकों की संख्या, इंटरैक्शन प्रभाव की उपस्थिति) और आपके डेटा (बहुविकल्पीता, आपके आश्रित चर के सीमांत वितरण) के आधार पर, "आश्चर्यजनक रूप से असीमपटोटिया" आश्चर्यजनक रूप से छोटी संख्या में टिप्पणियों द्वारा अच्छी तरह से अनुमान लगाया जा सकता है।
नीचे केवल 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))
gre
औरgpa
? क्या वह परीक्षण नहीं कर रहा है , not ? मेरे लिए, सही ढंग से परीक्षण करने के लिए , हम रखने की जरूरत है और और इस बीच थोपना।gre
gpa