我试图预测零售店的销售情况。以下是我的变量(您可以在很大程度上忽略ZipZone之外的变量值;它们的值与此问题基本无关):
storeId sales meanTemperature meanHumidity ZipZone
1 1350 56.78 61.12 0
2 1230 59.90 45.67 3
3 8476 63.54 49.87 3
4 4357 62.12 65.09 4
5 2314 69.78 68.99 4
6 7812 74.90 59.78 4
7 1350 56.78 61.12 6
8 1230 59.90 45.67 6
9 8476 63.54 49.87 6
10 4357 62.12 65.09 7
11 2314 69.78 68.99 7
12 7812 74.90 59.78 8
...
有50个唯一的storeId
值(即有50个商店)。我建立了一个回归模型:
model <- lm(sales ~ meanTemperature*meanHumidity + ZipZone)
我目前正在测试此模型在样本内和样本外预测方面的效果,因此我创建了inSample
和outSample
数据框(前者有40个商店;后者有10)。但问题是,我只在一个ZipZone
中有几个商店。例如,inSample
表具有存储1(ZipZone
0中的唯一存储),而outSample
表具有存储12(ZipZone
8中唯一的存储)。当我运行以下内容时:
pred <- predict(model, newdata = outSample)
我收到以下错误:
Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) :
因子ZIPzone有新的等级8
我认为这是因为inSample
在ZipZone
8中没有商店,而outSample
则存在。我该如何避免这个问题?