रोगियों की बढ़ती संख्या के लिए द्विपद मॉडल में ऑफसेट का उपयोग करना


18

मुझसे जुड़े दो सवाल। मेरे पास एक डेटा फ्रेम है जिसमें एक कॉलम में मरीजों की संख्या होती है (रेंज 10 - 17 मरीज) और 0s और 1s दिखाते हैं कि क्या कोई घटना हुई थी। मैं रोगियों की संख्या पर घटना की संभावना को पुनः प्राप्त करने के लिए एक द्विपद मॉडल का उपयोग कर रहा हूं। हालांकि, मैं इस तथ्य के लिए समायोजित करना चाहूंगा कि जब अधिक रोगी होते हैं, तो अनिवार्य रूप से अधिक घटनाएं होंगी क्योंकि उस दिन वार्ड में रोगी के समय की कुल मात्रा अधिक होती है।

तो मैं इस तरह एक ऑफसेट द्विपद मॉडल का उपयोग कर रहा हूँ (आर कोड):

glm(Incident~Numbers, offset=Numbers, family=binomial, data=threatdata)

मेरे प्रश्न हैं:

  1. क्या ठीक वैसा ही वैरिएबल है जिसकी भविष्यवाणी की जा रही है और ऑफसेट में है? मैं घटना की संभावना में टॉनिक वृद्धि को आंशिक रूप से देखना चाहता हूं और देखें कि क्या कुछ बचा है, अनिवार्य रूप से। यह मेरे लिए समझ में आता है, लेकिन मैं गलत होने के मामले में थोड़ा सतर्क हूं।

  2. क्या ऑफसेट सही ढंग से निर्दिष्ट है? मुझे पता है कि पोइसन मॉडल में यह पढ़ा होगा

    offset=log(Numbers)
    

मुझे नहीं पता कि यहां कोई समकक्ष है और मुझे Google के साथ कोई द्विपद ऑफसेट नहीं मिल रहा है (प्रमुख समस्या यह है कि मुझे नकारात्मक द्विपद प्राप्त होता रहता है, जो निश्चित रूप से अच्छा नहीं है)।


2
क्या आप जिसे समायोजित करना चाह रहे हैं, ठीक वही है जो आप मापना चाहते हैं - यानी रोगियों की संख्या के साथ "घटना" की संभावना कैसे बढ़ जाती है?
B_Miner

1
मुझे B_Miner की बात को प्रतिध्वनित करने की आवश्यकता है। मुझे लगता है कि आप इस स्थिति में ऑफसेट का उपयोग कब / क्यों कर रहे हैं, आप भ्रमित हैं। आपका मॉडल, संस ऑफ़सेट, आपको रोगियों के # के एक समारोह के रूप में घटना की संभावना के लिए फिट मान देगा। यदि आप एक अलग कार्यात्मक रूप में रुचि रखते हैं, तो वैज्ञानिक रूप से दिलचस्प के आधार पर परिवर्तनों (जैसे लॉग या एक्सप्रेशन ऑफ #) पर विचार करें।
एडमों

क्या आप घटनाओं के बारे में कुछ स्पष्ट कर सकते हैं? क्या कोई घटना मरीज से संबंधित है, या वार्ड के बारे में पूरी बात है? यदि रोगियों से संबंधित है, तो क्या वहाँ होना संभव है> 1 घटना यदि कोई रोगी नहीं हैं, तो क्या कोई घटना होना असंभव है?
atiretoo

1
जाहिर तौर पर मेरे जवाब में 'पर्याप्त विवरण नहीं है'। मैंने आपके दोनों प्रश्नों के लिए एक सैद्धांतिक विकास, रन करने योग्य कोड और उत्तर प्रदान किए हैं, तो क्या आप शायद स्पष्ट कर सकते हैं कि और क्या चाहिए?
कंजुगेटपायर

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

जवाबों:


17

यदि आप वार्ड में मरीजों के एन दिनों में दी गई किसी घटना की संभावना में रुचि रखते हैं तो आप एक मॉडल चाहते हैं:

