मैं पियर्सन की गणना कैसे कर सकता हूं


10

संभावना अनुपात (उर्फ विचलन) G2सांख्यिकीय और अभाव-फिट (या अच्छाई-की-फिट) परीक्षण glm(..., family = binomial)आर में एक लॉजिस्टिक रिग्रेशन मॉडल ( फ़ंक्शन का उपयोग करने के लिए फिट) के लिए प्राप्त करने के लिए काफी सरल है । हालांकि, कुछ सेल काउंट को कम करना काफी आसान हो सकता है यह परीक्षण अविश्वसनीय है। एक तरह से फिट की कमी के लिए संभावना अनुपात परीक्षण की विश्वसनीयता सत्यापित करने के लिए अपने परीक्षण आंकड़ा और तुलना करने के लिए है पी पियर्सन की ची वर्ग के उन लोगों के लिए -value (याχ2) कमी-फिट परीक्षण।

फिट की कमी के लिए न तो glmऑब्जेक्ट और न ही इसकी summary()विधि पियरसन के ची स्क्वायर टेस्ट के लिए टेस्ट स्टेटिस्टिक रिपोर्ट करती है। मेरी खोज में, केवल एक चीज जो मैं आया था वह chisq.test()फ़ंक्शन ( statsपैकेज में) है: इसका दस्तावेजीकरण कहता है " chisq.testची-स्क्वैर्ड आकस्मिक टेबल परीक्षण और अच्छाई-से-फिट परीक्षण करता है।" हालाँकि, इस तरह के परीक्षण करने के लिए प्रलेखन विरल है:

यदि xएक पंक्ति या स्तंभ के साथ एक मैट्रिक्स है, या यदि xएक वेक्टर है और yनहीं दिया जाता है, तो एक अच्छाई-की-फिट परीक्षण किया जाता है ( xइसे एक आयामी आकस्मिक तालिका के रूप में माना जाता है)। xगैर-नकारात्मक पूर्णांक की प्रविष्टियाँ होनी चाहिए। इस मामले में, परिकल्पना का परीक्षण किया जाता है कि क्या जनसंख्या संभावनाएं उन लोगों के बराबर हैं p, या pनहीं दिए जाने पर सभी समान हैं ।

मुझे लगता है कि आप के तर्क के लिए वस्तु के yघटक का उपयोग कर सकते हैं । हालाँकि, आप तर्क के लिए ऑब्जेक्ट के घटक का उपयोग नहीं कर सकते , क्योंकि आपको एक त्रुटि मिलेगी: " "glmxchisq.testfitted.valuesglmpchisq.testprobabilities must sum to 1.

मैं (R में) कम से कम पियर्सन की गणना कैसे कर सकता हूं χ2 मैन्युअल रूप से चरणों के माध्यम से चलने के बिना फिट के अभाव के लिए परीक्षण आँकड़ा?

जवाबों:


13

चुकंदर पियर्सन अवशिष्टों का योग पियर्सन के बराबर है χ2फिट की कमी के लिए परीक्षण आँकड़ा। इसलिए यदि आपका फिटेड मॉडल (यानी, glmऑब्जेक्ट) कहा जाता है logistic.fit, तो निम्न कोड परीक्षण आँकड़ा लौटाएगा:

sum(residuals(logistic.fit, type = "pearson")^2)

residuals.glmअधिक जानकारी के लिए दस्तावेज़ीकरण देखें , जिसमें अन्य अवशेष उपलब्ध हैं। उदाहरण के लिए, कोड

sum(residuals(logistic.fit, type = "deviance")^2)

आपको मिल जाएगा G2परीक्षण सांख्यिकीय, बस के रूप में deviance(logistic.fit)प्रदान करता है।


मैं मैक्रों से सहमत हूं। यदि आप चाहते थे कि समूह आपको उत्तर दे तो आपको यह सुनने के लिए इंतजार करना चाहिए कि दूसरों को पहले क्या कहना है। अब आपको जो भी मिल सकता है वह आपके उत्तर को देखकर पक्षपाती है। इसके अलावा, यदि आप इसका उत्तर जानते हैं कि आप ऐसा करके क्या साबित करना चाहते हैं?
माइकल आर। चेर्निक

