我遇到这样的问题:
样本数据:
library(tidyverse)
library(ggpubr)
a <- mtcars
reorganized <- a %>% gather (-mpg, key = "var", value = "value")
g <- ggplot(reorganized, aes(y = value, x = var)) +
stat_smooth(method="glm", se=TRUE, fill=NA,
method.args = list(family = "binomial"), fullrange = F) +
geom_smooth(method="glm", fill='red',
method.args = list(family = "binomial")) +
stat_regline_equation(
aes(label = paste(..eq.label.., ..adj.rr.label.., sep = "~~~~"))
)+
geom_point(aes(), alpha=2/10, shape=21, fill="blue", colour="black", size=0.2) +
facet_wrap(~var, nrow=1)+
theme_bw()
数据是reorganized
数据帧,具有3列:mpg,var,value
使用此代码,我想用逻辑回归线绘制面,用散点图绘制方程。但是,公式似乎不正确,它们仅具有y = b + ax
的形式,有时Radj不在绘图中
如何在此图中绘制逻辑回归的正确公式?
答案 0 :(得分:0)
似乎您正在尝试对非分类变量使用glm方法。这行不通。相反,您应该使用“黄土”或“ lm”方法。另外,要在每个构面内正确插入方程式,您可以控制方程式的位置和大小。代码如下(geom_smooth默认为“黄土”):
ggplot(reorganized, aes(y = value, x = mpg)) +
geom_smooth(se=TRUE, fill=NA, method.args=list(family="gaussian"), fullrange = F) +
stat_regline_equation( aes(label = paste(..eq.label.., ..adj.rr.label..,
sep = "~~~~")),
label.x.npc = "left", label.y.npc = "top", size = 2)+
geom_point(aes(), alpha=2/10, shape=21, fill="blue", colour="black", size=0.2) +
facet_wrap(~var, nrow=2)+
theme_bw()
默认情况下,geom_smooth设置为具有公式y〜x的黄土方法。这就是为什么方程式中只有y和x的原因。如果要使用其他公式,则应寻找如何在geom_smooth中自定义公式。