R语言线性回归模型预测报错:原因排查与修复方案
报错原因与修复方案
报错原因
你的线性回归模型是基于自变量dt训练的,但用于预测的数据框Temperature_predicted_temperature中,自变量列名是Year而非dt。predict()函数要求预测数据必须包含和训练模型时完全一致的变量名,因此出现变量不匹配的错误。
修复方法
有两种简单的修复方式:
方式一:修改预测数据框的列名为dt
直接将预测数据框的列名调整为模型要求的dt:
Regression_Africa <- Mean_temperature_by_dt %>% filter(Country == "Africa", dt >= 1850 & dt <=2013) Regression_Africa <- lm(AverageTemperature ~ dt, data = Regression_Africa) # 修改列名为dt Temperature_predicted_temperature <- data.frame(dt = c(2015, 2016, 2020)) predict(Regression_Africa, Temperature_predicted_temperature) %>% round(1)
方式二:在预测时临时映射变量
如果不想修改原数据框列名,可以在predict时临时将Year重命名为dt:
Regression_Africa <- Mean_temperature_by_dt %>% filter(Country == "Africa", dt >= 1850 & dt <=2013) Regression_Africa <- lm(AverageTemperature ~ dt, data = Regression_Africa) Temperature_predicted_temperature <- data.frame(Year = c(2015, 2016, 2020)) # 临时重命名后再预测 predict(Regression_Africa, data.frame(dt = Temperature_predicted_temperature$Year)) %>% round(1)
内容的提问来源于stack exchange,提问作者Rizzle
相关产品推荐
相关产品推荐

