我知道如何找到正态分布的 95% 置信区间。但是当有异常值时如何找到它?
问题:数据集中显示了 20 名 75 岁或以上男性的医疗保健费用,以千美元为单位。计算这些人的平均医疗保健费用的 95% 置信区间。
数据集 = [8.5, 8.0, 16.0, 12.0, 2.5, 515.0, 5.0, 15.0, 13.0, 2.0, 950.0, 15.0, 9.0, 6.0, 12.0, 5.5, 19.5, 7.5, 37.5, 12.5]
我知道如何找到正态分布的 95% 置信区间。但是当有异常值时如何找到它?
问题:数据集中显示了 20 名 75 岁或以上男性的医疗保健费用,以千美元为单位。计算这些人的平均医疗保健费用的 95% 置信区间。
数据集 = [8.5, 8.0, 16.0, 12.0, 2.5, 515.0, 5.0, 15.0, 13.0, 2.0, 950.0, 15.0, 9.0, 6.0, 12.0, 5.5, 19.5, 7.5, 37.5, 12.5]
Bootstrap 可能是执行此操作的一种方法。在蟒蛇...
from sklearn.utils import resample
import numpy as np
x = np.array([8.5, 8.0, 16.0, 12.0, 2.5, 515.0, 5.0, 15.0, 13.0, 2.0, 950.0, 15.0, 9.0, 6.0, 12.0, 5.5, 19.5, 7.5, 37.5, 12.5])
xb = np.array([ resample(x).mean() for j in range(10000)])
low, high = np.quantile(xb, [0.025, 0.975])
这产生 (9.95 , 200.72) 的引导 CI。
但是,我认为有一些因素推动了更高的成本。因为您的数据来自老年患者,我想有些患者比其他患者有更多的合并症,这可能会导致并发症并因此产生更高的费用。在没有额外信息或对数据生成过程的强烈假设的情况下,我认为这将是你能做的最好的。
R 的快速初步结果:
x=c(8.5, 8.0, 16.0, 12.0, 2.5, 515.0, 5.0, 15.0, 13.0, 2.0,
950.0, 15.0, 9.0, 6.0, 12.0, 5.5, 19.5, 7.5, 37.5, 12.5)
summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
2.000 7.125 12.000 83.575 15.250 950.000
(1) 均值的 t 区间。假设正常数据,这在这里似乎是一个糟糕的假设。
t.test(x)
...
95 percent confidence interval:
-25.47337 192.62337
(2) 人口中位数的非参数 Wilcoxon CI。由于您的数据存在关联,可能会稍微不准确。
wilcox.test(x, conf.int=T)
...
95 percent confidence interval:
8.500058 21.750047
(3) 总体均值的 95% 非参数引导分位数 CI:
set.seed(2020)
a.re=replicate(10^4, mean(sample(x, rep=T)))
quantile(a.re, c(.025,.975))
2.5% 97.5%
9.9750 200.5269
酌情留下评论/问题。以后再说。