How to plot a comparisson of two fixed categorical values for linear regression of another continuous variable

前端 未结 3 1188
情书的邮戳
情书的邮戳 2021-01-25 01:42

So I want to plot this:

lmfit = lm (y ~ a + b)

but, \"b\" only has the values of zero and one. So, I want to plot two separate regre

相关标签:
3条回答
  • 2021-01-25 02:25

    Given you have an additive lm model to begin with, drawing the lines is pretty straightforward, even though not completely intuitive. I tested it with the following simulated data:

    y <- rnorm(30)
    a <- rep(1:10,times=3)
    b <- rep(c(1,0),each=15)
    
    LM <- lm(y~a+b)
    

    You have to access the coefficient values in the lm. Its is:

    LM$coefficients
    

    Here comes the tricky part, you have to assign the coefficients for each line.

    The first one is easy:

    abline(LM$coef[1],LM$coef[2])
    

    The other one is a bit more complicated, given R works with additive coefficients, so for the second line you have:

    abline(LM$coef[1]+LM$coef[3],LM$coef[2])
    

    I hope this is what you was expecting

    0 讨论(0)
  • 2021-01-25 02:38

    You might want to consider using predict(...) with b=0 and b=1, as follows. Since you didn't provide any data, I'm using the built-in mtcars dataset.

    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)
    

    0 讨论(0)
  • 2021-01-25 02:41

    Unless I've misunderstood the question, all you have to do is run abline again but on a model without the b term.

    abline(lm(y~a),col="red",lwd=2)
    
    0 讨论(0)
提交回复
热议问题