所以我想绘制这个:
lmfit = lm(y~a + b)
但是,“b”只有零和一的值。因此,我想绘制两条独立的回归线,这些回归线是彼此并列的,以显示b对y轴截距的差异。所以在绘制之后:
样地(b,Y)
然后我想使用abline(lmfit,col="red",lwd=2)
两次,一次将b的x值设置为零,然后将其设置为一次。所以一旦没有包括这个词,一旦b只是1b。
重申:b是分类,0或1. a是连续的,具有轻微的线性趋势。
谢谢。
示例:
答案 0 :(得分:2)
您可能需要考虑将predict(...)
与b=0
和b=1
一起使用,如下所示。由于您没有提供任何数据,我使用内置的mtcars
数据集。
lmfit <- lm(mpg~wt+cyl,mtcars)
plot(mpg~wt,mtcars,col=mtcars$cyl,pch=20)
curve(predict(lmfit,newdata=data.frame(wt=x,cyl=4)),col=4,add=T)
curve(predict(lmfit,newdata=data.frame(wt=x,cyl=6)),col=6,add=T)
curve(predict(lmfit,newdata=data.frame(wt=x,cyl=8)),col=8,add=T)
答案 1 :(得分:1)
鉴于你开始使用添加lm模型,绘制线条非常简单,即使不完全直观。我用以下模拟数据测试了它:
y <- rnorm(30)
a <- rep(1:10,times=3)
b <- rep(c(1,0),each=15)
LM <- lm(y~a+b)
您必须访问lm中的系数值。它是:
LM$coefficients
这是一个棘手的部分,你必须为每一行分配系数。
第一个很简单:
abline(LM$coef[1],LM$coef[2])
另一个有点复杂,因为R使用加法系数,所以对于第二行你有:
abline(LM$coef[1]+LM$coef[3],LM$coef[2])
我希望这是你所期待的
答案 2 :(得分:0)
除非我误解了这个问题,否则你所要做的就是再次运行abline
但是在没有b
项的模型上运行abline(lm(y~a),col="red",lwd=2)
。
{{1}}