PYTHON用時變馬爾可夫區(qū)制轉(zhuǎn)換(MARKOV REGIME SWITCHING)自回歸模型分析經(jīng)濟(jì)時間序
全文下載鏈接:http://tecdat.cn/?p=22617
最近我們被客戶要求撰寫關(guān)于MRS的研究報告,包括一些圖形和統(tǒng)計輸出。
本文提供了一個在統(tǒng)計模型中使用馬可夫轉(zhuǎn)換模型模型的例子,來復(fù)現(xiàn)Kim和Nelson(1999)中提出的一些結(jié)果。它應(yīng)用了Hamilton(1989)的濾波器和Kim(1994)的平滑器
%matplotlib?inlineimport?numpy?as?npimport?pandas?as?pdimport?statsmodels.api?as?smfrom?pandas_datareader.data?import?DataReaderfrom?datetime?import?datetime?DataReader(start=datetime(1947,?1,?1),?end=datetime(2013,?4,?1))
相關(guān)視頻
**
拓端
,贊12
**
拓端
,贊8
**
拓端
,贊15
Hamilton (1989) 馬爾可夫轉(zhuǎn)換模型(Markov -switching?model)
這是對Hamilton(1989)介紹馬可夫轉(zhuǎn)換模型(Markov -switching?model)的開創(chuàng)性論文的復(fù)現(xiàn)。該模型是一個4階的自回歸模型,其中過程的平均值在兩個區(qū)制之間切換??梢赃@樣寫。

每個時期,區(qū)制都根據(jù)以下的轉(zhuǎn)移概率矩陣進(jìn)行轉(zhuǎn)換。

其中 pij是從區(qū)制 i 轉(zhuǎn)移到區(qū)制 j 的概率。
該模型類別是時間序列部分中的MarkovAutoregression。為了創(chuàng)建這個模型,我們必須指定k_regimes=2的區(qū)制數(shù)量,以及order=4的自回歸階數(shù)。默認(rèn)模型還包括轉(zhuǎn)換自回歸系數(shù),所以在這里我們還需要指定switch_ar=False。
創(chuàng)建后,模型通過極大似然估計進(jìn)行擬合。使用期望最大化(EM)算法的若干步驟找到好的起始參數(shù),并應(yīng)用準(zhǔn)牛頓(BFGS)算法來快速找到最大值。
[2]:#獲取數(shù)據(jù)hamilton=?pd.read('gndata').iloc[1:]#?繪制數(shù)據(jù)hamilton.plot()#?擬合模型Markovreg(hamilton)

summary()


我們繪制了經(jīng)過過濾和平滑處理的衰退概率。濾波指的是基于截至并包括時間tt(但不包括時間t+1,...,Tt+1,...,T)的數(shù)據(jù)對時間t的概率估計。平滑化是指使用樣本中的所有數(shù)據(jù)對時間t的概率進(jìn)行估計。
fig,?axes?=?plt.subplots(2,?figsize=(7,7))ax?=?axes[0]ax.plot(margl_prob[0])ax?=?axes[1]ax.plot(smoomarginal_pro[0])

根據(jù)估計的轉(zhuǎn)移矩陣,我們可以計算出衰退與擴(kuò)張的預(yù)期持續(xù)時間。
點擊標(biāo)題查閱往期內(nèi)容

用機(jī)器學(xué)習(xí)識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)股票指數(shù)預(yù)測實戰(zhàn)

左右滑動查看更多

01

