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

R语言滚动ARIMA回归系数如何补零实现数组长度统一

R滚动窗口ARIMA系数补零对齐导出方案

错误原因

你遇到的补零后单独占行的问题来自两处错误:

  • 维度设置错误:dim(coef_list_AR[[n]]) <- c(1:max_AR_p)语法错误,1:max_AR_p会生成多维度向量,导出时会拆分为多行,正确的行向量维度应该是c(1, max_AR_p)
  • 导出逻辑缺陷:逐次append每个系数对象到CSV,只要单个对象结构异常就会导致行列错位,优先建议先拼接为完整矩阵再统一导出

修正后完整代码

阶数提取优化(可选但推荐)

先替换你原来循环内提取阶数的代码,避免季节性ARIMA导致的阶数提取错误:

# 替换原有result <- substring(...) 相关代码
result <- fit_$arma
p <- result[1] # AR阶数
q <- result[2] # MA阶数

后续判断阶数直接用p和q即可。

AR系数补零+导出

# 初始化参数
len_coef_list_AR <- length(coef_list_AR)
max_AR_p <- 0

# 计算AR系数最大长度
for(m in 1:len_coef_list_AR){
  temp_len_ <- length(coef_list_AR[[m]])
  if(temp_len_ > max_AR_p) max_AR_p <- temp_len_
}

# 补零对齐生成完整矩阵
coef_matrix_AR <- matrix(0, nrow = len_coef_list_AR, ncol = max_AR_p)
for(n in 1:len_coef_list_AR){
  temp_coef <- coef_list_AR[[n]]
  temp_len <- length(temp_coef)
  coef_matrix_AR[n, 1:temp_len] <- temp_coef
}

# 一次性导出CSV,自带AR1~ARp列名,适配Excel绘图
write.csv(coef_matrix_AR, "coef_list_AR_1400.csv", row.names = FALSE, col.names = paste0("AR", 1:max_AR_p))

MA系数补零+导出

# 初始化参数
len_coef_list_MA <- length(coef_list_MA)
max_MA_q <- 0

# 计算MA系数最大长度
for(m in 1:len_coef_list_MA){
  temp_len_ <- length(coef_list_MA[[m]])
  if(temp_len_ > max_MA_q) max_MA_q <- temp_len_
}

# 补零对齐生成完整矩阵
coef_matrix_MA <- matrix(0, nrow = len_coef_list_MA, ncol = max_MA_q)
for(n in 1:len_coef_list_MA){
  temp_coef <- coef_list_MA[[n]]
  temp_len <- length(temp_coef)
  coef_matrix_MA[n, 1:temp_len] <- temp_coef
}

# 一次性导出CSV,自带MA1~MAq列名,适配Excel绘图
write.csv(coef_matrix_MA, "coef_list_MA_1400.csv", row.names = FALSE, col.names = paste0("MA", 1:max_MA_q))

效果说明

导出的CSV每一行对应一次滚动窗口回归的系数,空缺位置自动补零,列名标注对应阶数,直接导入Excel即可选择对应列绘制系数时间序列图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:54:04