mod1 <- glm(incident ~ 1, offset=patients.on.ward, family=binomial)

ऑफसेट परीक्षण का प्रतिनिधित्व करता है, incidentया तो 0 या 1 है, और एक घटना की संभावना निरंतर है (घटनाओं को उत्पन्न करने की प्रवृत्ति में कोई विषमता नहीं है) और मरीज घटनाओं (कोई छूत) के लिए बातचीत नहीं करते हैं। वैकल्पिक रूप से, यदि किसी घटना का मौका छोटा है, जो आपके लिए है (या आपने उस घटना का उल्लेख किया है जो हमारे लिए उल्लेख किए बिना गिना जाता है) तो आप पोइसन सूत्रीकरण पसंद कर सकते हैं

log.patients.on.ward <- log(patients.on.ward)
mod2 <- glm(incident ~ 1, offset=log.patients.on.ward, family=poisson)

जहां एक ही धारणा लागू होती है। ऑफसेट लॉग किया जाता है क्योंकि वार्ड पर रोगियों की संख्या का आनुपातिक / गुणक प्रभाव होता है।

दूसरे मॉडल पर विस्तार करते हुए, शायद आपको लगता है कि रोगी संख्या बढ़ने के कारण बस से अधिक घटनाओं की अपेक्षा की जाएगी। यही है, शायद मरीज बातचीत करते हैं या विषमलैंगिक हैं। इसलिए आप प्रयास करें

mod3 <- glm(incident ~ 1 + log.patients.on.ward, family=poisson)

यदि गुणांक log.patients.on.ward1 से काफी भिन्न होता है, जहां यह तय किया गया था mod2, तो वास्तव में आपकी कोई विषमता और कोई छूत की धारणा के साथ कुछ गलत हो सकता है। और जब आप निश्चित रूप से इन दोनों को अलग नहीं कर सकते हैं (और न ही किसी अन्य लापता चर से), तो अब आपके पास यह अनुमान है कि वार्ड पर रोगियों की संख्या बढ़ने से आपके ऊपर और ऊपर होने वाली घटनाओं की दर / संभावना बढ़ जाती है। मौका से उम्मीद है। मापदंडों के स्थान पर यह 1-coef(mod3)[2]अंतराल से व्युत्पन्न है confint

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

प्रश्न

  1. क्या आपके ऑफसेट में आश्रित चर होना ठीक है? यह मेरे लिए एक बहुत बुरा विचार है, लेकिन मुझे नहीं लगता कि आपको करना है।

  2. पोइसन प्रतिगमन मॉडल में ऑफसेट exposureवास्तव में है log(exposure)। शायद भ्रमित करने के लिए offsetआर के द्विपद रिग्रेशन मॉडल का उपयोग मूल रूप से परीक्षणों की संख्या को इंगित करने का तरीका है। इसे हमेशा एक आश्रित चर के रूप में परिभाषित किया जा सकता है cbind(incidents, patients.on.ward-incidents)और कोई ऑफसेट नहीं है। इसे इस तरह से सोचें: पॉइसन मॉडल में यह लॉग लिंक फ़ंक्शन के पीछे दाहिने हाथ की तरफ से प्रवेश करता है, और बिनोमियल मॉडल में यह लॉग लिंक फ़ंक्शन के सामने बाएं हाथ में प्रवेश करता है।


18

पोइसन के रजिस्टरों में कार्यालय

आइए यह देखते हुए शुरू करें कि हम एक पॉइसन प्रतिगमन में ऑफसेट का उपयोग क्यों करते हैं। अक्सर हम इसे एक्सपोज़र के लिए नियंत्रित करना चाहते हैं। चलो प्रति जोखिम के इकाई आधारभूत दर हो सकता है और टी में एक ही इकाइयों में जोखिम समय हो। घटनाओं की अपेक्षित संख्या λ × t होगीλtλ×t

