温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
作者:张悦 (香港城市大学)
目录
我们分析回归模型的其中一个原因是为了生成对因变量的预测。在预测之前,我们首先需要一个具体的模型来提供参考。虽然时间序列数据常用于预测分析的研究,但需要提醒大家的是,数据并不限于使用时间序列数据。
让我们以静态线性回归模型为例,
我们假设等式 (1) 里的误差项是白噪音,样本为T,
在公式 (2) 里,我们只看模型里样本内的预估,这些预测的构建是基于使用回归系数的点估计和回归因子的实际观测值,也就是当
假设现在我们有额外的 n 个观察值 (T+n), 但是基于原始数据T,我们仍使用我们的 OLS 参数估计值。
现在,我们就可以来进行 n 个额外样本的事后估计预测,由于我们已经知晓这些数据的值,所以当预测那些 n 时,我们便可以看出模型的表现到底如何。
我们使用数据 consdpi.dta,它包含了两个时间序列,分别叫做 realcons 和 realdpi。在我们估计他们之间的长期关系之前,两个时间序列必须做单位根检验。
varsoc realcons
dfuller realcons,trend lags(#)
varsoc realdpi
dfuller realdpi,trend lags(#)
varsoc D.realcons
dfuller D.realcons,lags(#)
varsoc D.realdpi
dfuller D.realdpi,lags(#)
Note:
#
表示滞后阶数,由varsoc
命令基于信息准则确定。
单位根检验显示了两个时间序列 I (1) 是协整的。在这个案例里,我们现在可以用一个时间序列对于另外一个时间序列的回归来估计他们的长期关系,这样的回归不需要数据从 1950Q1 到 1983Q4 的差分。
reg realcons realdpi if tin(1950q1,1983q4)
Source | SS df MS Number of obs = 136
----------+------------------------------ F( 1, 134) = .
Model | 76256873.3 1 76256873.3 Prob > F = 0.0000
Residual | 84604.0843 134 631.373763 R-squared = 0.9989
----------+------------------------------ Adj R-squared = 0.9989
Total | 76341477.4 135 565492.425 Root MSE = 25.127
---------------------------------------------------------------------------
realcons | Coef. Std. Err. t P>|t| [95% Conf. Interval]
----------+----------------------------------------------------------------
realdpi | .8579124 .0024686 347.53 0.000 .8530299 .8627948
_cons | 67.65482 6.270548 10.79 0.000 55.25277 80.05687
---------------------------------------------------------------------------
虽然我们还有 1984Q1 到 1985Q4 的样本,但是现在我们已经估测了 1983Q4 的样本,让我们使用这 8 个观察值来作为事后分析的预测。
regress realcons realdpi if tin(1950q1,1983q4)
estimates store consmodel
forecast create expostforecast, replace
forecast estimates consmodel
set seed 1
forecast solve, prefix(f_) ///
begin(tq(1984q1)) end(tq(1985q4)) static ///
simulate(betas, statistic(stddev,prefix(sd_)) reps(100))
现在我们来对比 realcons 和 f_realcons (realcons 的预测) 在估测期间内。
list realcons f_realcons if tin(1984q1, 1985q4)
+---------------------+
| realcons f_real~s |
|---------------------|
137. | 3579.7 3587.67 |
138. | 3628.3 3655.79 |
139. | 3653.5 3721.33 |
140. | 3700.9 3744.75 |
141. | 3756.8 3746.04 |
|---------------------|
142. | 3791.5 3815.62 |
143. | 3860.9 3796.66 |
144. | 3874.2 3832.43 |
+---------------------+
在作图之前,我们来计算一下 f_realcons 95% 预测区间的上界和下界。
gen f_y_up = f_realcons + invnormal(0.975)*sd_realcons
gen f_y_dn = f_realcons + invnormal(0.025)*sd_realcons
下面是数据生成的图表:
twoway (line realcons year) ///
(line f_realcons year) ///
(line f_y_up year, lpattern(dash)) ///
(line f_y_dn year, lpattern(dash)) ///
if tin(1984q1,1985q4)
现在,假设我们使用样本 T 个观察值来测算我们的模型,我们想要预测其他 n 个观察值。到目前为止,我们并不知道
当我们处理这一类的估计时,会遇到一些实际的问题。如果我们想要运用公式 (2),对于 (T+1) 时期,意味着我们需要每一个
目前为止,我们所谓的静态预测,意味着我们的回归是静态的形式 (而不是动态) 在公式 (1) 里,因为没有任何的变量在 RHS 公式里是
现在我们更改一下公式 (1) 来包含一个因变量的滞后值:
公式 (3) 可以用来获得事后或事前估计对于 (T+1) 时期,如下所示:
在公式 (4), 我们已经知道了
同样的选择延续到 (T+3) 时期以及之后的预测。第一个选择被称为静态预测,第二个选择叫做动态预测。
当我们打算做两个或两个以上的时期的事前预测,我们使用动态预测。在这种情况下,我们实际上不知道样本以外因变量的真实值。
现在我们来用简单的动态模型来估算一下公式 (3) 模型,只有一个滞后的因变量来作为回归因子。
reg realcons L.realcons realdpi if tin(1950q1,1983q4)
Source | SS df MS Number of obs = 135
-------------+------------------------------ F( 2, 132) = .
Model | 75172507.6 2 37586253.8 Prob > F = 0.0000
Residual | 47085.9217 132 356.711528 R-squared = 0.9994
-------------+------------------------------ Adj R-squared = 0.9994
Total | 75219593.5 134 561340.25 Root MSE = 18.887
------------------------------------------------------------------------------
realcons | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
realcons |
L1. | .6729567 .0662463 10.16 0.000 .5419149 .8039985
|
realdpi | .2840548 .0564912 5.03 0.000 .1723096 .3958001
_cons | 26.23553 6.328403 4.15 0.000 13.71732 38.75373
------------------------------------------------------------------------------
这个结果显示了我们的模型并不稳健,并且残差体现了一部分自相关的趋势。但是为了解释上述观点和讨论,让我们先来忽略这些可能存在的问题。现在,让我们来生成一些事后静态估计:
. reg realcons L.realcons realdpi if tin(1950q1,1983q4)
. estimates store consmodel
. forecast create forecaststat, replace
. forecast estimates consmodel
. set seed 1
. forecast solve, prefix(sf_) static ///
begin(tq(1984q1)) end(tq(1985q4)) ///
simulate(betas, statistic(stddev, prefix(ssd_)) ///
reps(100))
还有一些事后动态估计:
. forecast create forecastdy, replace
. forecast estimates consmodel
. set seed 1
. forecast solve, prefix(df_) ///
begin(tq(1984q1)) end(tq(1985q4)) ///
simulate(betas, statistic(stddev, prefix(dsd_)) ///
reps(100))
让我们比较这两种估计:
list realcons sf_realcons df_realcons if tin(1984q1,1985q4)
+--------------------------------+
| realcons sf_rea~s df_rea~s |
|--------------------------------|
137. | 3579.7 3575.46 3575.46 |
138. | 3628.3 3623.25 3620.4 |
139. | 3653.5 3677.66 3672.34 |
140. | 3700.9 3702.37 3715.05 |
141. | 3756.8 3734.69 3744.22 |
|--------------------------------|
142. | 3791.5 3795.35 3786.88 |
143. | 3860.9 3812.42 3809.31 |
144. | 3874.2 3870.97 3836.26 |
+--------------------------------+
注意到在第一个时间段,静态和动态估计是一致的,但是之后会有所不同。在作图之前,让我们计算一下静态和动态的 95%预测区间的上界和下界。
gen sf_y_up = sf_realcons + >invnormal(0.975)*ssd_realcons
gen sf_y_dn = sf_realcons + >invnormal(0.025)*ssd_realcons
gen df_y_up = df_realcons + >invnormal(0.975)*dsd_realcons
gen df_y_dn = df_realcons + >invnormal(0.025)*dsd_realcons
生成图表:
twoway (line realcons year) ///
(line sf_realcons year) ///
(line sf_y_up year, lpattern(dash)) ///
(line sf_y_dn year, lpattern(dash)) ///
if tin(1984q1,1985q4)
twoway (line realcons year) ///
(line df_realcons year) ///
(line df_y_up year,lpattern(dash)) ///
(line df_y_dn year,lpattern(dash)) ///
if tin(1984q1,1985q4)
结果从图中可知,相比于静态预测值,大部分的动态预测值在区间内,这意味着动态预测更具参考意义。
连享会计量方法专题……
连享会-直播课 上线了!
http://lianxh.duanshu.com
免费公开课:
直击面板数据模型 - 连玉君,时长:1小时40分钟 Stata 33 讲 - 连玉君, 每讲 15 分钟. 部分直播课 课程资料下载 (PPT,dofiles等)
支持回看,所有课程可以随时购买观看。
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 ⭐ | DSGE, 因果推断, 空间计量等 | |
⭕ Stata数据清洗 | 游万海 | 直播, 2 小时,已上线 |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会学习群-常见问题解答汇总:
✨ https://gitee.com/arlionn/WD