使用R,我想了解如何找到预测逻辑曲线的方程式(根据经验数据预测)。
我能找到的最接近的命令是来自stat_poly_eq
的{{1}}函数,并在使用ggplot2绘制曲线时使用。但是,我只能使用这种方法在图表上打印y = 0.48,但我想要整个方程式。
以下是一些R代码供参考:
library(ggpmisc)
请告知如何获得预测曲线的实际等式。
编辑:
我能够使用输出摘要中的系数找到预测曲线的方程,并将其应用于标准逻辑方程: y~1 /(1 + exp(-x))。以下是R代码供参考:
gg.disp.adults<- ggplot(sub.data, aes(x=SVL3, y=Disp01)) +
geom_point(size=4) +
stat_smooth( aes(y= Disp01), method="glm", method.args=list(family="binomial"), se=F) +
stat_poly_eq(aes(label=paste(..eq.label..,..rr.label..,sep="~~~~")),
rr.digits=3, coef.digits=2,
formula = y~1/(1+exp(-x)),
parse = TRUE) +
theme(axis.text.x=element_text(size=14, color="black"),
axis.text.y=element_text(size=14, color="black"),
axis.line=element_line(size=1),
axis.title.x=element_text(size=14),
axis.title.y=element_text(size=14),
panel.background=element_rect(fill="white")) +
ylab("Dispersal Probability") +
ylim(0,1)+
xlab("Adult SVL")
gg.disp.adults
...我无法发布新预测曲线的照片。
答案 0 :(得分:1)
由于getNullValue<type i need>();
只是对您的数据运行stat_smooth
,您可以执行相同的操作来恢复模型估算值。以下是一些包含一些数据的示例:
弥补数据:
glm(y ~ x, ...)
使用library(ggplot2)
set.seed(123)
d <- data.frame(x = rnorm(100, 0, 2))
d$y <- rbinom(100, 1, plogis(d$x))
进行调整。因此,glm
会报告您想要的等式:
fit
我们可以看到fit <- glm(y ~ x, data = d, family = binomial(link = "logit"))
fitted <- data.frame(x = d$x, y = predict(fit, type = "response"))
的预测值与fitted
行完全匹配:
stat_smooth