首页 > 解决方案 > 二项式线性模型拟合问题

问题描述

我是一名学生,正在为学校开展一个项目,我使用的示例代码有一条用于数据集的线性模型线(蓝色)。同时,当我用我的数据运行完全相同的代码时,它会给我两条蓝线,而不是我想要的一条对角线。我不知道我做错了什么/我的数据和示例数据集之间的区别是什么。任何帮助将不胜感激!

示例代码:

drunkdoor <- read_csv("https://uoepsy.github.io/data/drunkdoor.csv")
head(drunkdoor)
ggplot(drunkdoor, aes(x=age, y=notice)) + geom_point()+geom_smooth(method = "lm", se = FALSE, fullrange = TRUE) + xlim(30, 80)

示例数据头 + 图表

我的代码:

data1 <- read_csv('https://uoepsy.github.io/data/dapr2_2021_nullsit_data.csv')
head(data1)
ggplot(data1, aes(x = z_test, y = intervention1)) + geom_point() + geom_smoot(method = "lm)

我的数据头 + 图表

标签: rggplot2

解决方案


不同之处在于,在示例图中,y当您使用字符值时,它们使用数值。解决这个问题的一种方法是指定“组”值,以便 ggplot 知道哪些点集应该在同一行中。如果您在其中使用group=1aes()它将知道将所有点组合在一起并绘制一条线(而不是每个字符值的一条线)

ggplot(data1, aes(x = z_test, y = intervention1, group=1)) + 
  geom_point() + 
  geom_smooth(method = "lm")

或者,您可以将值更改为数值

ggplot(data1, aes(x = z_test, y = ifelse(intervention1=="control",0,1))) + 
  geom_point() + 
  geom_smooth(method = "lm")

请注意,这两行是不同的,因为它将值在 y 轴上以不同的顺序排列。您需要决定是要“控制”在顶部还是“控制”在底部。


推荐阅读