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) की शक्ति पाई। तो यह हो सकता है कि कुछ परिस्थितियों में यह दृष्टिकोण शक्ति को कम कर देता है। हालांकि, जब मैंने इस ऑन-लाइन कैलकुलेटर में एक ही उदाहरण चलाया है , तो मैंने पाया है कि यह मेरे साथ सहमत है और होस्मेर और लेमेशो में परिणाम नहीं है।
अगर कोई हमें बता सकता है कि ऐसा क्यों है, तो मुझे जानने में दिलचस्पी होगी।