Stata系列-平稳时间序列
时间序列指同一个体在不同时点上的观测数据。根据时间序列的随机过程特性,可以将其分为“平稳序列”和“非平稳序列”。
1.自相关
时间序列的最大特点是存在自相关,不同期的观测值之间存在相关性。
自相关
GDP*导入数据集
use gdp_china.dta, clear
*设定时间序列
tsset year
*画图
tsline y,xlabel(1980(10)2010)
GDP 存在指数增长的趋势。通常的处理方法是,将 GDP 取对数,把指数趋势变为线性趋势。
GDP*对数处理
gen lny = log(y)
*画图
tsline lny,xlabel(1980(10)2010)
GDP 对数存在线性趋势,但依然不平稳(期望值不断增长)。将 GDP 对数进行一阶差分,然后画时间趋势图
GDP 对数差分*差分处理
gen dlny = d.lny
*画图
tsline dlny,xlabel(1980(10)2010)
对数差分*增长率
gen g = (y-l.y)/l.y
*画图
tsline dlny g, xlabel(1980(10)2010) lpattern(dash)
自相关系数*自相关系数
corrgram dlny
上表中
- LAG:滞后阶数
- AC:自相关系数
- PAC:偏自相关系数
- Autocorrelation:AC图
- Partial Autocor:PAC图
Q统计量及p值,原假设是“各阶自相关系数均为0”,但其不能告诉我们:二阶或更高的自相关系数是否单独为0,因此需要借助下面方法:
自相关图*自相关图
ac dlny, lags(20)
一阶与五阶自相关系数显著不为 0,其他阶不显著。
2.一阶自回归
如果客户仅关心某变量(比如股价)的未来值, 可用该变量的过去值来预测其未来值(因为时间序列一般存在自相关)。这种模型称为“单变量时间序列” 。此时可不必理会因果关系,只考虑相关关系即可。比如,看到街上有人带伞,可预测今天下雨,但行人带伞并不导致下雨。
一阶自回归一阶自回归 方程*一阶自回归
reg dlny l.dlny if year < 2013, r
拟合值 计算拟合值*计算拟合值
predict dlny1
*2013年预测值
list dlny1 if year == 2013
dis exp(lny[35]+dlny1[36])
dis y[36]
dis y[36] - exp(lny[35]+dlny1[36])
3.高阶自回归
高阶自回归 方法 方法如二者结果不一致,为了保守起见(尽量避免遗漏变量偏差),可取二者滞后阶数的大者。还可检验模型的残差是否存在自相关(比如,使用 Q 检验);如果残差存在自相关,则须扩大滞后阶数。
一阶自回归*一阶自回归
reg dlny l.dlny if year < 2013, r
*AIC、BIC
estat ic
AR(2)*高阶自回归
reg dlny l(1/2).dlny if year < 2013, r
从上表中可以得知,dlny的二阶滞后在1%水平上显著,因此根据序贯t规则,滞后阶数应该大于或等于2
*AIC、BIC
estat ic
AIC、BIC相比AR(1)略有上升。根据信息准则,应该选择p=1
*高阶自回归
reg dlny l(1/3).dlny if year < 2013, r
由上表可知,dlny三阶滞后很不显著,根据序贯t规则,应该选择p=2
*AIC、BIC
estat ic
*残差自相关图
predict e1, r
corrgram e1, lags(20)
由对残差的Q检验,AR(1)的残差存在自相关,而AR(2)的残差无自相关
预测*AR(2)
reg dlny l(1/2).dlny if year < 2013, r
*计算拟合值
predict dlny2
*2013年预测值
dis exp(lny[35]+dlny1[36])
dis y[36] - exp(lny[35]+dlny1[36])
相比较AR(1),AR(2)模型更精确
4.自回归分布滞后模型
自回归分布滞后模型 案例ADL*导入数据集
use border.dta, clear
*设定时间序列
tsset decade
*ADL模型
reg border l(1/2).border l.drought diff age rival wall unified, r
5.误差修正模型
从经济理论而言,相关的变量之间可能存在长期的均衡关系,
而变量的短期变动则是向着长期均衡关系的部分调整。“误差修正模型” (ECM)体现这一思想.
ECM ECM
误差修正模型的经济含义明确,可分别考察长期效应(长期均衡关系)与短期效应(误差修正效应)
6.移动平均和ARMA模型
MAARMA
ARMA
7.脉冲响应函数
脉冲响应函数IRF IRF*导入数据集
use gdp_china.dta, clear
*对数处理
gen lny = log(y)
*AR(1)
varbasic dlny if year, lags(1) irf
IRF IRF*AR(2)
varbasic dlny if year < 2013, irf
8.向量自回归过程
常同时关心几个变量的预测,如 GDP 增长率与失业率。一种方法是用单变量时间序列对每个变量分别作预测。另一方法将这些变量放在一起,作为一个系统来预测,使得预测 相 互 自 洽 , 称 为 “ 多 变 量 时 间 序 列 ”。Sims(1980)提倡的“向量自回归” (VAR)正是这样的方法。
VAR VAR在 VAR 建模时,需确定变量的滞后阶数,及包含几个变量
滞后阶数的选择
时间趋势图 信息准则*导入数据集
use macro_swatson.dta, clear
*时间趋势图
tsline dinf unem, lpattern(solid dash)
*VAR阶数
varsoc dinf unem
由上表得知,p=2时,AIC和BIC信息准则最小化
VAR变量个数的选择
*二阶向量自回归模型
var dinf unem, lags(1/2)
二阶向量自回归模型
大部分系数都很显著~
系数联合显著性检验*系数联合显著性(沃尔德检验)
varwle
无论是单个方程还是联合方程,各阶系数均显著~
残差相关性*残差相关性(LM检验)
varlmar
可以接受残差无自相关的原假设~
平稳性检验*平稳性过程检验
varstable, graph
所有特征值均在单位圆之内,故 VAR 模型满足平稳性条件~
VAR脉冲响应函数
IRF OIRF在实践中,可借助借助格兰杰因果检验确定两个变量之间的排序。在难以确定变量次序的情况下,可进行稳健性检验,即对于不同的变量排序,分别画正交化脉冲响应图,然后进行比较。
脉冲响应图*脉冲响应函数
irf create iu, set(macro)
*脉冲响应图
irf graph oirf, yline(0)
四个小图的标题命名顺序为“脉冲名称、冲击变量、响应变量”
比如,左下小图标题为“iu,unem,dinf”,表明此图为根据脉冲结果 iu,冲击变量 unem,响应变量 dinf 所画的脉冲响应图。它表明,失业率 unem 的一个标准差的正向冲击,将使未来一期的 dinf 下降(根据菲利普斯曲线,失业率上升可缓解通胀压力),但未来二期的 dinf 即反弹,然后此影响逐渐消失归于 0。
脉冲响应图*脉冲响应函数(交换次序)
irf create ui, order(unem dinf)
*脉冲响应图
irf graph oirf, i(unem) r(dinf) yline(0)
在不同变量排序下,变量 dinf 对于 unem 冲击的脉冲响应差别不大,只是在反应幅度上略有不同
脉冲响应图*脉冲响应图
irf graph oirf, i(dinf) r(unem) yline(0)
变量排序对于从 dinf 至 unem 的脉冲响应幅度有较大影响,但变动方向上依然类似
9格兰杰因果检验
经济学中常需确定因果关系究竟是从x到 y,还是从 y到x,抑或双向因果关系。格兰杰提出了以下检验思想。首先,原因必然发生于结果之前。其次,原因包含有关结果的独特信息,对结果具有解释力或预测力。因此,如果 x是 y的因,但 y不是x的因,则 x的过去值可帮助预测 y的未来值,而 y的过去值却不能帮助预测x的未来值。
格兰杰因果检验格兰杰因果*格兰杰因果检验
vargranger
无论谁做被解释变量,p值都小于0.05,因此二者互为格兰杰原因。此时格兰杰因果检验无法提供变量排序的信息。
VAR*VAR
varbasic dinf unem if quarter < tq(1999q1), lags(1/2) nograph
*预测
fcast compute f_, step(10)
*画图
fcast graph f_dinf f_unem, observed lpattern(dash)
格兰杰因果关系并非真正意义上的因果关系。充其量只是动态相关关系, 表明一个变量是否对另一变量有“预测能力” 。在某种意义上,它顶多是因果关系的必要条件,而且格兰杰因果关系也可能由第三个变量所引起。另外,格兰杰因果检验仅适用于平稳序列,或者有协整关系的单位根过程。对于不存在协整关系的单位根变量,则只能先差分,得到平稳序列后再进行格兰杰因果检验。
10.时间趋势项
时间序列常包含某种时间趋势,比如 GDP 的指数增长趋势,或GDP 对数的线性增长趋势。如果时间序列包含时间趋势, 则不是平稳过程 (期望随时间而变)。一种处理方法为做差分(或者先取对数,再差分),将其变为平稳过程。如果想直接对原变量 yt 建模,可在回归方程中引入“线性时间趋势项” .
AR(2)*导入数据集
use gdp_china.dta, clear
*生成时间趋势项
gen t = _n
*AR(2)
reg lny l(1/2).lny t if year < 2013,r
*预测及比较
predict lny3
dis y[36] - exp(lny3[36])
lny的两阶滞后和时间趋势项都高度显著
预测及比较和dlny的AR(2)模型相比,加入时间趋势项后更优
11.季节调整
对于月度或季度时间序列,常需进行“季节调整” ,去掉“季节效应”后才能使用。例考察中国的季度 GDP 数据。由于第一季度包含春节,故通常第一季度的 GDP 偏低。如果直接以第二季度 GDP 除以第一季度 GDP 来计算环比增长率,则会高估第二季度的 GDP 增长率;将第一季度包含季节效应的时间序列不能直接计算环比增长率。
如不进行季节调整,只能计算同比增长率,即与去年同一季(月)相比。
对于年度数据,则不需要进行季节调整 GDP 除以上年第四季度 GDP 则会低估第一季度的 GDP 增长率。
季节调整的目标是将原序列Yt 分解为趋势循环要素、季节要素与不规则要素, 然后去掉季节要素St,得到季节调整序列,即趋势循环要素与不规则要素之和。
季节调整序列和原序列*导入数据集
use airpassengers.dta, clear
*设置时间序列
tsset time
*画图
tsline airpassengers
*提取月度信息
gen month = month((dofm(time)))
*生成月度虚拟变量
tab month, gen(m)
*回归分析
reg airpassengers m2-m12
*残差项
predict air_sa, r
*季节调整序列
sum airpassengers
gen airpassengers_sa = air_sa + r(mean)
*画图
tsline airpassengers_sa airpassengers, lpattern(dash)