在同一图表上绘制线性和多重线性reg(ggplot)

时间:2018-01-29 15:17:35

标签: r ggplot2 lm

我有这样的数据框:

data <- data.frame(
  x=c(1:12)
  , case=c(3,5,1,8,2,4,5,0,8,2,3,5)
  , rain=c(1,8,2,1,4,5,3,0,8,2,3,4)
  , country=c("A","A","A","A","B","B","B","B","C","C","C","C")
  , year=rep(seq(2000,2003,1),3)

)

我想执行2次线性回归并在一张图上绘制它们。 简而言之,我想将案例的粗略趋势(简单lm)与案例的相同趋势进行比较,但这一时间根据同一图表调整为2000年至2003年的降雨量。

model<-lm(case~ year, data=data)

第二个是多元线性回归。我将此代码用于此目的,但不确定它是否理想。

modelrain<-lm(case~ I(year +rain), data=data)

我用简单的情节用abline做了,但不知道如何使用ggplot。我已经创建了一个新的数据帧,但似乎没有完美的工作(因此我不会在这里放置其余的代码)。

非常感谢

1 个答案:

答案 0 :(得分:0)

建立评论中的建议有三种有效的回归模型

model1<-lm(case~ year, data=data)
summary(model1)
model2<-lm(case~ year+rain, data=data)
summary(model2)
model3<-lm(case~ year*rain, data=data)
summary(model3)

由于数据有限,我们似乎并未进行大量工作。

关于如何使用ggplot绘制model1回归线的第一个问题只是:

ggplot(data,aes(x=year,y=case)) + geom_point() + geom_lm()

正如其他人所指出的那样,目前还不清楚用户3355655对雨的“调整”意味着什么(因为雨和年份不能真正存在于同一个x轴上),但如果我们愿意采取最简单的方法而只是治疗下雨作为一个“因素”然后:

ggplot(data,aes(x=year,y=case,color=factor(rain))) + geom_point() + geom_smooth(method="lm",fill=NA) + scale_y_continuous(limits = c(-1, 10))