用替换采样R中数据帧的随机行

时间:2018-09-10 18:58:26

标签: r bootstrapping sampling

我希望能够使用自举为某些测试统计信息生成一些置信区间。我想做的是使用采样并从原始数据集中替换来绘制自举数据集。我假设这将是一个大小为n(其中n小于原始数据集的大小)的数据集,该数据集将对来自整个数据集的观察值/数据行进行采样并进行替换(以便某些行可以绘制两次)。

我现在可以进行一次迭代的代码如下:

samp <- dat[sample(nrow(dat), 100000), ]

此代码从我的数据集中(日期)采样了10万行。

我的问题如下:

此代码是否对要替换的行进行采样?我的假设是否正确:使用替换采样的自举数据集等同于对大小为n(小于原始数据集)的数据集进行采样,该数据集从替换后的完整数据集中随机抽取数据行(此替换自举)吗? / p>

2 个答案:

答案 0 :(得分:0)

此代码是否对要替换的行进行采样? →是

答案 1 :(得分:0)

这回答了问题的第一部分-

该代码未进行替换采样,您需要添加replace=TRUE,因为sample的默认值是不替换,即samp <- dat[sample(nrow(dat), 100000, replace=TRUE), ]

我们可以用一个测试用例来探讨这个问题。首先生成一些数据:

dat <- data.frame(Number=c(seq(1:10)))

然后示例运行您提供的代码

samp <- dat[sample(nrow(dat),10,]

然后查看是否有任何数字出现多个,即它们是重复的:

duplicated(samp)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

再次运行,并包含replace=TRUE参数:

samp <- dat[sample(nrow(dat),10,replace=TRUE),]
duplicated(samp)
[1] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE

TRUE表示重复,即替换已结束。