বলকার ২০০৯ ইকোলজিকাল মডেলস এবং আর-তে ডেটা থেকে অভিযোজিত You স্বজ্ঞাতভাবে দৃ strong় প্রবণতা এবং কম পরিবর্তনশীলতার জন্য একটি ছোট নমুনার আকার প্রয়োজন হবে, একটি দুর্বল প্রবণতা এবং বৃহত্তর পরিবর্তনশীলতার জন্য একটি বৃহত নমুনার আকার প্রয়োজন হবে।
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)