02
03
04
print(expected_du)
在這種情況下,預(yù)計經(jīng)濟(jì)衰退將持續(xù)約一年(4個季度),擴(kuò)張約兩年半。
Kim, Nelson, and Startz (1998) 三狀態(tài)方差轉(zhuǎn)換模型。
這個模型展示了帶有區(qū)制異方差(方差轉(zhuǎn)換)和無平均效應(yīng)的估計。
模型是:
由于沒有自回歸成分,這個模型可以用MarkovRegression類來擬合。由于沒有平均效應(yīng),我們指定趨勢='nc'。假設(shè)轉(zhuǎn)換方差有三個區(qū)制,所以我們指定k_regimes=3和switching_variance=True(默認(rèn)情況下,方差被假定為在不同區(qū)制下是相同的)。
raw?=?pd.read_table(ew?,engine='python')#?繪制數(shù)據(jù)集plot(?figsize=(12,?3))
res_kns.summary()
下面我們繪制了處于每個區(qū)制中的概率;只有在少數(shù)時期,才有可能出現(xiàn)高_(dá)方差_區(qū)制。
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) 時變的轉(zhuǎn)移概率
這個模型展示了用時變的轉(zhuǎn)移概率進(jìn)行估計。
在上述模型中,我們假設(shè)轉(zhuǎn)移概率在不同時期是不變的。在這里,我們允許概率隨著經(jīng)濟(jì)狀況的變化而變化。否則,該模型就是Hamilton(1989)的馬爾可夫自回歸。
每個時期,區(qū)制現(xiàn)在都根據(jù)以下的時變轉(zhuǎn)移概率矩陣進(jìn)行轉(zhuǎn)移。
其中 pij,tipij,t 是在 t 期間從區(qū)制 i 轉(zhuǎn)移到區(qū)制 j 的概率,并定義為。
與其將轉(zhuǎn)移概率作為最大似然法的一部分進(jìn)行估計,不如估計回歸系數(shù)βij。這些系數(shù)將轉(zhuǎn)移概率與預(yù)先確定的或外生的變量xt-1向量聯(lián)系起來。
[9]:
#?用標(biāo)準(zhǔn)差進(jìn)行標(biāo)準(zhǔn)化data['p']['1960-01-01':].std()?/?data['dlip'][:'1959-12-01'].std()#?繪制數(shù)據(jù)data['dlip'].plot(?)?data['dmdlleading'].plot(??figsize=(13,3));
時變的轉(zhuǎn)移概率是由exog_tvtp參數(shù)指定的。
這里我們展示了模型擬合的另一個特點--使用隨機(jī)搜索的MLE起始參數(shù)。因為馬爾科夫轉(zhuǎn)換模型的特征往往是似然函數(shù)的許多局部最大值,執(zhí)行初始優(yōu)化步驟有助于找到最佳參數(shù)。
下面,我們規(guī)定對起始參數(shù)向量的20個隨機(jī)擾動進(jìn)行檢查,并將最好的一個作為實際的起始參數(shù)。由于搜索的隨機(jī)性,我們事先設(shè)置了隨機(jī)數(shù)種子,以便結(jié)果復(fù)制。
markovreg(data,?k=2,?order=4)fit(search=20)summary()
下面我們繪制了經(jīng)濟(jì)運行在低生產(chǎn)狀態(tài)下的平滑概率,并再次將NBER的衰退情況納入其中進(jìn)行比較。
ax.plot(smoo_marg_prob[0])
利用時間變化的轉(zhuǎn)移概率,我們可以看到低生產(chǎn)狀態(tài)的預(yù)期持續(xù)時間如何隨時間變化。
exp_dura[0].plot(?figsize=(12,3));
在經(jīng)濟(jì)衰退期間,低生產(chǎn)狀態(tài)的預(yù)期持續(xù)時間要比經(jīng)濟(jì)擴(kuò)張時高得多。
點擊文末?“閱讀原文”
獲取全文完整資料。
本文選自《PYTHON用時變馬爾可夫區(qū)制轉(zhuǎn)換(MARKOV REGIME SWITCHING)自回歸模型分析經(jīng)濟(jì)時間序列》。
點擊標(biāo)題查閱往期內(nèi)容
R語言馬爾可夫MCMC中的METROPOLIS HASTINGS,MH算法抽樣(采樣)法可視化實例
python貝葉斯隨機(jī)過程:馬爾可夫鏈Markov-Chain,MC和Metropolis-Hastings,MH采樣算法可視化
Python貝葉斯推斷Metropolis-Hastings(M-H)MCMC采樣算法的實現(xiàn)
Metropolis Hastings采樣和貝葉斯泊松回歸Poisson模型
Matlab用BUGS馬爾可夫區(qū)制轉(zhuǎn)換Markov switching隨機(jī)波動率模型、序列蒙特卡羅SMC、M H采樣分析時間序列R語言RSTAN MCMC:NUTS采樣算法用LASSO 構(gòu)建貝葉斯線性回歸模型分析職業(yè)聲望數(shù)據(jù)
R語言BUGS序列蒙特卡羅SMC、馬爾可夫轉(zhuǎn)換隨機(jī)波動率SV模型、粒子濾波、Metropolis Hasting采樣時間序列分析
R語言Metropolis Hastings采樣和貝葉斯泊松回歸Poisson模型
R語言貝葉斯MCMC:用rstan建立線性回歸模型分析汽車數(shù)據(jù)和可視化診斷
R語言貝葉斯MCMC:GLM邏輯回歸、Rstan線性回歸、Metropolis Hastings與Gibbs采樣算法實例
R語言貝葉斯Poisson泊松-正態(tài)分布模型分析職業(yè)足球比賽進(jìn)球數(shù)
R語言用Rcpp加速Metropolis-Hastings抽樣估計貝葉斯邏輯回歸模型的參數(shù)
R語言邏輯回歸、Naive Bayes貝葉斯、決策樹、隨機(jī)森林算法預(yù)測心臟病
R語言中貝葉斯網(wǎng)絡(luò)(BN)、動態(tài)貝葉斯網(wǎng)絡(luò)、線性模型分析錯頜畸形數(shù)據(jù)
R語言中的block Gibbs吉布斯采樣貝葉斯多元線性回歸
Python貝葉斯回歸分析住房負(fù)擔(dān)能力數(shù)據(jù)集
R語言實現(xiàn)貝葉斯分位數(shù)回歸、lasso和自適應(yīng)lasso貝葉斯分位數(shù)回歸分析
Python用PyMC3實現(xiàn)貝葉斯線性回歸模型
R語言用WinBUGS 軟件對學(xué)術(shù)能力測驗建立層次(分層)貝葉斯模型
R語言Gibbs抽樣的貝葉斯簡單線性回歸仿真分析
R語言和STAN,JAGS:用RSTAN,RJAG建立貝葉斯多元線性回歸預(yù)測選舉數(shù)據(jù)
R語言基于copula的貝葉斯分層混合模型的診斷準(zhǔn)確性研究
R語言貝葉斯線性回歸和多元線性回歸構(gòu)建工資預(yù)測模型
R語言貝葉斯推斷與MCMC:實現(xiàn)Metropolis-Hastings 采樣算法示例
R語言stan進(jìn)行基于貝葉斯推斷的回歸模型
R語言中RStan貝葉斯層次模型分析示例
R語言使用Metropolis-Hastings采樣算法自適應(yīng)貝葉斯估計與可視化
R語言隨機(jī)搜索變量選擇SSVS估計貝葉斯向量自回歸(BVAR)模型
WinBUGS對多元隨機(jī)波動率模型:貝葉斯估計與模型比較
R語言實現(xiàn)MCMC中的Metropolis–Hastings算法與吉布斯采樣
R語言貝葉斯推斷與MCMC:實現(xiàn)Metropolis-Hastings 采樣算法示例
R語言使用Metropolis-Hastings采樣算法自適應(yīng)貝葉斯估計與可視化
視頻:R語言中的Stan概率編程MCMC采樣的貝葉斯模型
R語言MCMC:Metropolis-Hastings采樣用于回歸的貝葉斯估計