如何从回归模型中绘制线性和二次预测变量,同时还要控制其他变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从回归模型中绘制线性和二次预测变量,同时还要控制其他变量?相关的知识,希望对你有一定的参考价值。

这里有一些数据和模型。它由一个线性和二次预测变量(a和a2)和一个线性控制变量(b)组成。

library(data.table)
library(ggplot2)

d <- as.data.table(cbind(a = rnorm(50), b = rnorm(50), y = rnorm(50)))
d$a2 <- (d$a)^2

m <- lm(y ~ a + a2 + b, data = d)

我想绘制线性和二次效应,同时也控制b。

如果我只想要a和a2的效果,我已经找到了如何做到这一点:

ggplot(d,
       aes(x = a, y = y)) +
  geom_point() +
  geom_smooth(method = "lm",
              formula = y ~ x,
              aes(color = "linear"),
              se = FALSE) +
  geom_smooth(method = "lm",
              formula = y ~ x + I(x^2),
              aes(color = "quadratic"),
              se = FALSE) +
  theme_bw()

但是在控制b的同时又如何绘制呢?

答案

您可以添加另一个geom_line(),并传递另一个包含模型m中的预测值的数据框。

newdata <- tibble(a=seq(-3,3,0.1), a2=a^2, b=mean(d$b))
newdata$pr <- predict(m, newdata=newdata)

这里我使用的是b的平均值。

ggplot(d, aes(x = a, y = y)) +
  geom_point() +
...
  geom_line(data=newdata, aes(x=a, y=pr, col="Adjusted")) +
  theme_bw()

enter image description here

抱歉,忘记设置种子。

以上是关于如何从回归模型中绘制线性和二次预测变量,同时还要控制其他变量?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习--线性回归模型原理

十大经典预测算法----线性回归

吴恩达机器学习--线性回归

R语言用贝叶斯线性回归贝叶斯模型平均 (BMA)来预测工人工资|附代码数据

R语言线性回归

回归分析知识点归纳