我有一个带有X列的数据帧df,该列具有沿着1,000,000行的正态分布值。 X中的最大值= 0.8。使用R(可能还有“ boot”包),我想进行替换引导,以估算从我的数据中获得max(df $ X)= 0.8的可能性。为此,我可以从X中提取n个引导程序样本,并计算每个样本的最大值。然后,我可以获取每个max(sample)的标准偏差,并查看距此st dev 0.8的距离。有谁知道如何用R做这个引导程序?任何建议都欢迎!
答案 0 :(得分:1)
x
中的 Bootstrapping ,其中 x是正常随机变量。需要提供statistic
函数,该函数至少需要data
和indices
作为其自变量。有关更多详细信息,请查阅boot
包的 R文档。
max_x
函数检查 max(x)是否与 被引导的示例的最大值相同。请注意,以下代码中考虑的测试数据(x)具有不同的最大值,但概念框架保持不变:
set.seed(101)
x <- rnorm(1000, mean= 0.4, sd= 0.2) # normally distributed test data
max_x <- function(data, indices){ m <- max(data[indices])
if (m == max(x)) { return(1)
} else{ return(0)}
}
results <- boot(data = x, statistic = max_x, R = 1000) # 1000 replications
mean(results$t == 1) # probability of max getting sampled
# 0.618
results
# ORDINARY NONPARAMETRIC BOOTSTRAP
# Call:
# boot(data = x, statistic = max_x, R = 1000)
# Bootstrap Statistics :
# original bias std. error
# t1* 1 -0.382 0.4861196
plot(results)