我有一套训练集,其中包含2000 - 2011年期间的数据,以及2012年至2016年期间的测试集。我在训练集(2000-2011期间)中运行了具有年固定效果的logit模型,并且我想使用测试集的预测值。
我在测试集(2012-2016)中添加年度固定效果时遇到了一些麻烦,因为训练集中使用的模型使用了完全不同的年份(2000-2011)。
如何调整这些差异?这是我面临的问题。有什么想法吗?
训练集模型:
model.2 <- glm(MAKE ~ NAME + DIST + DIST2 + DIST3 + SEASON +
GRASS + COLD49 + WINDY + ALTITUDE + PRECIP -1,
family = "binomial"(link = logit), data = df.train)
测试集模型:
df.test$model.2.predictions <- predict(model.2, newdata = df.test,
type = "response")
Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) :
factor SEASON has new levels 2012, 2013, 2014, 2015, 2016
答案 0 :(得分:0)
错误表示测试集中的级别从未出现在列车集中。
在进行预测之前和训练模型之后尝试model.2$xlevels$SEASON <- union(model.2$xlevels$SEASON, levels(df.test$SEASON))
。