最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

拓端tecdat|Python用時變馬爾可夫區(qū)制轉換(Markov regime switching)自回歸模型分析

2021-07-29 21:46 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=22617

原文出處:拓端數(shù)據(jù)部落公眾號

本文提供了一個在統(tǒng)計模型中使用馬可夫轉換模型模型的例子,來復現(xiàn)Kim和Nelson(1999)中提出的一些結果。它應用了Hamilton(1989)的濾波器和Kim(1994)的平滑器。


  1. %matplotlib inline


  2. import numpy as np

  3. import pandas as pd

  4. import statsmodels.api as sm


  5. from pandas_datareader.data import DataReader

  6. from datetime import datetime

  7. DataReader(start=datetime(1947, 1, 1), end=datetime(2013, 4, 1))

?

Hamilton (1989) 馬爾可夫轉換模型(Markov -switching?model)

這是對Hamilton(1989)介紹馬可夫轉換模型(Markov -switching?model)的開創(chuàng)性論文的復現(xiàn)。該模型是一個4階的自回歸模型,其中過程的平均值在兩個區(qū)制之間切換??梢赃@樣寫。

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

其中 pij是從區(qū)制 i?轉移到區(qū)制 j?的概率。

該模型類別是時間序列部分中的MarkovAutoregression。為了創(chuàng)建這個模型,我們必須指定k_regimes=2的區(qū)制數(shù)量,以及order=4的自回歸階數(shù)。默認模型還包括轉換自回歸系數(shù),所以在這里我們還需要指定switch_ar=False。

創(chuàng)建后,模型通過極大似然估計進行擬合。使用期望最大化(EM)算法的若干步驟找到好的起始參數(shù),并應用準牛頓(BFGS)算法來快速找到最大值。

  1. [2]:

  2. #獲取數(shù)據(jù)

  3. hamilton= pd.read('gndata').iloc[1:]



  4. # 繪制數(shù)據(jù)

  5. hamilton.plot()


  6. # 擬合模型

  7. Markovreg(hamilton)

summary()

我們繪制了經(jīng)過過濾和平滑處理的衰退概率。濾波指的是基于截至并包括時間tt(但不包括時間t+1,...,Tt+1,...,T)的數(shù)據(jù)對時間t的概率估計。平滑化是指使用樣本中的所有數(shù)據(jù)對時間t的概率進行估計。

  1. fig, axes = plt.subplots(2, figsize=(7,7))

  2. ax = axes[0]

  3. ax.plot(margl_prob[0])



  4. ax = axes[1]

  5. ax.plot(smoomarginal_pro[0])


根據(jù)估計的轉移矩陣,我們可以計算出衰退與擴張的預期持續(xù)時間。

print(expected_du)

在這種情況下,預計經(jīng)濟衰退將持續(xù)約一年(4個季度),擴張約兩年半。
?

Kim, Nelson, and Startz (1998) 三狀態(tài)方差轉換模型。
?

這個模型展示了帶有區(qū)制異方差(方差轉換)和無平均效應的估計。

模型是:

由于沒有自回歸成分,這個模型可以用MarkovRegression類來擬合。由于沒有平均效應,我們指定趨勢='nc'。假設轉換方差有三個區(qū)制,所以我們指定k_regimes=3和switching_variance=True(默認情況下,方差被假定為在不同區(qū)制下是相同的)。


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


  2. # 繪制數(shù)據(jù)集

  3. plot( figsize=(12, 3))


res_kns.summary()?

?

下面我們繪制了處于每個區(qū)制中的概率;只有在少數(shù)時期,才有可能出現(xiàn)高方差區(qū)制。

?

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



  2. ax.plot(smoothed_proba[0])

  3. ax.plot(smoothed_proba[2])

  4. ax.plot(smoothed_proba[3])

Filardo (1994) 時變的轉移概率

這個模型展示了用時變的轉移概率進行估計。

在上述模型中,我們假設轉移概率在不同時期是不變的。在這里,我們允許概率隨著經(jīng)濟狀況的變化而變化。否則,該模型就是Hamilton(1989)的馬爾可夫自回歸。
每個時期,區(qū)制現(xiàn)在都根據(jù)以下的時變轉移概率矩陣進行轉移。

其中 pij,tipij,t 是在 t 期間從區(qū)制 i?轉移到區(qū)制 j?的概率,并定義為。

與其將轉移概率作為最大似然法的一部分進行估計,不如估計回歸系數(shù)βij。這些系數(shù)將轉移概率與預先確定的或外生的變量xt-1向量聯(lián)系起來。

[9]:



  1. # 用標準差進行標準化


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



  3. # 繪制數(shù)據(jù)

  4. data['dlip'].plot( )


  5. data['dmdlleading'].plot( ?figsize=(13,3));

時變的轉移概率是由exog_tvtp參數(shù)指定的。
?

這里我們展示了模型擬合的另一個特點--使用隨機搜索的MLE起始參數(shù)。因為馬爾科夫轉換模型的特征往往是似然函數(shù)的許多局部最大值,執(zhí)行初始優(yōu)化步驟有助于找到最佳參數(shù)。
?

下面,我們規(guī)定對起始參數(shù)向量的20個隨機擾動進行檢查,并將最好的一個作為實際的起始參數(shù)。由于搜索的隨機性,我們事先設置了隨機數(shù)種子,以便結果復制。

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


  2. fit(search=20)

  3. summary()

?


下面我們繪制了經(jīng)濟運行在低生產(chǎn)狀態(tài)下的平滑概率,并再次將NBER的衰退情況納入其中進行比較。


  1. ax.plot(smoo_marg_prob[0])

利用時間變化的轉移概率,我們可以看到低生產(chǎn)狀態(tài)的預期持續(xù)時間如何隨時間變化。
?

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

在經(jīng)濟衰退期間,低生產(chǎn)狀態(tài)的預期持續(xù)時間要比經(jīng)濟擴張時高得多。

最受歡迎的見解

1.用R語言模擬混合制排隊隨機服務排隊系統(tǒng)

2.R語言中使用排隊論預測等待時間

3.R語言中實現(xiàn)馬爾可夫鏈蒙特卡羅MCMC模型

4.R語言中的馬爾科夫機制轉換(Markov regime switching)模型

5.matlab貝葉斯隱馬爾可夫hmm模型

6.用R語言模擬混合制排隊隨機服務排隊系統(tǒng)

7.Python基于粒子群優(yōu)化的投資組合優(yōu)化

8.R語言馬爾可夫轉換模型研究交通傷亡人數(shù)事故預測

9.用機器學習識別不斷變化的股市狀況——隱馬爾可夫模型的應用


拓端tecdat|Python用時變馬爾可夫區(qū)制轉換(Markov regime switching)自回歸模型分析的評論 (共 條)

分享到微博請遵守國家法律
黑龙江省| 连江县| 潜江市| 晋州市| 泽库县| 河北省| 温泉县| 虹口区| 普陀区| 大洼县| 富顺县| 武胜县| 堆龙德庆县| 马关县| 黔江区| 金溪县| 江津市| 新乡县| 攀枝花市| 鄯善县| 襄垣县| 阿拉善右旗| 嘉义县| 隆化县| 巩留县| 烟台市| 洪洞县| 新田县| 托克逊县| 辽宁省| 耿马| 抚州市| 深水埗区| 南岸区| 涿鹿县| 永年县| 樟树市| 中西区| 西丰县| 临沧市| 公主岭市|