r - R 中的线性回归:警告:“newdata”有 1 行,但发现的变量有 392 行
问题描述
我试图预测 R 中的单个变量,我已经尝试了所有方法,但仍然没有结果。
我正在使用自动数据,我建立了一个这样的模型
my_acc<-auto_df$acceleration
my_horse<-auto_df$horsepower
mydata <- data.frame(my_acc, my_horse )
car_linear_regression <- lm(my_acc ~ my_horse, mydata )
然后我继续,我想预测以下内容:
与93.5acceleration
相关的预测值是多少?horsepower
相关的 99% 置信区间和预测区间是多少?
我使用以下代码并收到警告
警告:“newdata”有 1 行,但找到的变量有 392 行
但也打印出数据框中的所有行,而我应该只得到一个。
有人可以帮忙吗?
predict(car_linear_regression,newdata = data.frame(horsepower = 93.5))
解决方案
这将有助于使示例可重现,但我做了一些工作并且能够重现错误:
library(ISLR)
auto_df = Auto
my_acc<-auto_df$acceleration
my_horse<-auto_df$horsepower
mydata <- data.frame(my_acc, my_horse )
car_linear_regression <- lm(my_acc ~ my_horse, mydata )
predict(car_linear_regression,newdata = data.frame(horsepower = 93.5))
问题在于您的模型中没有名为horsepower
. 您调用了它my_horse
,因此以下工作:
predict(car_linear_regression,newdata = data.frame(my_horse = 93.5))
作为旁注,我不会创建单独的变量,而是将回归模型称为:
car_linear_regression <- lm(acceleration ~ horsepower, data=auto_df )
那么你最初的预测就会奏效。
推荐阅读
- python - 哇,改变缩进破坏了我的程序?
- spring-boot - 设置 DNS 记录后 Spring Boot API 端点不起作用
- javascript - 箭头函数中的隐式返回
- c++ - 有什么方法可以将数据转换成双倍吗?
- c - 修改链表节点数据
- python-3.x - 在嵌套列表 2 中从嵌套列表 1 中查找元素并替换元素
- python - doc2vec 模型是否对非字典单词提供准确性?
- bash - 让 Gitlab 项目调用存储在中心位置的相同 gitlab-ci.yml
- c# - 使用 Html Agility Pack 解析特殊字符时的奇怪输出
- php - 使用 json_decode 的变量