我一直在使用statsmodel.tsa.MarkovAutoregressio来复制1989年发布的Hamilton的马尔可夫切换模型。如果使用汉密尔顿数据(1982年美元的真实GNP),我可以得到与代码示例相同的结果/纸上显示。然而,当我使用当前可用的实际GNP或GDP数据(2009年美元)并将其对数差(季度)作为输入时,该模型没有给出令人满意的结果。
我从当前可用的实际GNP中绘制了汉密尔顿gnp与对数的对数差。他们非常接近,略有不同。
任何人都可以告诉我为什么会这样吗?它与当前GNP数据的季节性调整有什么关系吗?如果是这样,有没有办法对付它?
答案 0 :(得分:3)
你写道:
模型没有给出满意的结果。
但你的意思是模型并没有给你你期望/想要的结果。也就是说,你希望模型选出NBER标记为"衰退"的时期,但马尔可夫转换模型只是找到最大化数据似然函数的参数。
(帖子的其余部分显示了从这个Jupyter笔记本中获得的结果:http://nbviewer.jupyter.org/gist/ChadFulton/a5d24d32ba3b7b2e381e43a232342f1f)
(我还注意到我使用电子视图仔细检查了这些结果,并且几乎完全同意Statsmodels'输出。
原始数据集是实际GNP的增长率(对数差* 100);这里显示的是汉密尔顿数据集与联邦储备经济数据库中的数据集,灰色条表示NBER衰退:
在这种情况下,该模型是关于实际GNP增长率的AR(4),具有特定政权的拦截;该模型允许两种制度。这个想法是"经济衰退"应该对应于较低(或负)的平均增长率,而扩展应该对应于较高的平均增长率。 p>
从应用于Hamilton's(1989)数据集的模型中,我们得到以下估计参数:
Markov Switching Model Results
================================================================================
Dep. Variable: Hamilton No. Observations: 131
Model: MarkovAutoregression Log Likelihood -181.263
Date: Sun, 02 Apr 2017 AIC 380.527
Time: 19:52:31 BIC 406.404
Sample: 04-01-1951 HQIC 391.042
- 10-01-1984
Covariance Type: approx
Regime 0 parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
const -0.3588 0.265 -1.356 0.175 -0.877 0.160
Regime 1 parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
const 1.1635 0.075 15.614 0.000 1.017 1.310
Non-switching parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
sigma2 0.5914 0.103 5.761 0.000 0.390 0.793
ar.L1 0.0135 0.120 0.112 0.911 -0.222 0.249
ar.L2 -0.0575 0.138 -0.418 0.676 -0.327 0.212
ar.L3 -0.2470 0.107 -2.310 0.021 -0.457 -0.037
ar.L4 -0.2129 0.111 -1.926 0.054 -0.430 0.004
Regime transition parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
p[0->0] 0.7547 0.097 7.819 0.000 0.565 0.944
p[1->0] 0.0959 0.038 2.542 0.011 0.022 0.170
==============================================================================
以及在制度0中运作的概率的时间序列(这里对应于负增长率,即经济衰退)看起来像:
现在,正如您所看到的,我们可以使用"更新"来适应模型。数据集(看起来非常像原始数据集),以获得以下参数和制度概率:
Markov Switching Model Results
================================================================================
Dep. Variable: GNPC96 No. Observations: 131
Model: MarkovAutoregression Log Likelihood -188.002
Date: Sun, 02 Apr 2017 AIC 394.005
Time: 20:00:58 BIC 419.882
Sample: 04-01-1951 HQIC 404.520
- 10-01-1984
Covariance Type: approx
Regime 0 parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
const -1.2475 3.470 -0.359 0.719 -8.049 5.554
Regime 1 parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
const 0.9364 0.453 2.066 0.039 0.048 1.825
Non-switching parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
sigma2 0.8509 0.561 1.516 0.130 -0.249 1.951
ar.L1 0.3437 0.189 1.821 0.069 -0.026 0.714
ar.L2 0.0919 0.143 0.645 0.519 -0.187 0.371
ar.L3 -0.0846 0.251 -0.337 0.736 -0.577 0.408
ar.L4 -0.1727 0.258 -0.669 0.503 -0.678 0.333
Regime transition parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
p[0->0] 0.0002 1.705 0.000 1.000 -3.341 3.341
p[1->0] 0.0397 0.186 0.213 0.831 -0.326 0.405
==============================================================================
要了解模型的作用,请查看两种制度中的截距。在汉密尔顿的模型中,"低"政权截获为-0.35,而对于更新的数据,"低"政权的截距为-1.25。
告诉我们的是,通过更新的数据集,模型正在做一个更好的工作"通过选择" low"来拟合数据(根据更高的可能性)。政权将陷入更深层次的衰退。特别是,回顾一下GNP数据系列,很明显它使用的是" low"制度适应1950年代后期和1980年代初的极低增长。
相比之下,汉密尔顿模型的拟合参数允许"低"制度适合“适度低”#34;增长率涵盖更广泛的经济衰退。
我们无法比较这两个模型'使用例如结果对数似然值,因为它们使用不同的数据集。我们可以尝试的一件事是使用汉密尔顿数据集中的拟合参数来更新GNP数据。这样做,我们得到以下结果:
Markov Switching Model Results
================================================================================
Dep. Variable: GNPC96 No. Observations: 131
Model: MarkovAutoregression Log Likelihood -191.807
Date: Sun, 02 Apr 2017 AIC 401.614
Time: 19:52:52 BIC 427.491
Sample: 04-01-1951 HQIC 412.129
- 10-01-1984
Covariance Type: opg
Regime 0 parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
const -0.3588 0.185 -1.939 0.053 -0.722 0.004
Regime 1 parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
const 1.1635 0.083 13.967 0.000 1.000 1.327
Non-switching parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
sigma2 0.5914 0.090 6.604 0.000 0.416 0.767
ar.L1 0.0135 0.100 0.134 0.893 -0.183 0.210
ar.L2 -0.0575 0.088 -0.651 0.515 -0.231 0.116
ar.L3 -0.2470 0.104 -2.384 0.017 -0.450 -0.044
ar.L4 -0.2129 0.084 -2.524 0.012 -0.378 -0.048
Regime transition parameters
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
p[0->0] 0.7547 0.100 7.563 0.000 0.559 0.950
p[1->0] 0.0959 0.051 1.872 0.061 -0.005 0.196
==============================================================================
这看起来更像你的期望/想要的那个,因为正如我上面提到的那样,"低"政权拦截0.35使得"低"制度适合样本中的更多时间段。但请注意,这里的对数似然是-191.8,而在模型2中,对数似然是-188.0。
因此即使这个模型看起来更像你想要的,它也不适合数据。
(再次注意,您无法将这些对数似然性与模型1中的-181.3进行比较,因为它使用的是不同的数据集)。