关于数据挖掘:PYTHON用时变马尔可夫区制转换MARKOV-REGIME-SWITCHING自回归模型分析经济时间序列附代码数据

48次阅读

共计 3912 个字符,预计需要花费 10 分钟才能阅读完成。

全文下载链接:http://tecdat.cn/?p=22617

最近咱们被客户要求撰写对于 MARKOV REGIME SWITCHING 的钻研报告,包含一些图形和统计输入。
本文提供了一个在统计模型中应用马可夫转换模型模型的例子,来复现 Kim 和 Nelson(1999)中提出的一些后果。它利用了 Hamilton(1989)的滤波器和 Kim(1994)的平滑器 点击文末“浏览原文”获取残缺 代码数据

%matplotlib inline

import numpy as np
import pandas as pd
import statsmodels.api as sm

from pandas_datareader.data import DataReader
from datetime import datetime
 DataReader(start=datetime(1947, 1, 1), end=datetime(2013, 4, 1))

Hamilton (1989) 马尔可夫转换模型(_Markov -switching_ _model_)

这是对 Hamilton(1989)介绍马可夫转换模型(_Markov -switching_ _model_)的开创性论文的复现。该模型是一个 4 阶的自回归模型,其中过程的平均值在两个区制之间切换。能够这样写。

每个期间,区制都依据以下的转移概率矩阵进行转换。

其中 pij 是从区制 i 转移到区制 j 的概率。

该模型类别是工夫序列局部中的 MarkovAutoregression。为了创立这个模型,咱们必须指定 k\_regimes= 2 的区制数量,以及 order= 4 的自回归阶数。默认模型还包含转换自回归系数,所以在这里咱们还须要指定 switch\_ar=False。

创立后,模型通过极大似然预计进行拟合。应用冀望最大化(EM)算法的若干步骤找到好的起始参数,并利用准牛顿(BFGS)算法来疾速找到最大值。

[2]:
#获取数据
hamilton= pd.read('gndata').iloc[1:]


# 绘制数据
hamilton.plot()

# 拟合模型
Markovreg(hamilton)

summary()

咱们绘制了通过过滤和平滑解决的消退概率。滤波指的是基于截至并包含工夫 tt(但不包含工夫 t +1,…,Tt+1,…,T)的数据对工夫 t 的概率预计。平滑化是指应用样本中的所有数据对工夫 t 的概率进行预计。

fig, axes = plt.subplots(2, figsize=(7,7))
ax = axes[0]
ax.plot(margl_prob[0])


ax = axes[1]
ax.plot(smoomarginal_pro[0])

依据预计的转移矩阵,咱们能够计算出消退与扩张的预期持续时间。


点击题目查阅往期内容

用机器学习辨认一直变动的股市情况—隐马尔科夫模型 (HMM) 股票指数预测实战

左右滑动查看更多

01

02

03

04

print(expected_du)

在这种状况下,预计经济衰退将继续约一年(4 个季度),扩张约两年半。

Kim, Nelson, and Startz (1998) 三状态方差转换模型。


这个模型展现了带有区制异方差(方差转换)和无均匀效应的预计。

模型是:

因为没有自回归成分,这个模型能够用 MarkovRegression 类来拟合。因为没有均匀效应,咱们指定趋势 =’nc’。假如转换方差有三个区制,所以咱们指定 k\_regimes= 3 和 switching\_variance=True(默认状况下,方差被假设为在不同区制下是雷同的)。

raw = pd.read_table(ew ,engine='python')

# 绘制数据集
plot(figsize=(12, 3))

res_kns.summary()

上面咱们绘制了处于每个区制中的概率;只有在多数期间,才有可能呈现高_方差_区制。

fig, axes = plt.subplots(3, figsize=(10,7))


ax.plot(smoothed_proba[0])
ax.plot(smoothed_proba[2])
ax.plot(smoothed_proba[3])

Filardo (1994) 时变的转移概率

这个模型展现了用时变的转移概率进行预计。

在上述模型中,咱们假如转移概率在不同期间是不变的。在这里,咱们容许概率随着经济情况的变动而变动。否则,该模型就是 Hamilton(1989)的马尔可夫自回归。
每个期间,区制当初都依据以下的时变转移概率矩阵进行转移。

其中 pij,tipij,t 是在 t 期间从区制 i 转移到区制 j 的概率,并定义为。

与其将转移概率作为最大似然法的一部分进行预计,不如预计回归系数 βij。这些系数将转移概率与预先确定的或外生的变量 xt- 1 向量分割起来。

[9]:
# 用标准差进行标准化

data['p']['1960-01-01':].std() / data['dlip'][:'1959-12-01'].std()


# 绘制数据
data['dlip'].plot( )
 
data['dmdlleading'].plot(figsize=(13,3));

