我想使用visreg()
重新创建在ggplot()
逻辑回归图的边界中找到的数据滴答。
我可以用geom_point()
绘制数据点,但是这些数据点在轴空间中,我想在边界中获取它们。
我尝试使用getAnywhere()
来查看visreg()
函数的源代码,但在那里看不到任何有用的信息。有任何想法吗?
可重现的示例:
library(ggplot2)
library(visreg)
y <- rep(c("0","1"), each = 50)
x <- c(rnorm(50,70,20),rnorm(50,30,20))
y <- as.numeric(y)
df <- data.frame(x,y)
glm1 <- glm(y~x, data = df, family = binomial)
visreg(glm1, type="conditional", scale = "response")
df$fit <- predict(glm1)
df$fit.response <- exp(df$fit)/(1+exp(df$fit))
# For simple ribbon
df$lower <- df$fit - predict(glm1, se.fit = TRUE)$se.fit
df$upper <- df$fit + predict(glm1, se.fit = TRUE)$se.fit
df$low.response <- exp(df$lower)/(1+exp(df$lower))
df$upp.response <- exp(df$upper)/(1+exp(df$upper))
ggplot(data = df, aes(x = x, y = fit.response))+
geom_ribbon(aes(x=x, ymin = low.response, ymax = upp.response), alpha = 0.3)+
geom_line(colour = "blue")+
geom_point(data = df, aes(x=x, y=y))+
theme_bw()
getAnywhere(visreg)