R:95%置信区间内的载体的最小值,最大值,平均值和中位数(2.5至97.5百分位数)

时间:2015-02-09 21:04:29

标签: r max mean percentile quantile

我运行了1000次迭代,使用rnorm生成正常偏差并将其保存在矢量中:

rvec <- rnorm (1000, mean = 0.143927671, sd = 0.110680809)

我需要在95%置信区间(2.5到97.5百分位数)内找到一个向量的最小值,最大值,平均值和中位数,R中是否有任何函数可以做到? 我试图使用apply,但它似乎没有给出我想要的东西:

rmax = apply(rvec, 2, max, c(.025, 0.975))

所以我想基于随机样本/该群体的子集来估计人口的最小/最大/平均值/中位数

在Excel中有一个AddIn for MonteCarloanalysis,但我想在R中这样做。

谢谢!

2 个答案:

答案 0 :(得分:1)

基于样本S获得中值置信区间的一种方法是采用S的自举重采样,计算每个样本的中值。让我们以你的例子为例(设置随机种子的可重复性):

set.seed(100)
rvec <- rnorm (1000, mean = 0.143927671, sd = 0.110680809)
samp.medians <- replicate(500, median(sample(rvec, length(rvec), replace=T)))
summary(samp.medians)
#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#  0.1327  0.1425  0.1480  0.1473  0.1505  0.1615 
quantile(samp.medians, c(0.025, 0.975))
#      2.5%     97.5% 
# 0.1377611 0.1574934 

答案 1 :(得分:1)

有一个单独的概念,即当前估计所代表的可能分位数周围的置信区间。例如,如果您取10个样本的中位数, 估计分布的第50个百分位数,但它是估计值,因此存在一些错误。要获得估计所代表的分位数范围,可以使用

中的binom.test
binom.test(x=sum(rvec>median(rvec)),n=length(rvec),conf.level=0.95)
#> [some text omitted from the output of binom.test]
#> 95 percent confidence interval:
#>  0.4685492 0.5314508

表示median(rvec)可能在基础分布的第46.9百分位数和第53.1百分位数内,95%的置信度。

请注意,自举会为您提供一个范围,其中潜在分布的真实中位数可能会落在其中,但对于偏差估计值(例如&#39; min&#39; a&#39; max&#39;,经验估计(例如max(rvec))是有偏见的。但是,上述方法将为您提供您最喜欢的统计量(最小值/最大值/中位数/平均值,第75百分位数等)可能落入的分布百分位数的置信区间。