绘制逻辑回归的预测

Plotting predictions from a logistic regression

我正在尝试在 R 中绘制逻辑回归。我目前有这段代码...

mylogit<- glm(Breeding.success ~ Dam.Age, family = binomial, data = captive)
summary(mylogit)

predicted.data<- as.data.frame(predict(mylogit, type="response", se=TRUE))
summary(predicted.data)

new.data <- cbind(captive, predicted.data)

graph <- ggplot(captive, aes(x=Dam.Age, y=Breeding.success)) +
geom_point()+
stat_smooth(method="glm", method.args = list(family="binomial"), se=FALSE) +
labs(x="Dam age", y="Breeding success")

我目前有一个带有直线的图形,我希望它是弯曲且平滑的。我也在努力绘制置信区间。任何建议都很好,谢谢。

我可以给你实际使用的数据 - http://datadryad.org/resource/doi:10.5061/dryad.58ff4

我正在复制一些图表作为最后一年项目的一部分。该代码是针对危害绘制的繁殖成功率。

主要问题是您绘制的逻辑曲线在您获得的数据范围内近似线性(当预测概率在范围从 0.3 到 0.7)。

您可以通过在 geom_smooth() 调用中指定 se=TRUE 来获取图上的标准错误 ...

在下面的图中,我 (1) 使用 stat_sum() 而不是 geom_point() 来可视化数据集中的重叠点; (2) 使用 fullrange=TRUE 获得整个绘图范围内的预测(而不仅仅是数据实际跨越的范围); (3) 使用 expand_limits() 将图表推到较大的年龄值,以说明如果将其扩展到足够低或足够高的预测概率,预测看起来确实是非线性的(要获得高概率,您需要使年龄为负...)

download.file("http://datadryad.org/bitstream/handle/10255/dryad.141600/All%20females%20breeding%20success.csv?sequence=1",dest="breeding_success.csv")

captive <- read.csv("breeding_success.csv")
library(ggplot2)
graph <- ggplot(captive, aes(x=Dam.Age, y=Breeding.success)) +
    stat_sum()+
    stat_smooth(method="glm",
                method.args = list(family="binomial"), se=TRUE,
                fullrange=TRUE) +
    labs(x="Dam age", y="Breeding success")+
    expand_limits(x=20)