Univariate उपस्कर प्रतिगमन के लिए नमूना आकार की गणना


11

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

हम यह देखना चाहेंगे कि क्या उस माप से खराब परिणाम की भविष्यवाणी की जा सकती है। कुछ बिंदु पर हम निरंतर चर में एक कट बिंदु प्राप्त करना चाहते हैं जिसके ऊपर हम बिगड़ा परिणाम की संभावना को कम करने के लिए हस्तक्षेप करने का प्रयास करेंगे।

कोई विचार? किसी भी आर कार्यान्वयन।


क्या आपको अनुवर्ती के दौरान कुछ छोड़ने की उम्मीद है? क्या आपके मॉडल में शामिल होने के लिए कोई अन्य सहसंयोजक हैं?
chl

मुझे अपने अंगूठे से बाहर छोड़ने की दर चूसने दें - 20%। हम वास्तव में उदाहरण, आयु, आघात स्कोर के लिए कई चर एकत्र करेंगे, लेकिन मैं बिजली गणना के लिए चीजों को यथासंभव सरल रखना चाहता था। मैंने अक्सर एक प्राथमिक मॉडल और फिर माध्यमिक मॉडल पर चर्चा करना उपयोगी पाया है जो अधिक चालाकी और अति सूक्ष्मता से भरी हुई हैं।
Farrel

ठीक है, लेकिन आमतौर पर अपेक्षित% ड्रॉपआउट, सहसंयोजकों की संख्या, और क्या सहसंयोजक त्रुटियों के साथ मापा जाता है (उदाहरण के लिए, j.mp/9fJkhb ) सूत्र दर्ज करें (सभी मामले में, यह नमूना आकार में वृद्धि करेगा)।
7:25

जवाबों:


7

लॉजिस्टिक प्रतिगमन के लिए नमूना आकार की गणना जटिल है। मैं इसे यहाँ संक्षेप में प्रस्तुत करने का प्रयास नहीं करूँगा। इस समस्या के उचित सुलभ समाधान निम्न में पाए जाते हैं:

Hsieh FY। लॉजिस्टिक रिग्रेशन के लिए सैंपल साइज टेबल। चिकित्सा में सांख्यिकी। 1989 जुलाई; 8 (7): 795-802।

Hsieh FY, एट अल। रैखिक और उपस्कर प्रतिगमन के लिए नमूना आकार गणना की एक सरल विधि। चिकित्सा में सांख्यिकी। 1998 जुलाई 30; 17 (14): 1623-34।

उदाहरण गणना के साथ मुद्दों की एक सुलभ चर्चा होस्मर और लेमेशो के एप्लाइड लॉजिस्टिक रिग्रेशन के अंतिम अध्याय (धारा 8.5 पीपी 339-347) में पाई जा सकती है ।


7

मुझे आमतौर पर सिमुलेशन चलाना आसान और तेज़ लगता है। पत्रों को पढ़ने, समझने और अंत में इस निष्कर्ष पर पहुंचने में लंबा समय लगता है कि वे जिस विशेष मामले में रुचि रखते हैं, उस पर लागू नहीं होते हैं।

इसलिए, मैं सिर्फ कई विषयों को चुनूंगा, उस कोवेरेट का अनुकरण करूँगा जिसमें आप रुचि रखते हैं (वितरित जैसा कि आप मानते हैं कि यह होगा), कार्यात्मक रूप के आधार पर अच्छे / बुरे परिणामों का अनुकरण करते हैं जो आप पॉज़िट करते हैं (कोवरिएट के दहलीज प्रभाव? अरेखीयता?) न्यूनतम (नैदानिक ​​रूप से) महत्वपूर्ण प्रभाव आकार के साथ, आप अपने विश्लेषण के माध्यम से परिणाम का पता लगाना चाहेंगे और देखें कि क्या प्रभाव आपके अल्फा पर पाया गया है। इस 10,000 बार रीरुन करें और देखें कि क्या आपको 80% सिमुलेशन (या जो भी अन्य शक्ति की आवश्यकता है) में प्रभाव मिला है। विषयों की संख्या को समायोजित करें, तब तक दोहराएं जब तक आपके पास एक शक्ति नहीं है जिससे आप खुश हैं।