@ मैक्रो - फायरफाइटर ने इस साइट पर (इस एक सहित) चार प्रश्न पोस्ट किए हैं और उनमें से तीन (इस एक सहित) का जवाब दिया है, वह खुद एक बार अपने जवाबों को स्वीकार करता है। इस तरह से कुछ और मैं एक पैटर्न देखना शुरू कर सकता हूं!
जुम्मन

@ जुम्मन, मैं आपके खुद के प्रश्न का उत्तर देने की कल्पना कर सकता हूं यदि आपने किसी अन्य व्यक्ति के उत्तर देने से पहले उसे स्वयं ही समझ लिया हो, लेकिन फायरफाइटर ने उत्तर पोस्ट करने के 5 मिनट से भी कम समय में उत्तर पोस्ट कर दिया, ऐसा लगता है कि उसे मदद की जरूरत नहीं थी , जो मुझे क्या कारण बनाया है ... मैं वास्तव में प्रेरणा को समझ नहीं है ...
मैक्रो

3
@ मैक्रो, कृपया इस आधिकारिक लिंक को देखें: blog.stackoverflow.com/2011/07/… (यह नीचे दिए गए चेकबॉक्स लेबल में एक प्रश्न पृष्ठ पर जुड़ा हुआ है: "अपने खुद के प्रश्न का उत्तर दें - अपना ज्ञान, क्यू एंड ए-शैली साझा करें ")। जब मैं होमवर्क कर रहा था तब मेरा यह सवाल था (मिनिटैब के बजाय आर का उपयोग करने के लिए चुना गया था, हालांकि मिनिटैब को कक्षा में प्रदर्शित किया गया था), लेकिन मेरे पास सवाल टाइप करने और प्रतिक्रिया की प्रतीक्षा करने के लिए पर्याप्त समय नहीं था। मैंने इस वर्कअराउंड का पता लगाया, और इसे समुदाय के साथ साझा करने का निर्णय लिया।
जुगनू

2
@ मैक्रो, आपका बहुत बहुत स्वागत है! काश, मैं और प्रश्न पूछ सकता, जहाँ मैं उत्तर नहीं देता, और उन अधिक प्रश्नों के उत्तर देता जो मैंने नहीं पूछा। लेकिन jbowman के एक पैटर्न के बारे में सही: समुदाय के लिए मेरी योगदान कर रहे हैं अपने आप से बात कर की ओर प्रवृत्त। :) (कम से कम मैं समुदाय में किसी तरह योगदान दे रहा हूँ, ठीक है?)
जुगनू

10

पियर्सन स्टैटिस्टिक्स में एक पतित वितरण होता है इसलिए सामान्य रूप से लॉजिस्टिक मॉडल अच्छाई-फिट के लिए अनुशंसित नहीं किया जाता है। मैं संरचित परीक्षणों (लीनियरिटी, एडिटिविटी) को पसंद करता हूं। अगर आप एक ऑम्निबस टेस्ट चाहते हैं, तो आर rmsपैकेज residuals.lrmफंक्शन में लागू किए गए फ्रीडम ले सेसी - वैन होउवलिंगन - कोपस - होस्मर वर्गों का परीक्षण किए जाने का योग देखें ।


2
-1: अंतर्दृष्टि के लिए धन्यवाद! हालाँकि, यह मेरे प्रश्न का उत्तर नहीं देता है। क्योंकि यह मेरे कथन की पृष्ठभूमि में मेरे द्वारा दिए गए एक बयान पर प्रासंगिक टिप्पणी / चर्चा है, आपका उत्तर संभवतः एक उत्तर के बजाय एक टिप्पणी में है।
फायरफाइटर

2
मुझे लगता है कि जिन चार लोगों ने मेरे जवाब पर वोट दिया, वे आपसे असहमत हैं। और आपने पतित वितरण से निपटा नहीं है।
फ्रैंक हरेल

