gpt4 book ai didi

r - 逻辑回归预测的置信区间

转载 作者:行者123 更新时间:2023-12-03 05:37:35 24 4
gpt4 key购买 nike

在 R 中,predict.lm 根据线性回归的结果计算预测,并提供计算这些预测的置信区间。根据手册,这些区间是基于拟合的误差方差,而不是基于系数的误差区间。

另一方面,predict.glm 基于逻辑回归和泊松回归(以及其他一些回归)计算预测,没有置信区间选项。我什至很难想象如何计算这样的置信区间,以便为泊松和逻辑回归提供有意义的见解。

在某些情况下,为此类预测提供置信区间是否有意义?如何解释它们?这些情况下的假设是什么?

最佳答案

通常的方法是计算线性预测器尺度上的置信区间,其中情况会更正常(高斯),然后应用链接函数的反函数将置信区间从线性预测器尺度映射到 react 量表。

为此,您需要做两件事;

  1. 使用 type = "link" 调用 predict(),并且
  2. 使用 se.fit = TRUE 调用 predict()

第一个生成线性预测器规模的预测,第二个返回预测的标准误差。伪代码

## foo <- mtcars[,c("mpg","vs")]; names(foo) <- c("x","y") ## Working example data
mod <- glm(y ~ x, data = foo, family = binomial)
preddata <- with(foo, data.frame(x = seq(min(x), max(x), length = 100)))
preds <- predict(mod, newdata = preddata, type = "link", se.fit = TRUE)

preds 是一个包含组件 fitse.fit 的列表。

线性预测变量的置信区间为

critval <- 1.96 ## approx 95% CI
upr <- preds$fit + (critval * preds$se.fit)
lwr <- preds$fit - (critval * preds$se.fit)
fit <- preds$fit

critval 根据需要从 tz(正态)分布中选择(我现在完全忘记哪个用于哪种类型GLM 以及属性是什么)以及所需的覆盖范围。 1.96 是覆盖率达到 95% 的高斯分布值:

> qnorm(0.975) ## 0.975 as this is upper tail, 2.5% also in lower tail
[1] 1.959964

现在,对于 fituprlwr,我们需要对它们应用链接函数的逆函数。

fit2 <- mod$family$linkinv(fit)
upr2 <- mod$family$linkinv(upr)
lwr2 <- mod$family$linkinv(lwr)

现在您可以绘制所有三个和数据。

preddata$lwr <- lwr2 
preddata$upr <- upr2
ggplot(data=foo, mapping=aes(x=x,y=y)) + geom_point() +
stat_smooth(method="glm", method.args=list(family=binomial)) +
geom_line(data=preddata, mapping=aes(x=x, y=upr), col="red") +
geom_line(data=preddata, mapping=aes(x=x, y=lwr), col="red")

enter image description here

关于r - 逻辑回归预测的置信区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14423325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com