[英]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
來獲得繪圖上的標准錯誤...
在下面的圖中,I(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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.