我希望能够使用自举为某些测试统计信息生成一些置信区间。我想做的是使用采样并从原始数据集中替换来绘制自举数据集。我假设这将是一个大小为n(其中n小于原始数据集的大小)的数据集,该数据集将对来自整个数据集的观察值/数据行进行采样并进行替换(以便某些行可以绘制两次)。
我现在可以进行一次迭代的代码如下:
samp <- dat[sample(nrow(dat), 100000), ]
此代码从我的数据集中(日期)采样了10万行。
我的问题如下:
此代码是否对要替换的行进行采样?我的假设是否正确:使用替换采样的自举数据集等同于对大小为n(小于原始数据集)的数据集进行采样,该数据集从替换后的完整数据集中随机抽取数据行(此替换自举)吗? / p>
答案 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
表示重复,即替换已结束。