emmeans 如何计算用于比较均值的置信区间

How does emmeans calculate confidence intervals used to compare means

我正在寻找有关 emmeans 如何计算在以下小插图中概述的均值图形比较中使用的置信区间的更多背景和文档: https://cran.r-project.org/web/packages/emmeans/vignettes/comparisons.html#graphical

在 "Graphical Comparisons" 部分中有一个我所指的示例。特别是,我对用于比较均值的带箭头的红线感兴趣。

上面写着:

If an arrow from one mean overlaps an arrow from another group, the difference is not “significant”.

但是用于比较均值的红线区间是如何计算的呢?这在某处记录了吗?

我同意这没有足够的文档记录,而且代码几乎是一堆意大利面条。但我会尽力解释。

首先,这些比较箭头显然 不是 置信区间。均值的置信区间由单独的选项提供。但比较箭头基于均值成对 差异 的置信区间。

令均值表示为 m_1、m_2、...、m_k,并令 d_ij = m_i - m_j 表示第 i 个和第 j 个平均值之间的差异。那么真实差异的 (1 - alpha) 置信区间为 (d_ij - e_ij, d_ij + e_ij),其中 e_ij 是差异误差;即,e_ij = t_alpha/2 * SE(d_ij)。因此,假设 m_i > m_j 使得 d_ij > 0,如果 d_ij > e_ij.[=11=,则 d_ij 具有统计显着性]

现在,如何获得比较箭头。这些是在 m_i 处绘制的;我们有一个长度为 L_i 的箭头从 m_i 指向左侧,还有一个长度为 R_i 的箭头从 m_i 指向右侧。比较意味着 m_i 和 m_j,并假设 m_i > m_j,我们建议查看箭头是否从 m_i 向左延伸,从 m_j重叠。所以,理想情况下,我们想要

L_i + R_j = e_ij   for all i, j such that m_i > m_j

如果我们能做到这一点,那么当且仅当 d_ij < e_ij.

时,两个箭头才会重叠

如果所有 e_ij 都相等,这很容易实现:只需设置所有 L_i = R_j = e_12/2。但是使用不同的 e_ij 值,它可能会也可能不会。 emmeans中的代码使用了加权回归的方法来求解上述方程。当 d_ij 接近 e_ij 时,我们给予更大的权重,因为在这些情况下,我们获得正确的箭头长度更为关键。并且我们必须进行测试以确保当差异显着时 L_i + R_j < d_ij,当差异不显着时 >= d_ij。

这就是它的本质。请注意,还有其他复杂问题需要处理:

  • 对于m_i的最低值,L_i完全是任意的;事实上我们甚至不需要显示那个箭头。对于最大均值 m_j,R_j 也是如此。事实上,当两个或多个 m_i 与最小值或最大值相关联时,可能会有额外的不需要的箭头。
  • 根据均值 k 的数量以及相关的最小值和最大值的数量,方程组可能欠定、超定或刚好。
  • 解决方案可能导致某些 L_i 或 R_j 为负数。那可就糟了!

所以,总而言之,我们尽力做到最好。尝试这样做的主要原因是鼓励人们永远不要使用 m_i 的置信区间作为测试比较 d_ij 的手段。这几乎总是不正确的。永远不要将一个均值的 误差幅度 与两个均值之差的 误差幅度 混淆。那是两种不同的动物。