在Stata中进行协整检验是分析时间序列变量间长期均衡关系的常用方法,尤其适用于非平稳但存在协整关系的变量,协整检验的核心思想在于检验变量间是否存在稳定的线性组合,从而避免伪回归问题,以下是Stata中协整检验的详细操作步骤、命令语法及注意事项,涵盖多种检验方法的应用场景。

协整检验前的准备工作
在进行协整检验前,需确保数据满足以下条件:
- 变量同阶单整:通过单位根检验(如
dfuller、pperron)确认所有变量均为同阶单整(如I(1)),若变量阶数不同,需进行差分或转换。 - 确定模型形式:根据变量特性选择无截距、无趋势、有截距或含趋势的检验模型。
- 数据平稳性预处理:若变量含趋势,需在检验中控制趋势项。
Engle-Granger两步法检验
Engle-Granger(EG)检验适用于两变量间的协整关系,分为回归和残差检验两步。
第一步:建立回归方程
使用regress命令估计变量间的长期均衡关系:
regress y x1 x2 ... predict residuals, residual
y为被解释变量,x1 x2 ...为解释变量,residuals为残差序列。

第二步:残差单位根检验
对残差序列进行ADF检验,若残差平稳,则存在协整关系:
dfuller residuals, lags(1) noconstant
lags()为滞后阶数,可根据AIC/BIC准则选择;noconstant表示无常数项(若残差回归含截距,此处需保留常数项)。
注意事项:
- EG检验仅适用于两变量,多变量需使用Johansen检验。
- 残差检验的临界值与标准ADF检验不同,需使用MacKinnon临界值表。
Johansen多变量协整检验
Johansen检验适用于多变量系统,可检验多个协整关系,基于VAR模型或VECM模型。

确定VAR模型滞后阶数
使用varsoc命令选择最优滞后阶数:
varsoc y x1 x2, maxlag(4)
根据信息准则(如AIC、SC)确定最优滞后阶数p。
执行Johansen检验
使用vecrank命令进行检验:
vecrank y x1 x2, lags(1) trend(constant)
关键选项说明:
lags():VAR模型滞后阶数(通常为p-1)。trend():趋势项设置,可选none(无趋势)、constant(含截距)、trend(含线性趋势)或quadratic(含二次趋势)。
解读检验结果
检验结果输出两个统计量:
- 迹检验(Trace Test):检验存在r个协整关系 vs. 至少r+1个。
- 最大特征值检验(Max-Eigen Test):检验存在r个协整关系 vs. 恰好r+1个。
结果判断:若统计量大于临界值,则拒绝原假设(原假设为“协整关系个数≤r”),若迹检验在r=0时拒绝原假设,而在r=1时不拒绝,则存在1个协整关系。
Kao检验与Pedroni检验(面板数据)
若数据为面板数据,可使用xtcsd或xtunitroot中的协整检验命令,Kao检验的命令为:
xtcsd y x1 x2, panel
Pedroni检验允许面板间存在异质性,命令为:
xtcsd y x1 x2, pedroni
协整检验结果的应用
若确认存在协整关系,可进一步建立误差修正模型(VECM)分析短期动态调整:
vec y x1 x2, lags(1) rank(1)
rank()为协整关系个数,需根据Johansen检验结果设定。
常见问题与解决方案
- 滞后阶数选择不当:可能导致检验结果偏差,建议结合
varsoc和残差自相关检验(如estat bgodfrey)综合判断。 - 趋势项设置错误:若变量含趋势但未在模型中控制,可能误判为非协整,可通过
graph命令观察变量趋势辅助判断。
相关问答FAQs
Q1:EG检验与Johansen检验有何区别?如何选择?
A1:EG检验适用于两变量,操作简单但无法检验多个协整关系;Johansen检验适用于多变量,可同时检验多个协整关系,但计算复杂,若变量超过两个,优先选择Johansen检验。
Q2:协整检验中残差序列的ADF检验为何需要特殊临界值?
A2:残差序列是估计得到的,其分布与标准ADF检验不同,存在自相关和参数估计偏差,因此需使用MacKinnon提供的修正临界值表,否则可能导致检验结果不准确。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/465472.html<
