在测试集上使用年份固定效果

时间:2017-04-18 15:09:31

标签: r

我有一套训练集,其中包含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

1 个答案:

答案 0 :(得分:0)

错误表示测试集中的级别从未出现在列车集中。 在进行预测之前和训练模型之后尝试model.2$xlevels$SEASON <- union(model.2$xlevels$SEASON, levels(df.test$SEASON))