【问题标题】:Linear regression in R: Warning: 'newdata' had 1 row but variables found have 392 rowsR 中的线性回归:警告:“newdata”有 1 行,但发现的变量有 392 行
【发布时间】:2021-12-21 11:39:27
【问题描述】:

我正在尝试预测 R 中的单个变量,我已经尝试了所有方法,但仍然没有结果。

我正在使用 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 )

然后我继续,我想预测以下内容:

与 93.5 的 horsepower 相关联的预测 acceleration 是多少?相关的 99% 置信区间和预测区间是多少?

我使用以下代码并收到警告

警告:“newdata”有 1 行,但找到的变量有 392 行

但也打印出数据框中的所有行,而我应该只得到一个。

有人可以帮忙吗?


predict(car_linear_regression,newdata = data.frame(horsepower = 93.5))

【问题讨论】:

  • 我想查看数据或至少选择其中的一部分。使用dput获取可以解析的数据版本。

标签: r regression


【解决方案1】:

这将有助于使示例可重现,但我做了一些工作并且能够重现错误:

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 )

那么你最初的预测就会奏效。

【讨论】:

    猜你喜欢
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多