एक जीएलएम मॉडल में हम एक लिंक फंक्शन का उपयोग करके अपेक्षित मान मॉडलिंग कर रहे हैं , वह हैg

g(λti)=log(λti)=β0+β1x1,i+

जहां व्यक्ति के लिए जोखिम अवधि है मैं और x मैं व्यक्ति के लिए covariate मूल्य है मैं । दीर्घवृत्त केवल अतिरिक्त प्रतिगमन शर्तों को इंगित करता है जिन्हें हम जोड़ना चाहते हैं।tiixii

हम उपरोक्त अभिव्यक्ति को सरल बना सकते हैं

log(λ)=log(ti)+β0+β1x1,i+

बस एक "ऑफसेट" प्वासों प्रतिगमन को जोड़ा गया के रूप में यह मॉडल मापदंडों जो हम अनुमान लगाते समय हो जाएगा के किसी भी का एक उत्पाद नहीं है।log(ti)

द्विपद प्रतिगमन

एक द्विपद प्रतिगमन में, जो आमतौर पर एक लॉगिट लिंक का उपयोग करता है, वह है:

g(pi)=logit(pi)=log(pi1pi)=β0+β1x1,i+

आप देख सकते हैं कि लिए एक मॉडल प्राप्त करना मुश्किल होगा I जो एक निरंतर ऑफसेट का उत्पादन करेगा।pi

उदाहरण के लिए, यदि संभावना है कि एक है किसी भी दिन पर रोगी मैं एक घटना है। यह उस दिन उपलब्ध व्यक्तिगत रोगियों का एक कार्य होगा। जैसा कि jboman ने कहा कि कम से कम एक घटना के लिए संभावना को सीधे निर्धारित करने के बजाय, बिना किसी घटना के तारीफ प्राप्त करना आसान है। pii

चलो एक मरीज की संभावना हो j दिन पर एक घटना होने मैं । दिन पर एक घटना होने नहीं रोगियों की संभावना मैं हो जाएगा Π एन मैं j = 1 ( 1 - पी * मैं , जे ) , जहां एन मैं दिन पर रोगियों की संख्या है मैं । तारीफ से, कम से कम एक मरीज की घटना की संभावना होगी, पी i = 1 - एन आई जेpi,jjiij=1Ni(1pi,j)Nii

pi=1j=1Ni(1pi,j).

यदि हम किसी भी दिन किसी भी घटना के होने की संभावना को मानने के लिए तैयार हैं, तो हम इसे जहाँ q = 1 - p और p है, को सरल बना सकते हैं । साझा करने की संभावना।

pi=1(q)Ni,
q=1pp

pig(pi)log((q)N1)

परिणामस्वरूप हम इस मामले में एक ऑफसेट का उपयोग नहीं कर सकते हैं।

p


2
+1, साइट पर आपका स्वागत है, @Rider_X। मुझे उम्मीद है कि हम भविष्य में ऐसे और अधिक जवाबों की उम्मीद कर सकते हैं।
गुंग - को पुनः स्थापित मोनिका

1
@ शुंग - धन्यवाद! मैंने बहुत कुछ नहीं सुना था जो मुझे लगा कि एक उपयोगी उत्तर था इसलिए मैं बहुत पीछे नहीं गया। मुझे वह बदलना पड़ेगा। सादर।
राइडर_एक्स

2
+1 मैं वास्तव में उन उत्तरों की सराहना करता हूं जो सिद्धांत और तर्क की व्याख्या करते हैं , बजाय (या इसके अलावा) दिखाते हैं कि किस कोड और कमांड का उपयोग करना है।
whuber

9

यह उत्तर दो भागों में आता है, पहला प्रश्न का सीधा उत्तर और दूसरा उस मॉडल पर एक टिप्पणी जो आप प्रस्तावित कर रहे हैं।

