问题描述
我需要在中位数附近获得90%的置信区间。
x <- c(251,108,27,18,195,82,222,38,81,181,140,21,43,47,15,37,46,107,19,178,95,130,60,34,48,219,338,78,117,62,40,52)
MedianCI(x,conf.level=0.9)
结果是
median lwr.ci upr.ci
70 46 108
attr(,"conf.level") [1] 0.9498975
它生成0.949水平的区间,但我想要0.9。正确的方法是什么?正确答案应该是(70,47,108)。
解决方法
这里有两个主要问题。
-
书中给出的方法是近似的。正如作者指出的那样,对于大多数大样本数据集来说可能还不错,但实际上它比“ {正确””要比
实现的方法更远。MedianCI
-
尤其是对于小型数据集,置信区间(无论如何计算)不太可能与数据集中的观察值完全一致:这就是作者说的原因
方程式的结果舍入到下一个整数,并且置信区间的边界在数据集中的两个值之间。
(我不清楚为什么对CI下限和上限均进行四舍五入;我希望将它们对上限进行四舍五入,对下限进行下舍...)>
通过给您0.949的置信区间,而不是您要求的0.9,置信MedianCI
是保守的(CI的典型定义是至少包含真实值 的区间x%的时间);置信度0.89-0.94将给您0.949,而0.79-0.88则为0.889。
如果您对我的回答的技术细节有后续疑问,您可能应该在CrossValidated上提问。我不知道R包中是否有一个方便的内置函数来实现书中给出的近似方法(尽管只需要入门级R技能即可实现;如果您想尝试,试一试,卡住时可以随意问另一个问题...)