时变的转移概率是由 exog_tvtp 参数指定的。

这里咱们展现了模型拟合的另一个特点 – 应用随机搜寻的 MLE 起始参数。因为马尔科夫转换模型的特色往往是似然函数的许多部分最大值,执行初始优化步骤有助于找到最佳参数。

上面,咱们规定对起始参数向量的 20 个随机扰动进行查看,并将最好的一个作为理论的起始参数。因为搜寻的随机性,咱们当时设置了随机数种子,以便后果复制。

markovreg(data, k=2, order=4)

fit(search=20)
summary()

上面咱们绘制了经济运行在低生产状态下的平滑概率,并再次将 NBER 的消退状况纳入其中进行比拟。

ax.plot(smoo_marg_prob[0])

利用工夫变动的转移概率,咱们能够看到低生产状态的预期持续时间如何随工夫变动。

exp_dura[0].plot(figsize=(12,3));

在经济衰退期间,低生产状态的预期持续时间要比经济扩张时高得多。


点击文末 “浏览原文”

获取全文残缺材料。

本文选自《PYTHON 用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型剖析经济工夫序列》。

点击题目查阅往期内容

R 语言马尔可夫 MCMC 中的 METROPOLIS HASTINGS,MH 算法抽样(采样)法可视化实例
python 贝叶斯随机过程:马尔可夫链 Markov-Chain,MC 和 Metropolis-Hastings,MH 采样算法可视化
Python 贝叶斯推断 Metropolis-Hastings(M-H)MCMC 采样算法的实现
Metropolis Hastings 采样和贝叶斯泊松回归 Poisson 模型
Matlab 用 BUGS 马尔可夫区制转换 Markov switching 随机稳定率模型、序列蒙特卡罗 SMC、M H 采样剖析工夫序列 R 语言 RSTAN MCMC:NUTS 采样算法用 LASSO 构建贝叶斯线性回归模型剖析职业声望数据
R 语言 BUGS 序列蒙特卡罗 SMC、马尔可夫转换随机稳定率 SV 模型、粒子滤波、Metropolis Hasting 采样工夫序列剖析
R 语言 Metropolis Hastings 采样和贝叶斯泊松回归 Poisson 模型
R 语言贝叶斯 MCMC:用 rstan 建设线性回归模型剖析汽车数据和可视化诊断
R 语言贝叶斯 MCMC:GLM 逻辑回归、Rstan 线性回归、Metropolis Hastings 与 Gibbs 采样算法实例
R 语言贝叶斯 Poisson 泊松 - 正态分布模型剖析职业足球比赛进球数
R 语言用 Rcpp 减速 Metropolis-Hastings 抽样预计贝叶斯逻辑回归模型的参数
R 语言逻辑回归、Naive Bayes 贝叶斯、决策树、随机森林算法预测心脏病
R 语言中贝叶斯网络(BN)、动静贝叶斯网络、线性模型剖析错颌畸形数据
R 语言中的 block Gibbs 吉布斯采样贝叶斯多元线性回归
Python 贝叶斯回归剖析住房累赘能力数据集
R 语言实现贝叶斯分位数回归、lasso 和自适应 lasso 贝叶斯分位数回归剖析
Python 用 PyMC3 实现贝叶斯线性回归模型
R 语言用 WinBUGS 软件对学术能力测验建设档次(分层)贝叶斯模型
R 语言 Gibbs 抽样的贝叶斯简略线性回归仿真剖析
R 语言和 STAN,JAGS:用 RSTAN,RJAG 建设贝叶斯多元线性回归预测选举数据
R 语言基于 copula 的贝叶斯分层混合模型的诊断准确性钻研
R 语言贝叶斯线性回归和多元线性回归构建工资预测模型
R 语言贝叶斯推断与 MCMC:实现 Metropolis-Hastings 采样算法示例
R 语言 stan 进行基于贝叶斯推断的回归模型
R 语言中 RStan 贝叶斯层次模型剖析示例
R 语言应用 Metropolis-Hastings 采样算法自适应贝叶斯预计与可视化
R 语言随机搜寻变量抉择 SSVS 预计贝叶斯向量自回归(BVAR)模型
WinBUGS 对多元随机稳定率模型:贝叶斯预计与模型比拟
R 语言实现 MCMC 中的 Metropolis–Hastings 算法与吉布斯采样
R 语言贝叶斯推断与 MCMC:实现 Metropolis-Hastings 采样算法示例
R 语言应用 Metropolis-Hastings 采样算法自适应贝叶斯预计与可视化
视频:R 语言中的 Stan 概率编程 MCMC 采样的贝叶斯模型
R 语言 MCMC:Metropolis-Hastings 采样用于回归的贝叶斯预计

正文完
 0