पहला भाग Numbersसमीकरण के आरएचएस पर होने के साथ एक ऑफसेट के रूप में उपयोग से संबंधित है। ऐसा करने का प्रभाव बस अनुमानित गुणांक से 1 को घटाना होगा Numbers, जिससे ऑफसेट के प्रभाव को उलट दिया जाएगा, और अन्यथा परिणाम नहीं बदलेगा। निम्न उदाहरण, अप्रासंगिक उत्पादन की कुछ पंक्तियों के साथ, इसे प्रदर्शित करता है:

library(MASS)
Numbers <- rpois(100,12)
p <- 1 / (1 + exp(0.25*Numbers))
y <- rbinom(100, Numbers, p)
Incident <- pmin(y, 1) 

> summary(glm(Incident~Numbers, family="binomial"))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.3121  -1.0246  -0.8731   1.2512   1.7465  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept)  0.99299    0.80624   1.232   0.2181  
Numbers     -0.11364    0.06585  -1.726   0.0844 . <= COEFFICIENT WITH NO OFFSET TERM
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 135.37  on 99  degrees of freedom
Residual deviance: 132.24  on 98  degrees of freedom
AIC: 136.24

> summary(glm(Incident~Numbers, offset=Numbers, family="binomial"))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.3121  -1.0246  -0.8731   1.2512   1.7465  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  0.99299    0.80624   1.232    0.218    
Numbers     -1.11364    0.06585 -16.911   <2e-16 *** <= COEFFICIENT WITH OFFSET TERM
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 342.48  on 99  degrees of freedom
Residual deviance: 132.24  on 98  degrees of freedom
AIC: 136.24

ध्यान दें कि संख्याओं और अशक्त विचलन (और टी-स्टेटिस्टिक के गुणांक को छोड़कर) सब कुछ एक जैसा कैसे है, क्योंकि यह -1 के बजाय 0 के विरुद्ध परीक्षण कर रहा है।

t1(1pt)NtNttpttlog(1(1pt)Nt)/Ntlog(1pt)tNtNt

किसी को यह भी संदेह हो सकता है कि प्रति मरीज की संभावना रोगी से रोगी में भिन्न होती है, जो एक अधिक जटिल, श्रेणीबद्ध मॉडल को जन्म देगा, लेकिन मैं यहां नहीं जाऊंगा।

किसी भी मामले में, यह और आपके द्वारा देखे जाने वाले रोगियों की संख्या की सीमित सीमा को ध्यान में रखते हुए, एक मॉडल का उपयोग करें जो लॉग स्केल पर रैखिक है, रिश्ते के बारे में गैरपारंपरिक होना बेहतर हो सकता है और रोगियों की संख्या को तीन या समूह में बदल सकता है। चार समूहों, उदाहरण के लिए, 10-11, 12-13, 14-15 और 16-17, उन समूहों के लिए डमी चर का निर्माण करते हैं, फिर दाहिने हाथ पर डमी चर के साथ लॉजिस्टिक प्रतिगमन चलाते हैं। यह नॉनलाइन संबंधों को बेहतर ढंग से सक्षम करने में सक्षम होगा जैसे कि "सिस्टम लगभग 16 रोगियों को अधिभारित करता है और घटनाएं काफी तेजी से शुरू होती हैं।" यदि आपके पास रोगियों की अधिक व्यापक श्रेणी है, तो मैं 'mgcv' पैकेज से एक सामान्यीकृत योज्य मॉडल, उदाहरण के लिए, 'gam' का सुझाव दूंगा।


0

एक लॉग-लिंक को निर्दिष्ट करने और एक पॉइसन मॉडल के लिए ऑफसेट रखने के लिए सबसे सरल लगता है।


2
मुझे यकीन है कि आप सही हैं, लेकिन मेरे लाभ के लिए, यह एक पॉइसन कैसे है? ऐसा लगता है कि ओपी के पास बाइनरी परिणाम के साथ डेटा सेट है। क्या यह glm (हादसा ~ संख्या, ऑफ़सेट = लॉग (संख्या), परिवार = शिश्न, डेटा = धमकी) होगा ??
B_Miner
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.