पॉइसन रिग्रेशन का उपयोग करके बाइनरी डेटा में समायोजित जोखिम अनुपात का अनुमान लगाना


9

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

मुझे इस बात पर साहित्य नहीं मिला है कि लगातार सहसंयोजकों के लिए समायोजन कैसे प्रभावित करता है। निम्नलिखित सरल सिमुलेशन दर्शाता है कि यह मुद्दा इतना सीधा नहीं है:

arr <- function(BLR,RR,p,n,nr,ce)
{
   B = rep(0,nr)
   for(i in 1:nr){
   b <- runif(n)<p 
   x <- rnorm(n)
   pr <- exp( log(BLR) + log(RR)*b + ce*x)
   y <- runif(n)<pr
   model <- glm(y ~ b + x, family=poisson)
   B[i] <- coef(model)[2]
   }
   return( mean( exp(B), na.rm=TRUE )  )
}

set.seed(1234)
arr(.3, 2, .5, 200, 100, 0)
[1] 1.992103
arr(.3, 2, .5, 200, 100, .1)
[1] 1.980366
arr(.3, 2, .5, 200, 100, 1)
[1] 1.566326 

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

मैंने देखा है, लेकिन समायोजित जोखिम अनुपात आकलन में निरंतर कोवरियों के लिए समायोजन पर कोई साहित्य नहीं पाया है। मुझे इस साइट पर निम्नलिखित पोस्ट की जानकारी है:

लेकिन वे मेरे सवाल का जवाब नहीं देते। क्या इस पर कोई कागजात हैं? क्या कोई ज्ञात सावधानी है जिसका प्रयोग किया जाना चाहिए?


1
आपकी रुचि हो सकती है: aje.oxfordjournals.org/content/162/3/199.full
स्टेट्सटूडेंट

इसके अलावा यह Q & A आँकड़े .stackexchange.com/questions/18595/… मदद कर सकता है।
mdewey

जवाबों:


1

मुझे नहीं पता कि क्या आपको अभी भी इस प्रश्न का उत्तर चाहिए, लेकिन मुझे एक ऐसी ही समस्या है जिसमें मैं पॉइसन रिग्रेशन का उपयोग करना चाहूंगा। आपके कोड को चलाने में, मैंने पाया कि यदि मैंने मॉडल सेट किया है

model <- glm(y ~ b + x, family=binomial(logit)

बल्कि आपके पॉइसन रिग्रेशन मॉडल के रूप में, एक ही परिणाम होता है: अनुमानित या ~ 1.5 के रूप में CE दृष्टिकोण 1 है। इसलिए, मुझे यकीन नहीं है कि आपका उदाहरण बाइनरी परिणामों के लिए पॉइसन रिग्रेशन के उपयोग के साथ संभावित समस्या पर जानकारी प्रदान करता है।


1
लॉजिट मॉडल को फिट करने में समस्या, जबकि यह 1 से अधिक अनुमानित जोखिमों को जन्म नहीं देता है, यह है कि ऑड्स अनुपात जोखिम अनुपात का एक पक्षपाती अनुमानक है और यह पूर्वाग्रह नाटकीय रूप से बढ़ता है क्योंकि परिणाम अधिक प्रचलित हो जाता है। आप binomial(link=log)वास्तव में एक सापेक्ष जोखिम मॉडल को निर्दिष्ट करने के लिए निर्दिष्ट कर सकते हैं , लेकिन यह शायद ही कभी अधिक परिणाम के कारण अभिसरण करता है।
एडमो

1

मुझे लगता है कि उचित संभाव्यता फ़ंक्शन के साथ प्रत्यक्ष अधिकतम संभावना का उपयोग करने से रिश्तेदार जोखिम के आकलन में काफी सुधार होता है। आप सीधे प्रक्रिया के लिए अनुमानित दर के रूप में छंटनी किए गए जोखिम फ़ंक्शन को निर्दिष्ट कर सकते हैं।

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

आमतौर पर हम अनुमान के लिए CI बनाने के लिए Hessian का उपयोग करते हैं। मैंने ह्यूबर व्हाइट त्रुटि में "बी" मैट्रिक्स (मांस) के रूप में उपयोग करने और "ए" मैट्रिक्स (ब्रेड) प्राप्त करने के लिए फिट किए गए जोखिमों का उपयोग करने की संभावना का पता नहीं लगाया है ... लेकिन मुझे संदेह है कि यह काम कर सकता है! अधिक व्यावहारिक रूप से आप मॉडल त्रुटियों को प्राप्त करने के लिए बूटस्ट्रैप का उपयोग कर सकते हैं जो एक गलत अर्थ-विचरण संबंध के लिए मजबूत हैं।

## the negative log likelihood for truncated risk function
negLogLik <- function(best, X, y) { 
  pest <- pmin(1, exp(X %*% best))
  -sum(dpois(x = y, lambda = pest, log=TRUE))
}

set.seed(100)

sim <- replicate(100, {
  n <- 200
  X <- cbind(1, 'b'=rbinom(n, 1, 0.5), 'x'=rnorm(n))
  btrue <- c(log(0.3), log(2), 1)
  ptrue <- pmin(1, exp(X %*% matrix(btrue)))
  y <- rbinom(n, 1, ptrue) ## or just take y=ptrue for immediate results
  nlm(f = logLik, p = c(log(mean(y)),0,0), X=X, y=y)$estimate
})

rowMeans(exp(sim))

देता है:

> rowMeans(exp(sim))
[1] 0.3002813 2.0680780 3.0888280

मध्य गुणांक आपको वही देता है जो आप चाहते हैं।

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