绘制逻辑回归的预测
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)
我正在尝试在 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)