আমি জানি এটি কম মার্জিত, তবে আমাকে এটি অনুকরণ করতে হয়েছিল। আমি কেবল একটি সুন্দর সরল সিমুলেশন তৈরি করিনি, তবে এটি চালিত এবং অবিচ্ছিন্ন। যদিও এটি যথেষ্ট ভাল। একটি সুবিধা হ'ল, যতক্ষণ না কিছু বেসিক সঠিক থাকে ততক্ষণ এটি আমাকে বলতে চলেছে যখন মার্জিত অ্যাপ্রোচটি নীচে নেমে আসে।
হার্ড-কোডড মানটির ফাংশন হিসাবে নমুনার আকারটি পরিবর্তিত হতে চলেছে।
সুতরাং এখানে কোড:
#main code
#want 95% CI to be no more than 3% from prevalence
#expect prevalence around 15% to 30%
#think sample size is ~1000
my_prev <- seq(from=0.15, to=0.30, by = 0.002)
samp_sizes <- seq(from=400, to=800, by = 1)
samp_sizes
N_loops <- 2000
store <- matrix(0,
nrow = length(my_prev)*length(samp_sizes),
ncol = 3)
count <- 1
#for each prevalence
for (i in 1:length(my_prev)){
#for each sample size
for(j in 1:length(samp_sizes)){
temp <- 0
for(k in 1:N_loops){
#draw samples
y <- rbinom(n = samp_sizes[j],
size = 1,
prob = my_prev[i])
#compute prevalence, store
temp[k] <- mean(y)
}
#compute 5% and 95% of temp
width <- diff(quantile(x = temp,probs = c(0.05,0.95)))
#store samp_size, prevalence, and CI half-width
store[count,1] <- my_prev[i]
store[count,2] <- samp_sizes[j]
store[count,3] <- width[[1]]
count <- count+1
}
}
store2 <- numeric(length(my_prev))
#go through store
for(i in 1:length(my_prev)){
#for each prevalence
#find first CI half-width below 3%
#store samp_size
idx_p <- which(store[,1]==my_prev[i],arr.ind = T)
idx_p
temp <- store[idx_p,]
temp
idx_2 <- which(temp[,3] <= 0.03*2, arr.ind = T)
idx_2
temp2 <- temp[idx_2,]
temp2
if (length(temp2[,3])>1){
idx_3 <- which(temp2[,3]==max(temp2[,3]),arr.ind = T)
store2[i] <- temp2[idx_3[1],2]
} else {
store2[i] <- temp2[2]
}
}
#plot it
plot(x=my_prev,y=store2,
xlab = "prevalence", ylab = "sample size")
lines(smooth.spline(x=my_prev,y=store2),col="Red")
grid()
±

50% থেকে দূরে, "কিছুটা কম পর্যবেক্ষণ" লাগবে বলে মনে হয়, যেমন কেজেটিল বলেছিল।
আমি মনে করি যে 400 টি নমুনার আগে আপনি প্রসার সম্পর্কে একটি শালীন প্রাক্কলন পেতে পারেন এবং যেতে যেতে আপনার নমুনা কৌশলটি সামঞ্জস্য করতে পারেন। আমি মনে করি না যে মাঝখানে কোনও জগ থাকা উচিত, এবং সুতরাং আপনি এন_লুপগুলিকে 10e3 অবধি ধাক্কা মেরে এবং "মাই_প্রিভ" এর "বাই" কে 0.001 এ নামিয়ে দিতে পারেন।