r - 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)])
解决方案
进行以下更改:
- 创建模型时使用
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)
给予:
推荐阅读
- c++ - kbreakout 错误 qt.qpa.xcb:无法连接到显示器:0
- python - 在排序的单词列表中查找反转 - python
- angular - 将一个组件插入另一个父组件并传递数据
- jenkins - Jenkins Job DSL 配置块
- specflow - SpecFlow 在后面生成两个不同的代码,一个不起作用
- r - 如何修复多面 geom_col 图表看起来像原始图表?
- android - Dart:如何调用二维列表?
- angularjs - 将代码从 AngularJS 迁移到 ReactJS
- amazon-web-services - 通过 AWS API Gateway 集成模板使用 lastEvaluatedKey 扫描 DynamoDB
- java - 从 Java 的 ADFS SAML .NET 服务器获取请求令牌