यह बहुत सामान्य होने का लाभ है, इसलिए आप एक विशिष्ट कार्यात्मक रूप या एक विशिष्ट संख्या या कोवरिएट्स के वितरण तक सीमित नहीं हैं। आप ड्रॉपआउट शामिल कर सकते हैं, ऊपर chl की टिप्पणी देखें, या तो यादृच्छिक या कोवरिएट या परिणाम से प्रभावित। आप मूल रूप से उस विश्लेषण को कोड करते हैं जो आप पहले से अंतिम नमूने पर करने जा रहे हैं, जो कभी-कभी अध्ययन डिजाइन पर मेरी सोच को केंद्रित करने में मदद करता है। और यह आसानी से आर (वेक्टराइज़!) में किया जाता है।


क्या आपके पास आर में काम करने का मामला है?
फरल

1
@Farrel - यहाँ एक बहुत ही संक्षिप्त लिपि है, जो मानती है [0,1] -समान रूप से वितरित किए गए सहसंयोजक, सहसंयोजक और मानक सामान्य शोर के पहले और तीसरे चतुर्थक के बीच 2 का एक OR, जो n = 100 के लिए शक्ति है ।34। मैं यह देखने के लिए इसके साथ खेलूंगा कि मेरी मान्यताओं के प्रति सब कुछ कितना संवेदनशील है: रन <- 1000; nn <- 100; set.seed (2010); detections <- replicate (n = चलाता है, expr = {covariate <- runif (nn); परिणाम <- runif (nn) <1 / (1 + exp (-2 * log) (2) * covariate / rnorm (nn)) ); सारांश (glm (परिणाम ~ सहसंयोजक, परिवार = "द्विपद")) $ गुणांक ["सहसंयोजक", "Pr (> | z |)"]] <.05}) बिल्ली ("शक्ति:", योग (निरोध)) / रन, "\ n")
स्टीफ़न कोलासा २०

1
यदि आपको लगता है कि यह अधिक सुविधाजनक है, और आप अपनी टिप्पणी में इसे वापस लिंक कर सकते हैं, तो आप अपने कोड को एक पेस्टी ( pastebin.com ) या एक जिस्ट ( gist.github.com ) के रूप में संलग्न कर सकते हैं ।
२०:०० पर chl

@chl: +1, बहुत बहुत धन्यवाद! यहाँ जिस्ट है
Stephan Kolassa

महान कोड लेकिन एक समस्या है। मैं उतना स्मार्ट नहीं हूं जितना तुम हो। मुझे इसकी जरूरत है कि यह कदम दर कदम टूट जाए। मुझे लगता है कि यह सिमुलेशन की संख्या है? Nn क्या है? क्या यह अध्ययन में विषयों की संख्या है? फिर मैंने देखा कि आपने कोवरिएट्स का वितरण किया और उन्हें एक सीमा के आधार पर हां या ना में निर्धारित किया।
फरल

4

Stephan Kolassa द्वारा पोस्ट के बाद (मैं इसे टिप्पणी के रूप में नहीं जोड़ सकता), मेरे पास एक सिमुलेशन के लिए कुछ वैकल्पिक कोड हैं। यह एक ही मूल संरचना का उपयोग करता है, लेकिन इसे थोड़ा और विस्फोट किया जाता है, इसलिए शायद इसे पढ़ना थोड़ा आसान है। यह लॉजिस्टिक रिग्रेशन का अनुकरण करने के लिए क्लेनमैन और हॉर्टन के कोड पर भी आधारित है ।

