如何绘制另一个连续变量的线性回归的两个固定分类值的比较

时间:2014-11-12 20:16:50

标签: r plot statistics linear-regression

所以我想绘制这个:

  

lmfit = lm(y~a + b)

但是,“b”只有零和一的值。因此,我想绘制两条独立的回归线,这些回归线是彼此并列的,以显示b对y轴截距的差异。所以在绘制之后:

  

样地(b,Y)

然后我想使用abline(lmfit,col="red",lwd=2)两次,一次将b的x值设置为零,然后将其设置为一次。所以一旦没有包括这个词,一旦b只是1b。

重申:b是分类,0或1. a是连续的,具有轻微的线性趋势。

谢谢。

示例:

comparison of different states of a categorical variable

3 个答案:

答案 0 :(得分:2)

您可能需要考虑将predict(...)b=0b=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}}