You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于R语言ARIMA模型的年度数值预测技术问询

用R语言ARIMA模型预测钱德勒市2017-2022年数值

我来帮你搞定这个预测任务,先理清楚你的需求和现有代码里的小问题,再给出完整可运行的方案:

一、历史样本数据

你提供的钱德勒市2012-2016年的数值如下:

City_NameYearValues
Chandler City201219939
Chandler City201319251
Chandler City201419672
Chandler City201519824
Chandler City201619326

二、你尝试的代码片段

你写的代码还没完成,先贴出你提供的部分:

Age_Incomedata_1 = ts(city_aggregated[,3],start = c(2012),end = c(2016),frequency = 1000)
plot(Age_Incomedata_1, xlab='Years', ylab = 'Values')
library(forecast)
ARIMAfit = auto.arima(log10(A...

三、完整可运行的解决方案代码

这里修正了代码里的错误,补全了预测步骤:

# 1. 构造历史数据框(如果你的city_aggregated已经存在,直接跳过这步)
city_aggregated <- data.frame(
  City_Name = rep("Chandler City", 5),
  Year = 2012:2016,
  Values = c(19939, 19251, 19672, 19824, 19326)
)

# 2. 创建时间序列对象:年度数据frequency必须设为1(你之前的1000是错误的)
Age_Incomedata_1 <- ts(city_aggregated[,3], start = 2012, end = 2016, frequency = 1)

# 3. 可视化原始时间序列,观察数据趋势
plot(Age_Incomedata_1, xlab='Years', ylab = 'Values', main = "Chandler City 2012-2016 Values")

# 4. 加载forecast包并自动选择最优ARIMA模型
library(forecast)
# 沿用你用对数转换的思路,减少数据波动
ARIMAfit <- auto.arima(log10(Age_Incomedata_1))
# 可以查看模型的详细参数信息
summary(ARIMAfit)

# 5. 预测2017-2022年共6个年份的数值
forecast_result <- forecast(ARIMAfit, h = 6)
# 将对数转换的预测结果还原回原始数值尺度
forecast_values <- 10^forecast_result$mean

# 6. 可视化预测结果,同时展示置信区间
plot(forecast_result, xlab='Years', ylab = 'Values', main = "Chandler City Values Forecast 2017-2022")
# 打印格式化的预测结果表格
cat("2017-2022年预测值(四舍五入后):\n")
print(data.frame(Year = 2017:2022, Predicted_Values = round(forecast_values)))

四、关键细节解释

  • 时间序列参数修正:你之前把frequency设为1000是错误的,年度数据的frequency必须是1,否则时间序列的时间轴会完全混乱,无法正确识别年份。
  • 对数转换的作用:用log10转换数据是为了降低序列的波动幅度,让数据更平稳,帮助ARIMA模型更好地捕捉趋势。预测后一定要用10^还原,才能得到有实际意义的数值。
  • 预测长度设置:2017到2022是6个年份,所以forecast函数的h参数要设为6,确保覆盖所有需要预测的年份。

内容的提问来源于stack exchange,提问作者venkat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:44:33