我正在尝试预测模型,但它显示错误:
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)
在中,使用参数时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] 删除。
我来说两句