为什么我在 predict.lm “可变长度不同”中遇到错误?

珍妮·朱尼

我正在尝试预测模型,但它显示错误:

Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) : 
  variable lengths differ (found for 'Welfare.Measurment')

测试和训练数据相似,变量名称和结构相同。我什至尝试了rbind这两个数据框,但错误仍然存​​在。

这是代码:

model3 <- lm(log(Poverty.Line.Day) ~ (log(data_abs$Median)) + 
              Welfare.Measurment + Control, data=data_abs)

predicted_poverty_Line <- 
  exp(predict(model3, dataF))*exp((summary(model3)$sigma)^2/2)
杰伊.sf

在中,使用参数时lm不要使用$in 公式。data=

fit1 <- lm(y ~ train$X1 + X2, data=train)  ## predict will fail
predict(fit1, newdata=test)
# Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = obje
# ct$xlevels) : 
#   variable lengths differ (found for 'X2')

fit2 <- lm(y ~ X1 + X2, data=train)  ## predict will work
predict(fit2, newdata=test)

原因:如果你train$X1在公式中使用 eg ,变量将被固定,即使你提供newdata=in predict,也会使用旧值。如果向量不是意外长度相同,您将收到此错误。


数据:

n <- 60
set.seed(42)
dat <- data.frame(X1=rnorm(n), X2=rnorm(n))
dat <- transform(dat, y=1 + X1 + rnorm(n))
train <- dat[1:20, ]
test <- dat[21:n, ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R:使用 lm 时可变长度不同的错误

滚动应用lm时可变长度不同的错误

`predict.lm`函数中的参数

lm公式的可变长度不同

R predict() 要求排除在 lm() 回归模型中的变量

我正在尝试基于使用 predict.lm() 的回归来预测新值,但结果显示新值的数量错误

在R中使用lm时,可变长度会产生不同的错误

为什么 R 中的 LM 预测函数会在我的输出中添加一行

R中的predict.lm错误:因子as.factor(每天)具有新的级别2

为什么我的CNN中无法将图像数据放入model.predict中?

当我使用model.predict时,为什么在keras中得到全1?

为什么计算的残差在 R 函数 `lm()` 和 `lm.fit()` 之间不同

如何编辑 predict.lm() 使用的模型矩阵中的交互作用?

为什么内置的lm函数在R中这么慢?

为什么在使用 predict() 时拟合结果如此不同?

为什么 R.predict.svm 返回错误大小的列表?

为什么在MinGW中不需要标志-lm,但是在Linux中我需要显式的标志?

在R中使用基于具有不同对比度的model.matrix的predict.lm

为什么stackalloc接受可变长度?

在gcc中-lm是什么意思?

为什么我遇到错误?

从predict.lm()匹配R的置信区间

使用lm()和predict()进行滚动回归和预测

用置信区间绘制 predict.lm 结果

为什么我的lm模型不显示线性关系,但是在geom_smooth中显示线性关系?

lm()和predict.lm()的异常行为取决于显式命名空间访问器的使用

为什么MASS:lm.ridge系数与手动计算的系数不同?

是否有lm(。〜x,data)?我如何在lm公式中运行很多

为什么我的密码查询不能使用多个可变长度路径?