首页 > 解决方案 > R - 不包括在线性回归图中的预测变量

问题描述

这是相关的代码片段。如何让预测变量显示在图中?

df <- data.frame(X = 2010:2022, Y = c(11539282, 11543332, 11546969, 11567845, 11593741, 11606027, 11622554, 11658609, rep(NA, 5)))

model.1 <- lm(formula = Y ~ X, data = df)
predict(object = model.1, newdata = df)
plot(X, Y, ylim=c(11500000,11750000))
lines(sort(X), fitted(model.1)[order(X)])

标签: rlinear-regression

解决方案


进行以下更改:

  1. 创建模型时使用na.action = na.exclude
  2. 使用公式方法plotlines
  3. 用作 fitted(model.2)预测值
  4. 不需要排序,因为X已经排序

给出这个代码:

model.2 <- lm(Y ~ X, df, na.action = na.exclude)
plot(Y ~ X, df)
lines(fitted(model.2) ~ X, df)

或使用abline在这种情况下可以使用这个较短的代码:

model.3 <- lm(Y ~ X, df)
plot(Y ~ X, df)
abline(model.3)

无论哪种情况,我们都会得到以下输出:

截屏

添加

根据评论中的澄清,我们可以这样做(或者如果您想要更大的范围,请尝试ylim = extendrange(pred, f = .10)将范围扩大 10%,例如,在任一侧)。

pred <- predict(model.3, df)
plot(Y ~ X, df, ylim = range(pred))
lines(pred ~ X, df)

给予:

截屏


推荐阅读