R语言多阶段抽样模拟及1000次重复试验均值计算咨询
你现有代码仅完成了第一步的抽样操作,没有包含后续抽样逻辑和均值计算步骤,完整实现如下:
完整实现代码
# 设置随机种子保证结果可复现 set.seed(123) # 重复执行1000次多阶段抽样流程 sim_res <- replicate(1000, { # 步骤2:从初始总体1~90中等概率无放回抽20个样本 step2_samp <- sample(1:90, size = 20, replace = FALSE) # 步骤3:从步骤2的20个样本中等概率无放回抽17个 step3_samp <- sample(step2_samp, size = 17, replace = FALSE) # 筛选步骤2中未进入步骤3的3个剩余样本 step3_remain <- setdiff(step2_samp, step3_samp) # 步骤4:从3个剩余样本中等概率无放回抽2个 step4_samp <- sample(step3_remain, size = 2, replace = FALSE) # 返回当前轮次三个步骤的样本均值 c( step2_mean = mean(step2_samp), step3_mean = mean(step3_samp), step4_mean = mean(step4_samp) ) }) # 计算1000次模拟下三个步骤的平均均值 final_avg <- rowMeans(sim_res) print(final_avg)
结果说明
sim_res是一个3行1000列的矩阵,每一列对应一次完整抽样流程的三个步骤均值final_avg就是你需要的1000次模拟后三个步骤的总体平均结果,由于三个步骤都是无偏抽样,三个结果都会非常接近总体理论均值45.5
内容的提问来源于stack exchange,提问作者Amit Kumar
相关产品推荐
相关产品推荐

