这是相关的代码段。如何获得预测变量以显示在图中?
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)])
答案 0 :(得分:1)
进行以下更改:
na.action = na.exclude
plot
和lines
使用公式方法fitted(model.2)
作为预测值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)
给予: