绘制效果的标准误差

Plotting standard errors for effects

我有一个 lme4 模型,我有 运行 用于分层逻辑回归,我正在使用 effects 包绘制效果图。我想创建一个效果图,将均值的标准误差作为误差条。我可以将点估计值、95% 置信区间和标准误差放入数据框中。然而,标准误差似乎与置信限度参数不一致,请参见下面的常规 glm 示例。

library(effects)
library(dplyr)
mtcars <- mtcars %>%
mutate(vs = factor(vs))
glm1 <- glm(am ~ vs, mtcars, family = "binomial")
(glm1_eff <- Effect("vs", glm1) %>%
 as.data.frame())

  vs       fit        se     lower     upper
1  0 0.3333333 0.4999999 0.1580074 0.5712210
2  1 0.5000000 0.5345225 0.2596776 0.7403224

我的理解是,拟合列显示 am 概率等于 1 的点估计值,并且 lowerupper 对应于 95% 的置信区间am 等于 1 的概率。请注意,标准误差似乎与置信区间不对应(例如,.33+.49 > .57)。

这就是我的目标。与 95% 的置信区间相反,我想要一个带有 +- 均值标准误差的效果图。

标准误差是对数赔率而不是概率吗?有没有一种简单的方法可以将它们转换为概率并绘制它们以便我可以制作图表?

John Fox 分享了这个有用的回复:

From ?Effect: "se: (for "eff" objects) 效果的标准误差向量,在线性预测变量的尺度上。"所以标准误差在对数比值范围内。”您可以使用 delta 方法来获得概率范围内的标准误差,但这是非常不明智的,因为估计概率的渐近正态性的方法比对数赔率。Effect() 计算线性预测变量(logit 模型的对数赔率)尺度的置信限度,然后将它们逆变换为响应尺度(概率)。

创建自定义绘图所需的所有信息都在 Effect() 返回的 "eff" 对象中;对象的内容记录在 ?Effect.

顺便说一句,我同意 as.data.frame.eff() 方法可以改进,我会在有机会时这样做。特别是,报告响应尺度的影响和置信限度但显示线性预测尺度的标准误差会引起误解。

我先解谜,再回答 "show SE on the plot" 问题

  1. SE 之谜的解释:GLM 中的所有数学都需要在 link 尺度上完成,因为这是加法尺度(可以将东西加起来)。所以...

列 "fit" 中的值是预测的成功概率(或 "predictions on the response scale")。它们的值为 expit(b0) 和 expit(b0 + b1)。 expit() 是反逻辑函数。 SE 的规模为 link。响应量表上的 SE 没有多大意义,因为响应量表是非线性的(尽管在相同的 table 中包含响应统计数据和 link 量表有点奇怪)。 "lower" 和 "upper" 在响应量表上,因此这些是预测成功概率的 CI。它们被计算为 expit(b0 ± 1.96SE) 和 expit(b0 + b1 ± 1.96SE)。用给定的东西恢复这些值

library(boot) # inv.logit and logit functions

expit.pred_0 <- 1/3 # fit 0
expit.pred_1 <- 1/2 # fit 1
se1 <- 1/2
se2 <- .5345225

inv.logit(logit(expit.pred_0) - qnorm(.975)*se1)
inv.logit(logit(expit.pred_0) + qnorm(.975)*se1)
inv.logit(logit(expit.pred_1) - qnorm(.975)*se2)
inv.logit(logit(expit.pred_1) + qnorm(.975)*se2)
> inv.logit(logit(expit.pred_0) - qnorm(.975)*se1)
[1] 0.1580074
> inv.logit(logit(expit.pred_0) + qnorm(.975)*se1)
[1] 0.5712211
> inv.logit(logit(expit.pred_1) - qnorm(.975)*se2)
[1] 0.2596776
> inv.logit(logit(expit.pred_1) + qnorm(.975)*se2)
[1] 0.7403224
  1. 在响应(非加法)尺度上显示从 glm 计算的 SE 没有任何意义,因为 SE 仅在 link 尺度上加法.换句话说,将 SE 乘以响应标度(您设想的图的标度,y 轴上的概率)上的某个分位数是没有意义的。 CI 是从 link 尺度反向转换的点估计,因此对绘图有意义。

经常 看到研究人员绘制从线性模型计算的 SE 条,就像您想象的那样,即使所提供的统计数据来自 GLM。我猜这些 SE 在某种意义上是有意义的,但它们通常暗示着荒谬的后果(比如可能小于零或大于一的概率)所以......也不要那样做。