我正在使用自举测量数据中位数的误差。我想获得关于我的数据的 sigma 误差线,所以我正在测量我的数据的第 16 个和第 84 个百分位数。我是否应该将这些百分位值除以数据数量的平方根?提前致谢。
分布的百分位数
机器算法验证
分位数
中位数
2022-03-26 02:42:58
3个回答
既然您是自举,为什么不采用所有观察到的中位数并计算样本标准差并将其用作的估计量?
如果我理解你的意图,那么答案是“不”,不要分裂。作为引导过程的一部分,样本量被考虑在内。当然,如果一切都是正态分布的,那么使用的值大部分都是有意义的,你正在引导的事实使得这似乎是一个不太可能的假设。偏度真的可以解决这个问题。您是否将第 16 位到第 84 位的距离除以 2?如果不是,那可能就是为什么你认为你需要潜水的原因。
一般来说(最好在这里检查我是否理解你,即使这种方法适用于你的情况)你可以通过一些模拟来回答这样的问题。模拟一个数据集并进行上述分析,计算两种方式的值,看看哪个最接近模拟中的“真实”值。使用不同的样本大小重复该过程,也可以从不同的分布进行模拟。经过几次模拟后,是否划分应该变得相当清楚。
遵循格雷格和索克利开发的路线,这是一个计算中位数估计值的(自举)标准误差的函数:
median.w.se = function(vec,B){
# Inputs: vector of data (vec)
# number of bootstrap replicates (B)
# Outputs: list with estimates of median and standard error
empty.vec = rep(NA,B)
for(i in 1:B){
curr.sample = sample(vec,length(vec),replace = TRUE)
curr.med = median(curr.sample)
empty.vec[i] = curr.med
}
lst = list(median = mean(empty.vec), se = sd(empty.vec))
return(lst)
}
data(iris)
median.w.se(iris$Sepal.Length,1000)
其它你可能感兴趣的问题