我正在使用效果包来绘制线性回归的交互效果,如下所示:
library(effects)
Model <- lm(drat~hp*cyl, data=mtcars)
plot(effect(term="hp*cyl",mod=Model,default.levels=10),multiline=TRUE)
如何更改限制以使它们从0-10开始?我试过ylim =(0,10),其他变化没有效果。或者,可以使用ggplot2以相同的方式绘制回归吗?
答案 0 :(得分:3)
这是ggplot2
版本:
library(effects)
library(ggplot2)
Model <- lm(drat~hp*cyl, data=mtcars)
ef <- effect(term = "hp:cyl", Model, default.levels = 9) # 9 because the breaks are nicer
ef2 <- as.data.frame(ef)
ggplot(ef2, aes(hp, fit, col = factor(cyl))) +
geom_line() +
labs(y = 'drat') +
ylim(0, 10)
答案 1 :(得分:2)
使用plot
功能,像这样设置ylim
plot(effect(term="hp*cyl",mod=Model,default.levels=10),multiline=TRUE,ylim=c(0,10))
答案 2 :(得分:2)
ggplot2
不知道如何处理课程数据,因此您需要在绘图前将效果数据转换为数据帧。然后,您可以将group=
与aes()
中的数据一起使用,以获取每个组的行数。
library(effects)
library(ggplot2)
Model <- lm(drat~hp*cyl, data=mtcars)
e<-effect(term="hp*cyl",mod=Model,default.levels=10)
ee<-data.frame(e)
ee$cyl<-factor(ee$cyl)
ggplot(ee, aes(x = hp, y = fit, group = cyl, colour = cyl)) +
geom_line() +
scale_y_continuous(limits = c(0,10))