【发布时间】:2019-04-19 00:36:34
【问题描述】:
我在同一个数据集上安装了 6 个lm() 模型和 1 个gam() 模型。
现在我想将它们全部绘制在一个情节中。我可以不在 ggplot 中再次定义模型来执行此操作吗?
我的情况是这样的
我有
model1 <- lm(y~1, data = data) %>% coef()
model2 <- lm(y~x, data = data) %>% coef()
model3 <- lm(y~abs(x), data = data) %>% coef()
...
model7 <- gam(y~s(x), data = data) %>% coef()
我可以将模型的存储系数提供给 ggplot 吗?
ggplot(data, mapping = aes(x = x, y = y)) +
geom_point() +
geom_abline(model1) +
geom_abline(model2) +
....
或者做是绘制模型预测线以手动填写参数的唯一方法:
ggplot(data, mapping = aes(x = x, y = y)) +
geom_point() +
geom_abline(intercept = model1[1]) +
geom_abline(slope = model2[2], intercept = model2[1]) +
geom_abline(slope = model3[2], intercept = model3[1]) +
...
示例代码
set.seed(123)
x <- rnorm(50)
y <- rweibull(50,1)
d <- as.data.frame(cbind(x,y))
model1 <- coef(lm(y~1, data = d))
model2 <- coef(lm(y~x, data = d))
model3 <- coef(lm(y~abs(x), data = d))
也欢迎为每条产品线/型号添加 SE 和图例。
【问题讨论】:
-
你想从 lm 对象中绘制什么?例如什么是您想要的一组图的示例,带有示例代码
-
添加了更多细节。看不出我怎么能举个例子..因为我不知道代码?
-
我们不需要绘图代码的示例,我们需要绘图的输入数据示例。我们需要可以复制/粘贴的代码,这些代码将生成您想要绘制的
lm和gam模型(它不一定是您的真实数据,但它需要是我们可以自己实际运行的东西,不是伪代码)。这样我们就可以测试可能的解决方案。 -
我所做的新编辑是否足够?
-
另外两件事:(a) 在随机抽奖之前
set.seed()很好,所以我们都得到相同的数字。set.seed(123)。 (b) 请更清楚你想要什么——它只是预测线吗?或者你也想要置信区间?你想用颜色和图例来区分线条吗?还是你不在乎?