R语言Data Frame与置信水平预测报错:找不到WinterSprings对象
问题解决方法
错误原因
你的回归模型Chargeslm依赖训练数据中的WinterSprings、WinterPark、Oviedo三个城市哑变量,但测试数据集TEST既没有包含这三个必需变量,还引入了模型从未见过的City列,导致预测时无法找到模型需要的变量。
解决方案
根据你的实际需求选择以下两种处理方式:
1. 目标城市属于训练数据中的三个城市之一
直接在测试数据中生成与模型匹配的哑变量列,对应城市设为1,其余设为0。例如,若目标城市是WinterSprings,代码如下:
TEST <- data.frame(Age = 35, BMI = 26, Children = 1, Female = 1, Smoker = 0, WinterSprings = 1, WinterPark = 0, Oviedo = 0) predict(Chargeslm, newdata = TEST, interval = "confidence", level =.95)
如果是WinterPark或Oviedo,只需将对应列设为1,其余两个城市列设为0即可。
2. 目标城市Sanford是训练数据中没有的新城市
模型无法对从未学习过的城市特征进行预测,此时有两种选择:
- 排除该样本,仅对训练数据中存在的城市进行预测;
- 将Sanford加入原始城市变量,重新对城市进行哑编码,更新数据集后重新训练模型,再进行预测。
内容的提问来源于stack exchange,提问作者jonathan marin
相关产品推荐
相关产品推荐

