目录
向量自回归模型(VAR)是一种用于分析多个时间序列变量之间相互关系的统计模型。在 STATA 中,我们可以通过一系列的操作来实现 VAR 模型的建立、分析和解读。以下将为您详细介绍 VAR 模型在 STATA 中的具体操作步骤,并结合一个实际案例进行展示。
一、数据准备
在进行任何统计分析之前,数据的准备工作至关重要。首先,您需要确保已经成功地将所需的数据集导入到 STATA 中。这可以通过多种方式实现,如使用 import
命令从外部文件(如 Excel、CSV 等)导入数据,或者直接在 STATA 中手动输入数据。
假设我们有两个时间序列变量 gdp
和 inflation
,分别代表国内生产总值和通货膨胀率。在导入数据后,需要对变量进行适当的命名和处理。确保变量的数据类型正确,并且不存在缺失值或异常值。如果存在缺失值,您可能需要根据具体情况选择合适的处理方法,如删除包含缺失值的观测值、使用均值或中位数进行填充等。
二、平稳性检验
时间序列数据的平稳性是建立 VAR 模型的一个重要前提。如果数据不平稳,可能会导致错误的模型估计和无效的推断。在 STATA 中,常用的平稳性检验方法是单位根检验,其中 ADF(Augmented Dickey-Fuller)检验是一种广泛应用的方法。
对于变量 gdp
,我们可以使用以下代码进行 ADF 检验:
dfuller gdp
对于变量 inflation
,执行类似的操作:
dfuller inflation
假设 gdp
的检验结果如下:
Dickey-Fuller test for gdp
Lag order: 4
=============================================
Test Statistic p-value
---------------------------------------------
ADF test statistic -1.25 0.56
=============================================
由于 p 值为 0.56 大于 0.05 ,不能拒绝原假设,序列 gdp
是非平稳的。
对于 inflation
,假设检验结果为:
Dickey-Fuller test for inflation
Lag order: 4
=============================================
Test Statistic p-value
---------------------------------------------
ADF test statistic -2.10 0.12
=============================================
p 值为 0.12 大于 0.05 ,序列 inflation
也是非平稳的。
如果变量是非平稳的,我们可能需要对其进行差分处理,使其变为平稳序列。例如,对 gdp
进行一阶差分:
gen gdp_diff = d.gdp
对 inflation
进行一阶差分:
gen inflation_diff = d.inflation
然后对差分后的序列再次进行平稳性检验。
三、确定最优滞后阶数
确定 VAR 模型的最优滞后阶数是一个关键步骤。滞后阶数的选择会影响模型的拟合效果和预测能力。常用的确定最优滞后阶数的准则包括 AIC(Akaike Information Criterion)、BIC(Bayesian Information Criterion)等。
在 STATA 中,可以使用 varsoc
命令来确定最优滞后阶数。对于变量 gdp_diff
和 inflation_diff
,执行以下代码:
varsoc gdp_diff inflation_diff
假设输出结果如下:
Lag Order Selection Criteria
-------------------------------------------------------------------
| Lag | LogL | LR | FPE | AIC | HQIC | BIC |
-------------------------------------------------------------------
| 1 | -235.65 | 45.23 | 0.00045 | 7.52 | 7.61 | 7.78 |
| 2 | -200.56 | 42.32 | 0.00032 | 6.88 | 7.13 | 7.56 |
| 3 | -185.22 | 20.15 | 0.00028 | 6.55 | 6.96 | 7.57 |
| 4 | -168.88 | 18.33 | 0.00025 | 6.32 | 6.88 | 7.67 |
| 5 | -155.66 | 14.22 | 0.00023 | 6.21 | 6.89 | 7.84 |
-------------------------------------------------------------------
根据 AIC 和 BIC 准则,通常选择其值最小的滞后阶数。在此例中,假设最优滞后阶数为 2 。
四、建立 VAR 模型
根据确定的最优滞后阶数,我们可以使用 var
命令来建立 VAR 模型。假设最优滞后阶数为 2 ,则代码如下:
var gdp_diff inflation_diff, lags(2)
建立模型后,STATA 会输出模型的估计结果,包括系数估计值、标准差、t 统计量等。
五、模型诊断
建立模型后,需要对模型进行诊断,以确保模型的合理性和有效性。
首先,可以检查残差是否符合正态分布。通过以下命令获取残差:
predict resid, residuals
然后,可以使用 sktest
命令对残差进行正态性检验。
其次,检查残差是否存在自相关。可以使用 serial
命令进行自相关检验。
六、脉冲响应分析
脉冲响应分析用于研究一个变量的冲击对其他变量的动态影响。
首先,使用以下命令创建脉冲响应对象:
irf create myirf
然后,使用以下命令绘制脉冲响应图:
irf graph oirf
通过脉冲响应图,可以直观地观察到变量之间的动态关系。
七、方差分解
方差分解用于确定每个变量的变动在多大程度上是由自身和其他变量的冲击引起的。
使用以下命令进行方差分解:
fevd
通过方差分解的结果,可以了解各个变量对系统变化的贡献程度。
总之,通过以上步骤,您可以在 STATA 中较为完整地进行向量自回归模型(VAR)的操作和分析。需要注意的是,在实际应用中,还需要根据具体的数据特点和研究问题,对模型进行适当的调整和解释。
例如,在实际数据分析中,如果发现模型的拟合效果不佳,可能需要重新考虑变量的选择、滞后阶数的确定,或者尝试使用其他更复杂的模型。同时,对于模型的结果解读也需要结合具体的经济理论和实际背景,以得出有意义的结论和政策建议。
代码附录
以下是一个完整的包含上述步骤代码的附录:
// 导入数据
import excel "your_file_path.xlsx", sheet("Sheet1") firstrow
// 假设数据中有变量 gdp 和 inflation
// 平稳性检验
dfuller gdp
dfuller inflation
// 对非平稳变量进行一阶差分
gen gdp_diff = d.gdp
gen inflation_diff = d.inflation
// 再次进行平稳性检验
dfuller gdp_diff
dfuller inflation_diff
// 确定最优滞后阶数
varsoc gdp_diff inflation_diff
// 建立 VAR 模型
var gdp_diff inflation_diff, lags(最优滞后阶数)
// 模型诊断
predict resid, residuals
sktest resid // 正态性检验
serial resid // 自相关检验
// 脉冲响应分析
irf create myirf
irf graph oirf
// 方差分解
fevd
请将 your_file_path.xlsx
替换为您实际的数据文件路径,并根据实际情况确定最优滞后阶数。
STATA手册:向量自回归https://www.stata.com/manuals13/tsvar.pdf
- Sims, C. A. (1980). Macroeconomics and Reality. Econometrica, 48(1), 1-48. DOI: 10.2307/1912054(VAR模型的经典论文)
- Stock, J. H., & Watson, M. W. (2015). Introduction to Econometrics: A Modern Approach (3rd ed.). Boston, MA: Addison-Wesley. (计量经济学教材,包含VAR模型的详细介绍)