【问题标题】:Bootstrapping on R - resampling for a stratfied sampleR中的自举-分层样本的重采样
【发布时间】:2019-03-31 03:55:04
【问题描述】:

我有一个调查数据集,并希望在 R 上进行引导,以便根据代表其在总体中的层大小的概率来选择每个层的值。我在 boot() 包上尝试了各种方法,但我不确定我是否得到了我正在寻找的结果。例如,在定义每个分层权重后使用权重参数时,我相信这只是为我的引导创建加权平均值,而不是分层重采样。我不确定我需要哪个 sim() 选项或 strata() 选项的作用。请帮忙!

sample_mean = function(value,indices){return(mean(value[indices]))}
> results=boot(value,sample_mean,1000,weights = Weight)

【问题讨论】:

  • 为什么不直接使用带有 prob 参数的样本?
  • 您是否尝试过在boot() 中使用strata 参数?
  • 嗨,我需要在strata 参数中输入什么,谢谢
  • 如果value 是一个数据集,那么value(tar[indices]) 不是有效的R 代码。它使用value,就好像它是一个函数
  • 嗨乔尔。您放入描述数据层的标签列或向量(因子或整数)。这些应该与value 的长度相同。抽奖将自动与阶层的大小成比例。

标签: r statistics sampling resampling


【解决方案1】:

假设,为了重现性,你有

my_df <- data.frame(x=1:9, stratum=rep(1:3, each=3))
my_df
#   x stratum
# 1 1       1
# 2 2       1
# 3 3       1
# 4 4       2
# 5 5       2
# 6 6       2
# 7 7       3
# 8 8       3
# 9 9       3

并且您有与 Strata wts &lt;- c(4,2,1) 相关的权重 - 请注意,这些不一定需要加到 1。

您可以“手动”引导,调用类似

N_boot <- 10000
boot_mns <- rep(NA, N_boot)
for(i in 1:N_boot) {
   B <- sample(my_df$x, prob=wts[my_df$stratum])  
                 # or prob=wts[as.numeric(as.factor(my_df$stratum))] as needed
   boot_mns[i] <- mean(B)
}

使用boot 包可能会更好,但这对于正在发生的事情非常明确。

【讨论】:

  • 您好,谢谢。你知道如何在引导包中完成吗?
猜你喜欢
  • 2015-11-21
  • 1970-01-01
  • 2022-09-30
  • 2022-01-08
  • 2018-11-22
  • 2018-01-24
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
相关资源
最近更新 更多