GVAR模型运行中遇到的问题 GVARtoolbox2

output文件中的pp表格数值是越来越大,正常应该是越来越小最后接近于0,为什么会出现这样的结果

🚨正常:每一列的数值应随 Horizon(期数)逐渐递减,并最终趋近于稳定值甚至零(表示冲击的长期影响逐渐消退)。
❗ PP 表中每一列的数值 不断上升,甚至指数级爆炸增长:
这种现象是非常不正常的,通常说明模型估计或冲击模拟中出现了 非稳定性(instability)或共整结构设定错误。

✅ 可能原因及解决建议(逐项排查)

1. 你的VAR模型非稳定(Unstable VAR)

如果你在 gvar_est.m 或 var_estim.m 中估计的 VARX* 系数矩阵(A矩阵)有特征根(eigenvalues)大于1,则模型是发散的。

你可以检查:

  • eigenval 工作表中是否存在 >1 的特征值;
  • str_stab_stats 是否标记了单位根或爆炸解。

✅ 解决办法:

  • 减少滞后阶数(p);
  • 重新检测协整秩;
  • 或者增加变量的差分处理(如对 GDP、石油、CPI 全部取对数后做一阶差分)。

2. 冲击变量的标准差设定不当(shock scale 过大)

如果你人为设置或默认使用了一个极大的初始冲击(如 10 std 的全球油价冲击),即使是稳定模型也会产生“爆炸性响应”。

此问题常发生于:

  • 冲击设置时未规范化;
  • 用了 global_shocks.m 中未经处理的变量(如原始价格序列);

✅ 解决办法:

  • 检查 global_vars 中石油价格是否 log + diff;
  • 用标准化冲击:shock = 1 std;
  • 或者使用 generalized impulse 而非 orthogonal impulse

3. 误设了变量形式:用水平值代替增量

  • 比如石油价格、GDP 本应用 log-diff,结果直接放入原始水平(如 Brent = 80, 81, 82...);
  • 则 GIRF 会因趋势性增长被误判为冲击累积导致;
  • 所以 IRF 会一直往上跳,像你现在这种情况。

✅ 解决办法:

  • 所有输入变量应先 log(如对GDP、CPI、Oil);
  • 然后再进行差分处理;
  • 特别注意全局变量不要是“价格水平”。

4. 共整秩(Cointegration rank)设定错误

  • 如果你误设为 r = 0(无协整)或 r = 全秩,而实际存在长期协整关系;
  • 则冲击结果将不收敛,甚至爆炸。

✅ 解决办法:

  • 回到 coint_max&traceVARX 表,检查 Trace Test 和 Max-Eigen;
  • 设置适当的协整秩 r_i;
  • 通常对 GDP、CPI、汇率、利率类变量,r_i > 0 是合理的。
image.png

3) COUNTRY MODELS


3.1) Model specification


image.png
image.png

image.png

不能留空白,如果设置了主导国家,在贸易分析中一般美国是主导国,主导国(单位)的全球变量要这只为2,只能是内生的。


image.png

image.png

image.png

主导国家模型

image.png
  • 设置主导国家模型为0即Dominant unit model=0,那就要自己手动设置一个国家(地区)为主导,它对应的全球变量要设置为2。(全球变量设置为0表示不放进模型,1表示放进模型,2表示作为内生变量放进模型)


    image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容