प्रारंभिक:
NESα
@ ग्रेग्वेन के उत्कृष्ट पोस्ट के अलावा , सीवी पर सिमुलेशन-आधारित पावर विश्लेषणों के लिए एक और बहुत अच्छा मार्गदर्शक यहां पाया जा सकता है: भौगोलिक शक्ति की गणना । मूल विचारों को संक्षेप में प्रस्तुत करने के लिए:
- उस प्रभाव का पता लगाएं, जिसका आप पता लगाना चाहते हैं
- उस संभव दुनिया से एन डेटा उत्पन्न करते हैं
- विश्लेषण आप उन अशुद्ध डेटा पर आचरण करने का इरादा चलाते हैं
- स्टोर करें कि क्या परिणाम आपके चुने हुए अल्फा के अनुसार 'महत्वपूर्ण' हैं
- BN
- एक प्राथमिकता-प्राथमिक शक्ति का निर्धारण संभव पर खोज करेंN
ppBpB
आर में, 'सफलता' की दी गई संभावना के साथ द्विआधारी डेटा उत्पन्न करने का प्राथमिक तरीका है ? Rbinom
- उदाहरण के लिए 10 बर्नौली परीक्षणों में से प्रायिकता p के साथ सफलताओं की संख्या प्राप्त करने के लिए, कोड होगा
rbinom(n=10, size=1, prob=p)
, (आप शायद भंडारण के लिए एक चर को परिणाम असाइन करना चाहते हैं)
- आप इस तरह के डेटा का उपयोग कम सुरुचिपूर्ण ढंग से भी कर सकते हैं; रनिफ़ , जैसे;
ifelse(runif(1)<=p, 1, 0)
- यदि आप मानते हैं कि परिणाम एक अव्यक्त गाऊसी चर द्वारा मध्यस्थ हैं, तो आप अपने covariates के एक समारोह के रूप में अव्यक्त चर उत्पन्न कर सकते हैं ? rnorm , और फिर उन्हें संभावनाओं में परिवर्तित करके
pnorm()
और अपने rbinom()
कोड में उन का उपयोग करें ।
var12var1∗var2var12∗var2
- यद्यपि एक अलग प्रश्न के संदर्भ में लिखा गया है, मेरा जवाब यहां: लॉगिट और प्रोबेट मॉडल के बीच अंतर इस प्रकार के मॉडल के बारे में बहुत सारी बुनियादी जानकारी है।
जैसे कई प्रकार की परिकल्पनाएँ (जैसे, प्रति-विपरीत त्रुटि दर , परिवार की त्रुटि दर , और प्रति-परिवार त्रुटि दर ) होने पर विभिन्न प्रकार की टाइप I त्रुटि दरें होती हैं , उसी प्रकार विभिन्न प्रकार की शक्ति * (जैसे, एक के लिए) हैं एकल पूर्व-निर्दिष्ट प्रभाव , किसी भी प्रभाव के लिए , और सभी प्रभावों के लिए )। आप प्रभावों के एक विशिष्ट संयोजन का पता लगाने के लिए या संपूर्ण रूप से मॉडल के एक साथ परीक्षण की शक्ति के लिए भी खोज सकते हैं। आपके एसएएस कोड के विवरण से मेरा अनुमान है कि यह बाद की तलाश में है। हालाँकि, आपकी स्थिति के विवरण से, मैं मान रहा हूँ कि आप एक न्यूनतम पर बातचीत प्रभाव का पता लगाना चाहते हैं।
- * संदर्भ: मैक्सवेल, एसई (2004)। मनोवैज्ञानिक अनुसंधान में कमज़ोर अध्ययन की दृढ़ता: कारण, परिणाम और उपचार। मनोवैज्ञानिक तरीके , 9 , 2 , पीपी 147-163।
- आपके प्रभाव काफी छोटे हैं (कम प्रतिक्रिया दर के साथ भ्रमित नहीं होना), इसलिए हमें अच्छी शक्ति प्राप्त करना मुश्किल होगा।
- ध्यान दें कि, हालांकि ये सभी समान रूप से ध्वनि करते हैं, वे बहुत अधिक समान नहीं हैं (उदाहरण के लिए, बिना किसी महत्वपूर्ण प्रभाव के एक महत्वपूर्ण मॉडल प्राप्त करना बहुत संभव है - यहां चर्चा की गई है: एक प्रतिगमन कैसे महत्वपूर्ण हो सकता है फिर भी सभी भविष्यवक्ता गैर नहीं हो सकते हैं- महत्वपूर्ण? या महत्वपूर्ण प्रभाव लेकिन जहां मॉडल महत्वपूर्ण नहीं है - यहां चर्चा की गई है: रैखिक प्रतिगमन में गुणांक का महत्व: महत्वपूर्ण टी-परीक्षण बनाम गैर-महत्वपूर्ण एफ-स्टेटिस्टिक ), जो नीचे चित्रित किया जाएगा।
बिजली से संबंधित मुद्दों के बारे में सोचने के एक अलग तरीके के लिए, मेरा जवाब यहां देखें: नमूना आकार को सही ठहराने के संदर्भ में सहसंबंधों का आकलन करने में सामान्य सटीकता की रिपोर्ट कैसे करें।
आर में लॉजिस्टिक प्रतिगमन के लिए सरल पोस्ट-हॉक पावर:
मान लीजिए कि आपकी सकारात्मक प्रतिक्रिया दरें दुनिया में सही स्थिति का प्रतिनिधित्व करती हैं, और आपने 10,000 पत्र भेजे थे। उन प्रभावों का पता लगाने की शक्ति क्या है? (ध्यान दें कि मैं "हास्य रूप से अक्षम" कोड लिखने के लिए प्रसिद्ध हूं, निम्नलिखित का उद्देश्य दक्षता के लिए अनुकूलित करने के बजाय अनुसरण करना आसान है, वास्तव में, यह काफी धीमा है।)
set.seed(1)
repetitions = 1000
N = 10000
n = N/8
var1 = c( .03, .03, .03, .03, .06, .06, .09, .09)
var2 = c( 0, 0, 0, 1, 0, 1, 0, 1)
rates = c(0.0025, 0.0025, 0.0025, 0.00395, 0.003, 0.0042, 0.0035, 0.002)
var1 = rep(var1, times=n)
var2 = rep(var2, times=n)
var12 = var1**2
var1x2 = var1 *var2
var12x2 = var12*var2
significant = matrix(nrow=repetitions, ncol=7)
startT = proc.time()[3]
for(i in 1:repetitions){
responses = rbinom(n=N, size=1, prob=rates)
model = glm(responses~var1+var2+var12+var1x2+var12x2,
family=binomial(link="logit"))
significant[i,1:5] = (summary(model)$coefficients[2:6,4]<.05)
significant[i,6] = sum(significant[i,1:5])
modelDev = model$null.deviance-model$deviance
significant[i,7] = (1-pchisq(modelDev, 5))<.05
}
endT = proc.time()[3]
endT-startT
sum(significant[,1])/repetitions # pre-specified effect power for var1
[1] 0.042
sum(significant[,2])/repetitions # pre-specified effect power for var2
[1] 0.017
sum(significant[,3])/repetitions # pre-specified effect power for var12
[1] 0.035
sum(significant[,4])/repetitions # pre-specified effect power for var1X2
[1] 0.019
sum(significant[,5])/repetitions # pre-specified effect power for var12X2
[1] 0.022
sum(significant[,7])/repetitions # power for likelihood ratio test of model
[1] 0.168
sum(significant[,6]==5)/repetitions # all effects power
[1] 0.001
sum(significant[,6]>0)/repetitions # any effect power
[1] 0.065
sum(significant[,4]&significant[,5])/repetitions # power for interaction terms
[1] 0.017
इसलिए हम देखते हैं कि इन प्रतिक्रिया दरों का पता लगाने के लिए 10,000 अक्षर वास्तव में 80% शक्ति (किसी भी प्रकार) प्राप्त नहीं करते हैं। (मैं पर्याप्त रूप से इस बारे में निश्चित नहीं हूं कि एसएएस कोड इन दृष्टिकोणों के बीच स्टार्क विसंगति को समझाने में सक्षम होने के लिए क्या कर रहा है, लेकिन यह कोड वैचारिक रूप से सीधा है - अगर धीमा है - और मैंने इसे जांचने में कुछ समय बिताया है, और मुझे लगता है कि ये परिणाम उचित हैं।)
लॉजिस्टिक प्रतिगमन के लिए सिमुलेशन-आधारित-प्राथमिक शक्ति:
NNNN
NN
sum(significant[,1])/repetitions # pre-specified effect power for var1
[1] 0.115
sum(significant[,2])/repetitions # pre-specified effect power for var2
[1] 0.091
sum(significant[,3])/repetitions # pre-specified effect power for var12
[1] 0.059
sum(significant[,4])/repetitions # pre-specified effect power for var1X2
[1] 0.606
sum(significant[,5])/repetitions # pre-specified effect power for var12X2
[1] 0.913
sum(significant[,7])/repetitions # power for likelihood ratio test of model
[1] 1
sum(significant[,6]==5)/repetitions # all effects power
[1] 0.005
sum(significant[,6]>0)/repetitions # any effect power
[1] 0.96
sum(significant[,4]&significant[,5])/repetitions # power for interaction terms
[1] 0.606
var12significant
N