ARIMA模型预测异常:仅输出单值导致绘图空白求助
问题分析与解决
你的核心问题是predict.arima()默认只生成1步预测值,而非你需要的7天序列,导致绘图仅显示单个点,看起来像空白。以下是修正方案:
关键修改点
- 调用
predict()时必须指定n.ahead = 7,明确要求生成7天的预测结果 - 建议先将原始数据转换为时间序列对象(
ts),让模型准确识别时间维度,避免索引混乱
完整修正代码
# 将数据转换为时间序列对象,frequency=7表示按周(7天)循环 yeovilton_ts <- ts(nov_data$Yeovilton, frequency = 7) # 拟合ARIMA模型 arima_mod <- arima(yeovilton_ts, order = c(1,1,1)) # 生成未来7天的预测结果 forecast2 <- predict(arima_mod, n.ahead = 7) # 绘图:同时展示原始数据与预测结果(更直观) plot(yeovilton_ts, main = 'Yeovilton最高气温预测', xlab = 'Day', ylab = 'Temperature °C', ylim = range(c(yeovilton_ts, forecast2$pred))) lines(forecast2$pred, col = 'red', lwd = 2) legend('topright', legend = c('原始数据', '预测值'), col = c('black', 'red'), lwd = 2)
代码说明
ts()函数将原始向量转为时间序列,frequency=7告知模型数据的周循环特性,提升预测合理性n.ahead=7强制模型生成未来7个时间步的预测值,此时forecast2$pred为长度7的序列- 绘图时设置
ylim确保预测值在显示范围内,用不同颜色区分原始数据与预测结果,更易对比
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