@FrankHarrell: क्या यह GOF होसमेर-लेमेशो (HL) GOF परीक्षण से भिन्न है? नाम के कारण ऐसा मानते हुए, और दोनों की तुलना भी की है: ResourceSelectionपैकेज में पाए गए एचएल जीओएफ परीक्षण का resid(lrm_object, 'gof')संचालन किया , और इसका परिणाम मेरे लॉजिस्टिक प्रतिगमन मॉडल के रूप में फिटिंग के बाद मुझे जो मिलता है, उससे अलग है lrm_object <- lrm(...)। यदि वे वास्तव में अलग हैं, तो क्या आप इस बात पर टिप्पणी कर सकते हैं कि एचएल परीक्षण आपके द्वारा यहां उल्लेख किए गए के खिलाफ कैसे ढेर हो गया? धन्यवाद!
मेग

1
दोनों बहुत अलग हैं। एचएल स्टेटिस्टिक (अब अप्रचलित) ने डीएफ तय कर दिया है और यह आमतौर पर जोखिम की डिकाइल पर आधारित है। एचएलχ2 सांख्यिकीय इस प्रकार के रूप में पतित नहीं है N। दूसरी ओर, किसी से सावधान रहेंχ2 सांख्यिकीय जहां df के साथ विस्तार होता रहता है N
फ्रैंक हरेल 12

मैं एक सिमुलेशन देखना पसंद करूंगा जो इस अध: पतन को दर्शाता है।
wdkrnls

0

धन्यवाद, मुझे यह समझ में नहीं आया कि यह उतना ही सरल था: योग (अवशिष्ट (f1, प्रकार = "पियर्सन") ^ 2) हालांकि कृपया ध्यान दें कि पियर्सन अवशिष्ट भिन्नता के आधार पर बदलता है कि क्या यह कोवरिएट समूह या व्यक्ति द्वारा गणना की जाती है। एक सरल उदाहरण:

m1 एक मैट्रिक्स है (यह एक बड़ी मैट्रिक्स का प्रमुख है):

एम 1 [1: 4,1: 8]

    x1 x2 x3 obs    pi   lev  yhat y
obs  1  1 44   5 0.359 0.131 1.795 2
obs  0  1 43  27 0.176 0.053 4.752 4
obs  0  1 53  15 0.219 0.062 3.285 1
obs  0  1 33  22 0.140 0.069 3.080 3

जहां X1-3 भविष्यवक्ता हैं, अवलोकन नहीं है। प्रत्येक समूह में अवलोकन, पीआई समूह सदस्यता (प्रतिगमन समीकरण से भविष्यवाणी) की संभावना है, लेव उत्तोलन है, टोपी मैट्रिक्स के विकर्ण, भविष्यवाणी की गई नहीं। (y = 1) समूह में और वास्तविक y नहीं।

यह आपको ग्रुप द्वारा Pearson देगा। ध्यान दें कि यह कैसे अलग है अगर y == 0: ' 'fun1 <- function(j){        if (m1[j,"y"] ==0){ # y=0 for this covariate pattern     Pr1 <- sqrt( m1[i,"pi"] / (1-m1[i,"pi"]))     Pr2 <- -sqrt (m1[i,"obs"]) res <- round( Pr1 * Pr2, 3) return(res) } else {  Pr1 <- m1[j,"y"] - m1[j,"yhat"] Pr2 <- sqrt(   m1[j,"yhat"] * ( 1-(m1[j,"pi"]) )   ) res <- round( Pr1/Pr2, 3) return(res) }    }

इस प्रकार

nr <-nrow(m1)
nr1 <- seq(1,nr)
Pr <- sapply(1:nrow[m1], FUN=fun1)
PrSj <- sum(Pr^2)

यदि y = 0 कोवरिएट पैटर्न के साथ बड़ी संख्या में विषय हैं, तो 'इंडिविजुअल' विधि के बजाय 'समूह द्वारा' का उपयोग करके गणना किए जाने पर पियर्सन अवशिष्ट अधिक बड़ा हो जाएगा।

उदाहरण के लिए देखें होसमर एंड लेमेशो "एप्लाइड लॉजिस्टिक रिग्रेशन", विली, 200।


0

आप यह भी उपयोग कर सकते हैं c_hat(mod)कि जैसा आउटपुट देगा sum(residuals(mod, type = "pearson")^2)


1
किस पैकेज में c_hatमिला है?
फायरफाइटर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.