क्या मुझे क्लस्टर स्तर या व्यक्तिगत स्तर पर बूटस्ट्रैप करना चाहिए?


10

मेरे पास अस्पतालों में निहित रोगियों के साथ एक अस्तित्व मॉडल है जिसमें अस्पतालों के लिए यादृच्छिक-प्रभाव शामिल है। यादृच्छिक प्रभाव गामा-वितरित है, और मैं इस शब्द की 'प्रासंगिकता' को उस पैमाने पर रिपोर्ट करने की कोशिश कर रहा हूं जो आसानी से समझ में आता है।

मुझे निम्नलिखित संदर्भ मिले हैं जो मेडियन हैजर्ड रेशियो (मेडियन ओड्स रेश्यो की तरह थोड़ा सा) का उपयोग करते हैं, और इसकी गणना करते हैं।

बेंग्सटन टी, ड्रोब एम: ऐतिहासिक तरीके 43:15, 2010

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

मुझे आश्चर्य है कि क्या उत्तर ब्याज के पैरामीटर पर निर्भर करता है, और इसलिए यदि लक्ष्य कुछ ऐसा था जो अस्पताल स्तर के बजाय रोगी स्तर पर प्रासंगिक था तो क्या होगा?

मैंने मामले में नीचे दिए गए स्टैट कोड को सूचीबद्ध किया है जो मदद करता है।

cap program drop est_mhr
program define est_mhr, rclass
stcox patient_var1 patient_var2 ///
    , shared(hospital) ///
    noshow
local twoinvtheta2 = 2 / (e(theta)^2)
local mhr = exp(sqrt(2*e(theta))*invF(`twoinvtheta2',`twoinvtheta2',0.75))
return scalar mhr = `mhr'
end

bootstrap r(mhr), reps(50) cluster(hospital): est_mhr

जवाबों:


2

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

पहले, ध्यान दें कि आपका डेटा पदानुक्रमित है, इसके कई स्तर हैं: स्कूल, स्कूलों के भीतर कक्षाएं, और कक्षाओं के भीतर छात्र। चूंकि प्रति विद्यालय केवल एक कक्षा है, इसलिए आपके डेटा में दूसरा स्तर कुछ भी नहीं है। हम यह मान सकते हैं कि स्कूलों के भीतर कुछ समानताएँ हैं और स्कूलों के बीच मतभेद हैं। यदि स्कूलों में समानताएं हैं, तो यदि आप विद्यार्थियों को यादृच्छिक रूप से नमूना लेते हैं, तो उनकी स्कूल सदस्यता को ध्यान में नहीं रखते हुए आप संभवतः अपने डेटा की पदानुक्रमित संरचना को नष्ट कर सकते हैं।

सामान्य तौर पर, कई विकल्प हैं:

  1. प्रतिस्थापन के साथ नमूना छात्रों,
  2. प्रतिस्थापन के साथ पूरे स्कूलों का नमूना,
  3. प्रतिस्थापन के साथ पहले नमूना स्कूल और फिर प्रतिस्थापन के साथ छात्रों (ए) को प्रतिस्थापन के बिना, या (बी)।

ऐसा प्रतीत होता है कि पहला दृष्टिकोण सबसे खराब है। याद रखें कि बूटस्ट्रैप नमूना किसी भी तरह आपके अध्ययन में नमूना प्रक्रिया का अनुकरण करना चाहिए और आप व्यक्तिगत छात्रों के बजाय स्कूलों का नमूना ले रहे थे। (2) और (3) के बीच चयन करना अधिक जटिल है, लेकिन उम्मीद है कि आप इस विषय पर विचार कर शोध पत्र पा सकते हैं (जैसे कि Rena et al। 2010, फील्ड और वेल्श, 2007)। आम तौर पर विकल्प (2) या (3 बी) बेहतर होते हैं क्योंकि ऐसा लगता है कि प्रतिस्थापन के साथ नमूने के बहुत अधिक स्तर पक्षपाती परिणामों की ओर ले जाते हैं। आप इस विषय के बारे में अधिक जानकारी Efron और टिब्शिरानी (1994) और डेविसन और हिंकले (1997) की पुस्तकों में भी पा सकते हैं। ध्यान दें कि हमें बूटस्ट्रैपिंग टाइम-सीरीज़ डेटा के साथ समान समस्या हैऔर इस मामले में हम व्यक्तिगत टिप्पणियों के बजाय श्रृंखला के पूरे ब्लॉकों (उदाहरण के लिए यदि हम मौसम को मानते हैं) के पूरे ब्लॉक का नमूना लेते हैं क्योंकि अन्यथा समय संरचना नष्ट हो जाएगी। व्यवहार में, कोई एक आकार-फिट-सभी समाधान नहीं है, लेकिन जटिल डेटा संरचनाओं के साथ आपको ऐसी बूटस्ट्रैप नमूना योजना का चयन करना चाहिए जो आपके डेटा और आपकी समस्या को सबसे अच्छी तरह से फिट करता है और यदि संभव हो तो विभिन्न समाधानों की तुलना करने के लिए सिमुलेशन अध्ययन का उपयोग करें।


डेविसन, एसी और हिंकले, डीवी (1997)। बूटस्ट्रैप के तरीके और उनके आवेदन। कैम्ब्रिज।

एफ्रॉन, बी और टिब्शिरानी, ​​आरजे (1994)। बूटस्ट्रैप का एक परिचय । सीआरसी प्रेस।

Ren, S., Lai, H., Tong, W., Aminzadeh, M., Hou, X., & Lai, S. (2010)। पदानुक्रमित डेटा के लिए गैरपारंपरिक बूटस्ट्रैपिंग। जर्नल ऑफ़ एप्लाइड स्टैटिस्टिक्स, 37 (9), 1487-1498।

फील्ड, सीए, और वेल्श, एएच (2007)। बूटस्ट्रैपिंग संकुल डेटा। रॉयल स्टैटिस्टिकल सोसाइटी का जर्नल: सीरीज़ बी (सांख्यिकी पद्धति), 69 (3), 369-390।


1
आपके उत्तर को स्वीकार किया (धन्यवाद), लेकिन दूसरों के लिए मैंने अब अपने जवाब
drstevok

3

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

http://biostat.mc.vanderbilt.edu/wiki/Main/HowToBootstrapCorrelatedData

UCLA सांख्यिकीय परामर्श समूह से सूचक के लिए धन्यवाद ।

मैंने ऊपर लिंक किए गए कोड स्निपेट का एक तेज़ (लेकिन कम लचीला) संस्करण लिखा है - अपडेट और विवरण के लिए यहां देखें।

rsample2 <- function(data=tdt, id.unit=id.u, id.cluster=id.c) {
require(data.table)

setkeyv(tdt,id.cluster)
# Generate within cluster ID (needed for the sample command)
tdt[, "id.within" := .SD[,.I], by=id.cluster, with=FALSE]

# Random sample of sites
bdt <- data.table(sample(unique(tdt[[id.cluster]]), replace=TRUE))
setnames(bdt,"V1",id.cluster)
setkeyv(bdt,id.cluster)

# Use random sample of sites to select from original data
# then
# within each site sample with replacement using the within site ID
bdt <- tdt[bdt, .SD[sample(.SD$id.within, replace=TRUE)],by=.EACHI]

# return data sampled with replacement respecting clusters
bdt[, id.within := NULL] # drop id.within
return(bdt)
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.