nn नमूने में संख्या है। कोवरियेट को सामान्य रूप से लगातार वितरित किया जाना चाहिए, और इसका मतलब 0 और sd होना चाहिए। इसे उत्पन्न करने के लिए हम rnorm (nn) का उपयोग करते हैं। हम एक अनुपात का चयन करते हैं और इसे odds.ratio में संग्रहीत करते हैं। हम इंटरसेप्ट के लिए एक नंबर भी लेते हैं। इस संख्या का चुनाव यह दर्शाता है कि नमूना "घटना" (उदाहरण 0.1, 0.4, 0.5) के किस अनुपात का अनुभव करता है। जब तक आपको सही अनुपात नहीं मिलता, आपको इस संख्या के साथ खेलना होगा। निम्नलिखित कोड आपको 950 के नमूने के आकार के साथ 0.1 का अनुपात देता है और 1.5 का एक:

nn <- 950
runs <- 10000
intercept <- log(9)
odds.ratio <- 1.5
beta <- log(odds.ratio)
proportion  <-  replicate(
              n = runs,
              expr = {
                  xtest <- rnorm(nn)
                  linpred <- intercept + (xtest * beta)
                  prob <- exp(linpred)/(1 + exp(linpred))
                  runis <- runif(length(xtest),0,1)
                  ytest <- ifelse(runis < prob,1,0)
                  prop <- length(which(ytest <= 0.5))/length(ytest)
                  }
            )
summary(proportion)

सारांश (अनुपात) पुष्टि करता है कि अनुपात ~ 0.1 है

फिर समान चरों का उपयोग करते हुए, शक्ति की गणना 10000 रनों से अधिक की जाती है:

result <-  replicate(
              n = runs,
              expr = {
                  xtest <- rnorm(nn)
                  linpred <- intercept + (xtest * beta)
                  prob <- exp(linpred)/(1 + exp(linpred))
                  runis <- runif(length(xtest),0,1)
                  ytest <- ifelse(runis < prob,1,0)
                  summary(model <- glm(ytest ~ xtest,  family = "binomial"))$coefficients[2,4] < .05
                  }
            )
print(sum(result)/runs)

मुझे लगता है कि यह कोड सही है - मैंने इसे Hsieh, 1998 (तालिका 2) में दिए गए उदाहरणों के खिलाफ जाँच की, और यह वहाँ दिए गए तीन उदाहरणों से सहमत लगता है। मैंने इसका उदाहरण होसर और लेमेशो के पृष्ठ ३४२ - ३४३ पर दिया, जहाँ इसने ०. 0.8५ (हॉसमर और लेमेशो की तुलना में ०. the) की शक्ति पाई। तो यह हो सकता है कि कुछ परिस्थितियों में यह दृष्टिकोण शक्ति को कम कर देता है। हालांकि, जब मैंने इस ऑन-लाइन कैलकुलेटर में एक ही उदाहरण चलाया है , तो मैंने पाया है कि यह मेरे साथ सहमत है और होस्मेर और लेमेशो में परिणाम नहीं है।

अगर कोई हमें बता सकता है कि ऐसा क्यों है, तो मुझे जानने में दिलचस्पी होगी।


मेरे 2 सवाल हैं यदि आप बुरा नहीं मानते हैं। 1) क्या अनुपात केवल अवरोधन को सही करने के लिए है? 2) ytest का उपयोग करने के पीछे क्या तर्क है (एक यादृच्छिक यूनी ड्रा की संभावना की तुलना)?
B_Miner

@B_Miner 1) दूसरे तरीके के चारों ओर - अनुपात को सही करने के लिए, आपको अवरोधन को सही ढंग से सेट करने की आवश्यकता है - इसलिए अवरोधन को तब तक समायोजित करें जब तक कि आप उस अनुपात को प्राप्त न करें जो आप अपेक्षा कर रहे हैं। 2) ytest का तर्क यह है कि हमें एक dichotomous 0 या 1 परिणाम प्राप्त करने की आवश्यकता है। तो इसलिए हम अपने डिचोटोमस परिणाम प्राप्त करने के लिए समान वितरण से लेकर संभाव्यता (प्रोब) तक प्रत्येक नमूने की तुलना करते हैं। 'रनिस' को रैंडम यूनिफ़ॉर्म डिस्ट्रीब्यूशन से तैयार नहीं करना पड़ता है - एक द्विपद या अन्य डिस्ट्रीब्यूशन आपके डेटा के लिए अधिक मायने रखता है। आशा है कि यह मदद करता है (उत्तर में देरी के लिए खेद है)।
एंड्रयू

