我试图写一个重新采样函数(用替换随机采样一些数据来创建bootstrap样本),它返回一组说b = 5个bootstrap样本。当然,5个自举样本应该是不同的 - 但我希望每次运行程序时返回的5个样本组都是相同的(即第一个样本与我的第一个样本相同)再次运行该功能等) - >再现性......
这可能吗?我想改变种子,但我发现这是不好的做法。
请注意我不能使用任何现有的软件包,例如" boot" - 我正在为统计学的毕业课程做这个,目的是自己发展主要概念。
bootstrap <- function(data) {
rows <- sample(1:nrow(data), replace = TRUE)
bs <- data[rows,]
rownames(bs) <- 1:nrow(data)
bs
}
manySamples <- function(data, b) {
bootSet <- list()
i <- 1
while(i <= b) {
bs <- bootstrap(data)
ele <- paste("bs", i, sep = "")
bootSet[[ele]] <- bs
i <- i + 1
}
bootSet
}
set1 <- manySamples(trainData, 5)
set2 <- manySamples(trainData, 5)
identical(set1, set2)
# FALSE
仅供参考:我需要这个来创建一个随机森林算法,在一组b bootstrap样本上创建b分类树。
非常感谢你的帮助! 干杯,斯特凡