ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Eviews SVAR识别全流程:短期约束、脉冲响应与稳健性检验

Eviews SVAR识别全流程:短期约束、脉冲响应与稳健性检验 简介这份PPT文档资料聚焦Eviews软件中SVAR结构向量自回归的操作步骤面向经济学、金融学、管理科学等专业中需要做时间序列实证分析的本科生、研究生及科研人员帮助解决从单位根检验到脉冲响应、方差分解的完整建模流程梳理问题。资源包体量轻巧压缩包仅519KB内含1个pptx文件以分步图文形式呈现操作要点便于在课堂演示或自学时对照软件界面逐步跟做。文档围绕稳定性检验、滞后阶数确定、Granger因果关系检验、初始VAR构建、约束矩阵填写以及长期与短期约束设置等关键环节展开并给出AR根观察、滞后长度准则等判断依据可帮助读者建立从VAR到SVAR的清晰分析框架理解AB型模型约束个数的计算逻辑及常见误操作规避思路。目前已有1407人学习适合作为时间序列建模入门与实操查漏的参考材料。1. SVAR 操作卡在哪Eviews 里最容易被 PPT 略过的识别步骤很多人是从一份《SVAR 操作步骤 Eviews.pptx》开始接触结构向量自回归的。照着页面点Proc → Make VAR填上滞后阶数再切到Estimate Structural Factorization脉冲响应图出来了置信带也画了但把变量顺序调一下冲击的符号就翻过来。问题不在菜单点得对不对而在短期约束矩阵凭什么这么写。Eviews 把 SVAR 拆成三层简化式 VAR 估计、结构因子分解、冲击响应分析操作文档通常只讲第二层的点击路径第一层的滞后阶数与平稳性、第三层的识别合法性很少有人展开。下面按数据准备、VAR 底座、约束矩阵、脉冲响应、排错的顺序走一遍每一步给出 Eviews 命令与参数取值目标是让结果经得起换排序、换样本的检验。2. 用 Eviews 搭 SVAR 的数据底座工作文件、变量命名与滞后阶数2.1 简化式 VAR 与 SVAR 的关系A、B 两种分解形式怎么选简化式 VAR 写成y_t c A1·y_{t-1} … Ap·y_{t-p} u_t这里的u_t是约化残差各分量之间存在同期相关经济学含义模糊。SVAR 做的事情是在约化残差和结构性冲击之间架一座桥最常见的形式是A·u_t B·e_t其中e_t是互不相关、方差归一的结构冲击A承担同期约束B描述冲击的瞬时影响。Eviews 的结构分解对话框里给了三类选项短期模式只填 A长期影响由数据决定、长期模式只填 B约束的是累积脉冲响应以及 AB 混合模式。做货币政策、财政政策冲击这类当期就有影响的题目短期 A 矩阵够用也是绝大多数操作文档默认的那条路。选长期约束要有明确的理论依据比如货币中性假设要求货币冲击对产出的长期累积影响为零没有这种理论支撑就不要碰。提示A 和 B 不是两种可以随便互换的写法。同一个模型分别用 A 和 AB 估计脉冲响应的形状可能完全不同写论文时要在正文交代用的是哪一种。2.2 从 Excel 到 Eviews 工作文件wfcreate 与 read 的参数写法先把频率和样本区间定死再往里灌数据。Eviews 的命令行比菜单快得多也便于复现。 月度数据样本 2005m1 到 2023m12 wfcreate m 2005m1 2023m12 从 Excel 读取txls 指定类型s 指定工作表 read(txls, sSheet1) d:\data\macro.xls 从 CSV 读取na 声明缺失值标记 read(tascii, naNA) d:\data\macro_clean.csvwfcreate的第一个参数是频率a年度、q季度、m月度、w周度、u非时间序列。起止日期必须与频率格式匹配写成2005m1不要写成2005-01。read的t决定解析方式txls走 Excel 引擎tascii走纯文本引擎。变量命名有两条硬规则只用英文字母、数字和下划线避开 Eviews 的保留名c常数项、resid、na、d、log这些都会被解释器抢走。中文变量名在部分版本里能建出来但一到var命令就会报语法错误不值得冒险。很多人搜 eviews 安装教程装完之后第一步其实是把工作路径设成纯英文目录再把 Excel 和 Eviews 的位数对齐32 位读 32 位64 位读 64 位否则read(txls)会直接甩出一个和文件路径无关的报错让人查半天。数据处理放 Python 里做更省事import pandas as pd df pd.read_excel(macro_raw.xlsx) # Eviews 对日期列敏感统一成 YYYY-MM-DD 字符串或 YYYYMM 数值 df[date] pd.to_datetime(df[date]).dt.strftime(%Y-%m-%d) # 缺失统一成 NA避免把 #N/A 当成字符变量读进来 df df.replace({pd.NA: NA, float(nan): NA}) # utf-8-sig 带 BOM防止表头解析乱码 df.to_csv(macro_clean.csv, indexFalse, encodingutf-8-sig)pd.to_datetime先把五花八门的日期格式归一replace处理缺失值标记utf-8-sig的 BOM 头是为了让 Eviews 正确识别编码。变量名建议在这一步就改成gdp、cpi、m2这类短名后面写约束矩阵时会轻松很多。2.3 滞后阶数怎么定五个准则打架时听谁的滞后阶数不是审美问题直接影响残差是否存在自相关进而影响约束矩阵的估计。Eviews 提供View → Lag Structure → Lag Length Criteria命令写法是var01.laglen(12)括号里是最大检验阶数月度数据给 12 到 18季度数据给 4 到 8。输出会列出五个准则准则惩罚力度倾向小样本表现LR无需大样本近似偏高样本小则不可靠FPE中居中尚可AIC弱选大阶数容易过拟合SCBIC强选小阶数较稳健HQ中偏强居中偏小较稳健五个准则给出同一个数字时直接采用打架时先看 SC 和 HQ 的共识值再看残差诊断。选完之后必须回头检查残差View → Residual Diagnostics → Portmanteau Test自相关检验的 p 值大于 0.05 才能说明这个阶数把动态关系抽干净了。样本量不足 100 时AIC 往往会选出一个残差仍然自相关的高阶模型这时候用 SC 更稳。2.4 单位根与样本区间什么时候必须差分VAR 在变量水平值上估计也能得到一致参数但标准误和脉冲响应的置信带会失真尤其是变量含明显趋势的时候。做之前跑一遍 ADFgdp.uroot(adf, const, lagsauto) cpi.uroot(adf, const, trend, lagsauto)const表示只含常数项加trend表示含趋势项lagsauto交给 Eviews 按 SIC 自动选。结论分三种情况都不含单位根直接用水平值都含单位根且存在协整考虑 VECM 而不是 SVAR含单位根但不存在协整先差分再建模此时脉冲响应的经济含义是增长率对冲击的响应写结论时要注意措辞。样本区间还要留出足够的预样本供滞后项使用。如果样本是 2005m1 到 2023m12、滞后 4 阶实际参与估计的观测从 2005m5 起算论文里的样本描述要写清楚。3. SVAR 短期约束矩阵怎么写Eviews 估计全流程与识别条件3.1 先估一个像样的简化式 VARSVAR 是在 VAR 对象上做结构分解所以顺序不能颠倒。先建对象var var01.ls 1 4 gdp cpi m2ls是估计方法最小二乘1 4是滞后区间从 1 阶到 4 阶。命令执行后会在工作文件里生成一个名为var01的 VAR 对象双击进去能看到每个方程的系数、t 值、R²。参数上要注意两点滞后区间写1 4和只写4不是一回事前者明确从一阶开始后者可能被解释成只含 4 阶变量顺序在这一步不影响任何系数估计简化式 VAR 是逐方程 OLS次序无所谓但到了结构分解阶段次序就决定了默认的 Cholesky 递归结构。3.2 Cholesky 排序与自定义 A 矩阵约束到底填什么VAR 窗口里Proc → Estimate Structural Factorization对话框会给出两栏矩阵输入。短期模式下只填 AA: NA, 0, 0 NA, NA, 0 NA, NA, NANA表示这是一个自由待估参数0表示约束为零。上面的矩阵是下三角含义是gdp当期不受cpi和m2冲击影响cpi当期受gdp冲击影响但不受m2影响m2当期同时受前两者影响。这就是 Cholesky 分解对应的递归排序等价于把变量顺序定为最外生在前。三变量以上的模型经济学故事往往撑不起纯递归结构。比如三变量(产出, 利率, 货币供应)理论上货币供应当期会对利率变化作出反应而利率当期不反应货币供应这就是一个典型的非递归短期约束A: NA, 0, 0 NA, NA, 0 NA, NA, NA B: NA, 0, 0 0, NA, 0 0, 0, NAB 矩阵取对角形式等价于只让结构性冲击落在对应方程上。命令形式在不同版本里参数名略有出入稳妥的写法是先在对话框里填好矩阵点确定再从结果窗口的View → Representation里把 Eviews 自己生成的命令复制出来贴到程序文件里复用。注意矩阵输入框里不要出现逗号开头的空列也不要混用NA和naEviews 对矩阵文本的解析比命令行更严格格式错一个字符就报 matrix dimension mismatch。3.3 识别条件怎么数阶条件、秩条件与过度识别检验n 个变量的 SVAR需要n(n-1)/2个独立的同期约束才能恰好识别。三变量是 3 个四变量是 6 个。数一遍 A 矩阵里 0 的个数这是最快的自查方式变量数恰好识别所需约束数递归形式给出的约束数21133346651010约束多于n(n-1)/2就是过度识别Eviews 会额外给出 LR 检验的统计量和 p 值。p 值大于 0.05 说明数据不拒绝这组约束模型可用p 值很小则说明约束与数据冲突要么放宽约束要么回头检查变量定义。四变量过度识别的一个例子A: NA, 0, 0, 0 NA, NA, 0, 0 0, NA, NA, 0 NA, NA, NA, NA对角线上方共 6 个元素此处恰好设了 6 个零属于恰好识别不做 LR 检验。若再把第三行第二列也设为 0就有 7 个约束模型过度识别此时 LR 检验才有意义。阶条件只是必要条件还要保证约束之间线性无关否则会出现约束数量够但矩阵降秩的情况Eviews 通常报奇异矩阵。3.4 估计输出怎么读A 矩阵系数、对数似然与信息准则点确定后结果窗口分几块。第一块是结构矩阵的估计值和标准误逐个对照 t 值如果某个自由参数的标准误比系数还大说明这个约束位置的信息量不足模型设定需要重新考虑。第二块是对数似然值和 AIC、SC用于和不同约束设定的模型做比较值越小越好。第三块在过度识别时才出现就是 LR 检验。从 VAR 到 SVAR 的正确顺序可以压缩成四步定滞后阶数、查残差自相关、填约束矩阵、看识别检验。存一个freeze对象把结果固定下来避免后续修改工作文件覆盖掉输出freeze(svar_result) var01.svar(typeshort)4. 脉冲响应与方差分解期数、置信区间与图形导出4.1 冲击与响应的设定irf 的期数和变量顺序在 VAR 或 SVAR 对象里View → Impulse Response对话框需要回答三个问题冲击变量是谁、响应变量是谁、看多少期。三变量月度模型一般给到 24 期季度模型给 12 期够看清收敛过程。 常见写法期数 24冲击与响应全指定 var01.irf(24, impm2, resgdp) 全部变量两两组合一次画完 var01.irf(24)第一个参数是期数imp指定冲击来源res指定响应对象都不写就是全组合矩阵图。图上的横轴是滞后期纵轴是响应值灰色虚线围出的是置信区间。响应值本身在同一张图内可以比大小跨图比大小要谨慎因为不同响应的量纲不一样。写结论时用第 3 期达到峰值随后 8 期内衰减至零附近这类描述比直接念数字更稳。4.2 置信区间解析法与 Bootstrap 怎么选Eviews 的脉冲响应标准误有两种来源方法原理适用代价解析法Analytic渐近正态近似样本大、模型恰好识别小样本偏低Monte Carlo从估计协方差抽样一般情形计算慢需设重复次数Bootstrap残差重抽样残差非正态、样本小最慢次数要够对话框里设重复次数500 到 1000 之间比较常见少于 200 的置信带抖动明显。判断显著性的标准很直接置信区间整体在零轴同侧才算这个响应统计上不等于零。恰好压在边界上的别在正文里写显著。4.3 方差分解读的是比例不是绝对值View → Variance Decomposition给出的是每个变量预测误差方差被各结构性冲击解释的比例期数一般给 10 到 24 期看的是随期数增加比例如何变化。第一期的比例直接由 A 矩阵结构决定这也是检验约束是否合理的一个角度如果理论上当期完全不外生的变量在第一期就有 20% 的方差来自别的冲击说明约束填错了。读法上要抓两个点一是目标变量在中期比如第 10 期由自身冲击解释的比例是否下降二是主导冲击是否与理论预期一致。数值本身没有绝对标准趋势和相对大小才是信息。4.4 导出矢量图贴进 PPTfreeze 与 export脉冲响应图直接截图贴 PPT放大就糊。正确做法是先冻结成 graph 对象再导出矢量格式freeze(irf_g) var01.irf(24, impm2, resgdp) irf_g.export d:\out\irf.eps irf_g.export(temf) d:\out\irf.emffreeze把当前视图固化成独立对象后续改动模型不会影响它。export不带参数时按扩展名判断格式eps和emf都是矢量格式Word 和 PowerPoint 都能直接插入并保持可编辑线条。要给期刊投稿就导eps要给内部汇报就导emf。图里的图例、坐标轴标签可以在 graph 对象上右键Options逐项调整别在 PPT 里用文本框盖上去。5. SVAR 跑不通与结论翻转排查顺序与三个稳健性动作5.1 按症状定位常见报错与检查清单症状可能原因检查动作报矩阵维度不匹配A 矩阵行列数与变量数不一致数一遍变量个数核对矩阵文本报奇异矩阵约束之间线性相关逐个删掉可疑的零约束重估脉冲响应不收敛存在单位根或滞后阶数过少补做 ADF提高laglen上限置信带极宽样本太短或 Bootstrap 次数太少扩样本rep提到 1000换排序后符号翻转约束识别力不足回到 3.3 重新数约束排查顺序建议从约束矩阵开始而不是从数据开始。绝大多数跑不通是矩阵文本格式或约束个数的问题改数据是最后一步。5.2 换排序、换样本、换期数的三组稳健性动作第一组换变量排序。把三个变量轮流放到第一位各估一次 Cholesky 版本比较目标脉冲响应的符号和峰值期。如果三种排序下符号一致说明结论不依赖递归假设可以写进正文如果翻了符号就必须改用非递归约束并在正文里说明为什么选这个约束。 排序一 var v1.ls 1 4 gdp cpi m2 排序二 var v2.ls 1 4 cpi gdp m2 排序三 var v3.ls 1 4 m2 gdp cpi第二组换样本。去掉首尾各 10% 的观测重估或者用滚动窗口逐段估计看响应峰值期是否稳定。滚动窗口在 Eviews 里靠Roll或者手动切样本区间实现smpl 2005m1 2018m12 var r1.ls 1 4 gdp cpi m2 smpl 2008m1 2023m12 var r2.ls 1 4 gdp cpi m2smpl直接改全局样本估完记得还原成smpl all否则后面的图会莫名其妙变短。第三组换响应期数从 12 期加到 36 期看脉冲响应是否在更长的窗口内回到零轴附近。回不去的响应往往意味着模型缺少协整关系或者遗漏了关键变量这时候补一个 VECM 的对照结果比硬解释更有说服力。本文还有配套的精品资源点击获取
返回列表