3

नमूना आकार के बारे में एक सरल प्रश्न है: डेटा वितरण के [अज्ञात] माध्य के लिए 95% विश्वास अंतराल को 2d से अधिक प्राप्त करने के लिए कितना बड़ा नमूना आवश्यक है। एक और प्रकार है: H परीक्षण करते समय पॉवर 0.9 को पर रखने के लिए कितने बड़े नमूने की आवश्यकता होती है । आप नमूना आकार चुनने के लिए कोई मानदंड निर्दिष्ट नहीं करते हैं।0 : θ = 0θ=10:θ=0

वास्तव में, ऐसा लगता है कि आपके अध्ययन को क्रमबद्ध तरीके से आयोजित किया जाएगा। उस स्थिति में, यह प्रयोग का एक स्पष्ट हिस्सा बनाने के लिए भुगतान कर सकता है। अनुक्रमिक नमूनाकरण अक्सर एक निश्चित नमूना-आकार के प्रयोग की तुलना में अधिक कुशल हो सकता है [औसत पर कम टिप्पणियों की आवश्यकता होती है]।

farrel: मैं इसे आपकी टिप्पणी के जवाब में जोड़ रहा हूँ।

एक नमूना आकार में प्राप्त करने के लिए, आमतौर पर एक अनुमान के लिए किसी प्रकार की सटीक कसौटी निर्दिष्ट की जाती है [जैसे कि एक CI की लंबाई] या डेटा पर किए जाने वाले परीक्षण के निर्दिष्ट विकल्प पर शक्ति। आप इन दोनों मानदंडों का उल्लेख करते हैं। उस में कुछ भी गलत नहीं है, सिद्धांत रूप में: आपको बस दो नमूना आकार की गणनाएं करनी हैं - एक वांछित अनुमान सटीकता प्राप्त करने के लिए - और दूसरे को निर्दिष्ट विकल्प पर वांछित शक्ति प्राप्त करने के लिए। फिर दो सैंपल साइज़ का बड़ा होना आवश्यक है। [btw - 80% शक्ति कहने के अलावा - आपको यह नहीं लगता कि आपने किस परीक्षण का प्रदर्शन करने की योजना बनाई है - या वह विकल्प जिस पर आप 80% शक्ति चाहते हैं।]

अनुक्रमिक विश्लेषण का उपयोग करने के लिए: यदि विषयों को एक ही समय में अध्ययन में नामांकित किया जाता है, तो एक निश्चित नमूना आकार समझ में आता है। लेकिन अगर विषय कम और दूर के हैं, तो आवश्यक संख्या में दाखिला लेने में एक या दो साल लग सकते हैं। इस प्रकार परीक्षण तीन या चार साल [या अधिक] तक चल सकता है। उस मामले में, एक अनुक्रमिक योजना उस से भी जल्द रोकने की संभावना प्रदान करती है - यदि प्रभाव [एस] आप परीक्षण में पहले सांख्यिकीय रूप से महत्वपूर्ण बनने की तलाश कर रहे हैं।


अच्छे बनाम बुरे परिणाम की संभावना में मानदंड में 10% का अंतर होगा। या यह कहता है कि यह लॉजिस्टिक रिग्रेशन, ऑड्स रेशियो = 2. अल्फा = 0.05, पावर = 80% होगा, मुझे अभी तक नहीं पता है कि निरंतर वैरिएबल पर पूल किए गए वेरिएंट क्या हैं, लेकिन हम यह मान लेते हैं कि मानक विचलन 7mmHg है। अनुक्रमिक विश्लेषण अच्छा होगा लेकिन माप लेने के दो साल बाद अंतिम परिणाम होगा।
Farrel
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.