在quantile.default(resid)中出错:不允许缺少值和NaN

时间:2018-03-27 08:14:09

标签: r linear-regression

考虑到特定数量的行和列,我试图预测模型训练所需的时间(sklearn的线性回归)。我创建了其他功能,例如获取行数和列数的日志和方块。

我已粘贴数据here。如您所见,数据集没有缺失值或NaN' s。

我尝试使用以下代码使用lm函数在R中运行线性回归模型 -

library(data.table)
df = fread(linreg_df_edited.csv)
lrmodel <- lm(time ~ rows + columns + volume + rows_log + columns_log + volume_log + row_sq + col_sq, data = df)

但是当我使用summary(lrmodel)请求模型摘要时,我收到以下错误

Error in quantile.default(resid) : 
  missing values and NaN's not allowed if 'na.rm' is FALSE

我的数据集没有任何缺失值,但在设置na.action=na.omit

后我仍尝试重建模型
lrmodel <- lm(time ~ rows + columns + volume + rows_log + columns_log + volume_log + row_sq + col_sq, df, na.action=na.omit)

我仍然得到同样的错误。我无法解决这个问题。我想也许一列被读作字符变量。但事实并非如此。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

请勿尝试立即对所有转换进行建模。你的电话是:

model <- lm(time ~ rows + columns + volume + rows_log + columns_log + volume_log + row_sq + col_sq, data = df)

相反,请执行:

model_lin <- lm(time ~ rows + columns + volume, data = df)
model_log <- lm(time ~ rows_log + columns_log + volume_log, data = df)
model_sq <- lm(time ~ row_sq + col_sq, data = df)

然后你会看到正方形是问题所在。他们正在生成NaN值。