搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  USAdata.xlsx
资料下载链接地址: https://bbs.pinggu.org/a-6730880.html
附件大小:
74.54 KB   举报本内容
我的数据是2004年1月到2019年12月的月度时间序列数据,共192个样本点。想用for循环进行1到7步预测,采用expanding的来滚动数据,模型用的是SARIMAX模型。因为进行多步预测,想先将解释变量预测了之后再预测被解释变量,但是我写的代码在预测x的时候出现了问题,AI了很久,还是没搞懂问题出在哪。球球大家帮帮忙呀[em17]
下面是我的代码:
  1. usadata_y<-usadata[1:192,c(5,9)]##2004.01-2019.12
  2. usadata_x<-usadata[1:192,c(10,11,12,13,14,16,18,31,32,33)]##2004.01-2019.12

  3. #最大最小归一化
  4. min_max_norm_col <- function(mat) {
  5. apply(mat, 2, function(x) (x - min(x)) / (max(x) - min(x)))
  6. }


  7. ##1.log,预测x
  8. n_cols <- ncol(usadata_x)
  9. arima_predict_x<- array(NA, c(36,7,n_cols))#steps:7,obs:36
  10. test_x <- array(NA, c(36,7,n_cols))
  11. sarimax_mutil_step_forecast_values <- array(NA, c(36,7))
  12. sarimax_predict <- array(NA, c(36,7))
  13. real_values <- array(NA, c(36,7))

  14. dimnames(test_x) <- list(NULL, NULL, colnames(usadata_x))


  15. for (steps in 1:7) {
  16. for (i in 1:(37-steps)) {
  17. cat("steps",steps,"观测点",i)

  18. # 训练集和测试集数据
  19. train_data <- usadata_y[(1+steps):(155 + i),2] #Y训练集
  20. #test_data <- data_number[(395+i):(395+i+steps-1)]
  21. train_data_in<-ts(train_data,frequency=12,start = c(2004,01))#7

  22. datax1<-min_max_norm_col(usadata_x[1:(155+i),])
  23. datax2 <- as.data.frame(datax1)

  24. # 自变量(非虚拟变量)
  25. train_x <- as.matrix(datax2[1:(155+i-steps),]) #X训练集,有滞后
  26. for (j in 1:n_cols) {
  27. arima_model_x_j <- auto.arima(train_x[, j])
  28. arima_predict_x[i, steps, j] <- forecast(arima_model_x_j, h = steps)$mean[steps]
  29. }
  30. test_x[i,steps,] <- arima_predict_x[i,steps,]
  31. xreg_for_forecast <- as.matrix(test_x[i, steps, ])# 未来的外生变量

  32. # 使用auto.arima拟合SARIMA模型
  33. sarima_model <- auto.arima(train_data_in,xreg = train_x, seasonal = TRUE)
  34. sarimax_predict[i,steps] <- forecast(sarima_model, xreg = xreg_for_forecast,
  35. h=steps)$mean[steps]
  36. sarimax_mutil_step_forecast_values[i,steps] <- exp(sarimax_predict[i,steps])
  37. real_values[i,steps] <- usadata[(156+i+steps-1),5]
  38. }
  39. }
复制代码




    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

GMT+8, 2026-2-3 07:24