एक lm मॉडल के कस्टम पावर विश्लेषण का अनुकरण कैसे करें (R का उपयोग करके)


13

हाल के सवालों के बाद हम यहाँ थे

मैं यह जानने के लिए रुक रहा था कि क्या कोई पार आया था या रैखिक मॉडल के लिए सिमुलेशन के आधार पर एक कस्टम पावर विश्लेषण करने के लिए आर कोड साझा कर सकता है ?

बाद में मैं स्पष्ट रूप से इसे और अधिक जटिल मॉडल तक विस्तारित करना चाहूंगा, लेकिन एलएम को शुरू करने के लिए सही जगह लगती है। धन्यवाद।

जवाबों:


4

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


1
पोर्टेबल पावर लिंक टूट गया है। अगर कोई लिंक को अपडेट कर सकता है, तो यह बहुत अच्छा होगा। धन्यवाद।
ब्रायन पी।

3

आर में सिमुलेशन कोड के कुछ स्रोत यहां दिए गए हैं। मुझे यकीन नहीं है कि कोई विशेष रूप से रेखीय मॉडल को संबोधित करता है, लेकिन शायद वे उदाहरण पाने के लिए पर्याप्त उदाहरण देते हैं:

निम्नलिखित साइटों पर अनुकरण के उदाहरणों के एक और जोड़े हैं:


0

बोल्कर 2009 पारिस्थितिक मॉडल और आर में डेटा से अनुकूलित। आपको उस प्रवृत्ति (यानी ढलान) की शक्ति को घोषित करने की आवश्यकता है जिसे आप परीक्षण करना चाहते हैं। सहज रूप से एक मजबूत प्रवृत्ति और कम परिवर्तनशीलता के लिए एक छोटे नमूने के आकार की आवश्यकता होगी, एक कमजोर प्रवृत्ति और बड़ी परिवर्तनशीलता के लिए एक बड़े नमूना आकार की आवश्यकता होगी।

a = 2  #desired slope
b = 1  #estimated intercept
sd = 20  #estimated variability defined by standard deviation
nsim = 400  #400 simulations
pval = numeric(nsim)  #placeholder for the second for loop output
Nvec = seq(25, 100, by = 1)  #vector for the range of sample sizes to be tested
power.N = numeric(length(Nvec))   #create placeholder for first for loop output
for (j in 1:length(Nvec)) {
  N = Nvec[j]  
  x = seq(1, 20, length = Nvec[j])  #x value length needs to match sample size (Nvec) length
  for (i in 1:nsim) {   #for this value of N, create random error 400 times
    y_det = a + b * x
    y = rnorm(N, mean = y_det, sd = sd)
    m = lm(y ~ x)
    pval[i] = coef(summary(m))["x", "Pr(>|t|)"]  #all the p values for 400 sims
  }  #cycle through all N values
  power.N[j] = sum(pval < 0.05)/nsim  #the proportion of correct p-values (i.e the power)
}
power.N
plot(Nvec, power.N)  #need about 90 - 100 samples for 80% power

आप यह भी अनुकरण कर सकते हैं कि किसी दिए गए नमूने के आकार का परीक्षण करने के लिए न्यूनतम रुझान क्या है, जैसा कि पुस्तक में दिखाया गया है

bvec = seq(-2, 2, by = 0.1)
power.b = numeric(length(bvec))
for (j in 1:length(bvec)) {
  b = bvec[j]
   for (i in 1:nsim) {
     y_det = a + b * x
     y = rnorm(N, mean = y_det, sd = sd)
     m = lm(y ~ x)
     pval[i] = coef(summary(m))["x", "Pr(>|t|)"]
     }
   power.b[j] = sum(pval < 0.05)/nsim
  }
 power.b
 plot(bvec, power.b)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.