为了帮助在此处填充R标签,我发布了一些我经常从学生那里收到的问题。多年来,我已经针对这些问题提出了自己的答案,但是也许还有一些我不知道的更好的方法可以解决。

问题:我只对连续的yx进行了回归,但对因子f进行了回归(其中levels(f)产生了c("level1","level2")

 thelm <- lm(y~x*f,data=thedata)


现在,我想按y定义的组细分xf预测值。我得到的所有图都很丑陋,显示的线条太多。

我的答案:尝试predict()函数。

##restrict prediction to the valid data
##from the model by using thelm$model rather than thedata

 thedata$yhat <- predict(thelm,
      newdata=expand.grid(x=range(thelm$model$x),
                          f=levels(thelm$model$f)))

 plot(yhat~x,data=thethedata,subset=f=="level1")
 lines(yhat~x,data=thedata,subset=f=="level2")


是否还有其他想法(1)对于新来者更容易理解和/或(2)从其他角度来看更好?

最佳答案

效果包具有用于可视化回归预测值的良好绘图方法。

thedata<-data.frame(x=rnorm(20),f=rep(c("level1","level2"),10))
thedata$y<-rnorm(20,,3)+thedata$x*(as.numeric(thedata$f)-1)

library(effects)
model.lm <- lm(formula=y ~ x*f,data=thedata)
plot(effect(term="x:f",mod=model.lm,default.levels=20),multiline=TRUE)

10-08 15:10