R语言for循环生成AR(1)模型预测标准误差矩阵异常求解
解决方案
问题原因
你的代码存在两处核心错误:
- 存储对象初始化错误:你需要存储250次仿真、每次5个误差值,应该提前初始化250行5列的矩阵,而你初始定义
pred_error_AR1_100=0是长度为1的标量,每次赋值只能存入1个值,自然最终只能得到250个单个值。 - 误用
table()函数:table()是用来统计分类变量频次的工具,完全不适合拼接5个连续的标准误差值,你直接提取pre_AR1_100$se就能得到长度为5的预测标准误差向量。
修正后的代码
仿真生成部分代码无需修改,仅调整预测误差存储的循环代码即可:
# 提前初始化250行5列的空矩阵,用于存储所有预测标准误差 pred_error_AR1_100 <- matrix(NA, nrow = 250, ncol = 5) # controls<-list(gammaInt=c(0.1,2000), nGamma=50) for (i in 1:ncol(x_100_lstar)){ AR1_100 <- ar(x_100_lstar[,i]) pre_AR1_100 <- predict(AR1_100, n.ahead = 5) # 直接把当前仿真的5个预测标准误差赋值给矩阵第i行 pred_error_AR1_100[i, ] <- pre_AR1_100$se } pred_error_AR1_100
运行上述修正后的代码,得到的pred_error_AR1_100就是你需要的250行5列的预测误差矩阵,每行对应一次仿真的5步预测标准误差。
内容的提问来源于stack exchange,提问作者Warhawk1987
相关产品推荐
相关产品推荐

