Logistic回归的预测和置信区间

时间:2016-08-05 21:03:59

标签: r statistics intervals prediction glm

下面是一组虚构的概率数据,我将其转换为带有threshold of 0.5的二项式。我在离散数据上运行了一个glm()模型,以测试从glm()返回的间隔是否意味着预测间隔是' ("置信区间")或'点预测区间'("预测区间")。从下面的图中可以看出,返回的区间是后者 - 点预测区间'请注意,95%的置信度,2/20点落在此样本的线外。

如果确实如此,我该如何生成平均预测间隔' (即,"置信区间")在R中,对于使用glm()绑定0和1的二项式数据集?请显示您的代码和与我的相似的情节,包括拟合线,给定概率,置信区间和#39;和预测间隔'。

# Fictitious data
xVal <- c(15,15,17,18,32,33,41,42,47,50,
         53,55,62,63,64,65,66,68,70,79,
         94,94,94,95,98)
randRatio <- c(.01,.03,.05,.04,.01,.2,.1,.08,.88,.2,
               .2,.99,.49,.88,.2,.88,.66,.87,.66,.90,
               .98,.88,.95,.95,.95)
# Converted to binomial
randBinom <- ifelse(randRatio < .5, 0, 1)

# Data frame for model
binomData <- data.frame(
  randBinom = randBinom,
  xVal = xVal
)

# Model
mode1 <- glm(randBinom~ xVal, data = binomData, family = binomial(link = "logit"))

# Predict all points in xVal range
frame <- data.frame(xVal=(0:100))
predAll <- predict(mode1, newdata = frame,type = "link", se.fit=TRUE)

# Params for intervals and plot
confidence <- .95
score <- qnorm((confidence / 2) + .5)
frame <- data.frame(xVal=(0:100))

#Plot
with(binomData, plot(xVal, randBinom, type="n", ylim=c(0, 1), 
                 ylab = "Probability", xlab="xVal"))
lines(frame$xVal, plogis(predAll$fit), col = "red", lty = 1)
lines(frame$xVal, plogis(predAll$fit + score * predAll$se.fit), col = "red", lty = 3)
lines(frame$xVal, plogis(predAll$fit - score * predAll$se.fit), col = "red", lty = 3)
points(xVal, randRatio, col = "red") # Original probabilities
points(xVal, randBinom, col = "black", lwd = 3) # Binomial Points used in glm

这是一个情节,大概有点预测间隔&#39; (即,&#34;预测间隔&#34;)用红色虚线表示,平均值为实心红色。黑点表示randRatio中原始概率的离散二项式数据:

enter image description here

1 个答案:

答案 0 :(得分:2)

我不确定你是否要求直接预测间隔,但如果你是,你可以简单地计算它。

您可以为模型提取传统的置信区间:

confint(model)

然后,一旦运行预测,您就可以根据预测计算预测间隔,如下所示:

upper = predAll$fit + 1.96 * predAll$se.fit
lower = predAll$fit - 1.96 * predAll$se.fit

您只是进行预测(在任何给定点,如果您使用一组预测变量)并添加和减去1.96 *标准误差的绝对值。 (1.96 se包括97.5%的正态分布,代表95%的区间,正如它对正态分布的标准差所做的那样)

这与传统置信区间使用的公式相同,只是使用标准误差(与标准偏差相反)会使区间更宽,以解决预测本身的不确定性。

<强>更新

Method for plotting prediction invervals courtesy of Rstudio!

按照要求......虽然不是我做的!