从具有由自举估计生成的不对称置信区间的分布中抽样随机数

机器算法验证 置信区间 随机变量 引导程序 随机生成
2022-04-14 11:46:23

所以,我正在解决一个问题,我有一个样本分布,其中包含来自初始总体的自举抽样的报告、均值和不对称置信区间(这是来自荟萃分析 - 所以,我也有自举的 #复制和原始样本大小)。鉴于这些信息,我想绘制一个随机变量(然后我将使用它来使用其他类似变量构建我自己的引导样本 - 基本上,元分析的元分析)。我确信这很简单,但我完全不知道如何做到这一点 - 是否有适当的分布可供借鉴或对报告的结果进行反向工程以创建一个?R 代码会很棒(如果有一个包可以做到这一点),或者只是一个看到这个参考,因为我正在画一个空白。

注意我认为我更大的问题是,如果你有人口的分位数,但没有其他分布知识或数据,是否有可能创建一种基于该信息绘制随机数的方法。但也许答案是否定的。

4个回答

我没有完整的答案给你,但有几个问题值得指出:

  1. 您不能从参数的置信区间中抽取随机值,因为它是一个常客概念,并且参数在常客统计中没有分布。您最多可以做的是尝试对参数估计的采样分布进行采样。
  2. 如果您想引导一项荟萃分析,请引导进入其中的研究。
  3. 大多数不对称置信区间在其他一些尺度上是对称的,通常是对数尺度。例如,优势比 (OR) 的典型置信区间被构造为 log(OR) 的对称置信区间,然后取幂。所以我肯定会检查对数变换是否会使置信区间对称。

在我看来,您的问题是不恰当的(Aniko 已经指出了这一点)。如果您知道均值,那么您对它的不确定性为零,因此置信区间的长度应该为零。

假设您以某种方式拥有适合您的均值权利,以及来自其他来源的置信区间,您可以对Johnson (1978) 的程序进行逆向工程,以得出原始分布偏度的度量 (另请参阅Chen (1995) 的扩展),然后选择具有所需属性的倾斜正态分布或(如果需要,移位)伽马分布。

更新:让我们看看 Johnson (1978) 公式 (2.7) 的置信区间:,我将原始分布的偏度称为如果给你平均值、下限、上限和样本量(我们必须在那里假设 iid 数据),那么[x¯+κ/6s2n]±tα(n1)s/nκxbarclcun

    talpha = qt(p=0.975,df=n-1)
    s = (cu - cl)*sqrt(n)/(2*talpha)
    kappa = 6*s*s*n*( cl - xbar + talpha*s/sqrt(n) )
    gamma.shape = 4/(kappa*kappa)
    gamma.scale = s/sqrt(gamma.shape)
    gamma.shift = xbar - gamma.shape*gamma.scale
    simulated.data = rgamma(n = simulated.n, shape = gamma.shape, scale = gamma.scale) + gamma.shift

看看它是否产生合理的结果。我更喜欢偏态正态分布,因为正态分布是一个标准参考,在伽马情况下可以使用skew.normal.shape= 0 而不是gamma.shape= infinity 生成,但计算更麻烦。

这是一个试图避免从置信区间采样的“不可能”问题的半生不熟的想法。如果你想对这些荟萃分析进行引导分析,你应该引导结果每个荟萃分析,而不是其潜在结果。唯一的问题是这些元分析具有不同的精度,因此您可能希望它们对 bootstrap 样本具有不同的权重。权重可能取决于进入每个荟萃分析的受试者总数,或置信区间的宽度(当然,它们是相关的)。在许多类似的情况下,逆方差加权结果是最佳的,所以我认为按样本量或置信区间宽度的平方反比加权将是合理的选择。当然,对于置信区间宽度,最好有一个区间在一定程度上对称的尺度,但对于比率,对数变换会(大约)做到这一点,即使对于引导区间也是如此。

同样,我不确定这将如何运作 - 您可能想要运行一些模拟研究,但这可能是一种更直接的方法。

不幸的是,有无数种分布可能导致给出的置信区间。从这些分布之一生成的一种选择是生成随机均匀,如果它低于 0.025(假设 95% 置信区间),则选择一个略低于置信下限的值,如果高于 0.975,则选择一个值略高于置信上限,否则选择 2 个置信限之间的统一值。

更现实一点是使用 R 中的 logspline 包。 oldlogspline 函数允许您将数据指定为间隔删失,因此您可以指定 5 个点来自低于置信下限,5 个点来自大于置信上限,190 分来自 2 个置信限之间。然后,这将给出一条平滑的曲线,其近似于您拥有的置信限,然后您可以将 190 个点中的一些从删失的区间更改为接近均值的实际值,以获得均值和不对称性。然后调整这些点的值,直到平均值和分位数足够接近。然后 roldlogspline 函数将从您创建的分布中生成数据。它可能不是生成引导均值和区间的确切分布,