Matlab馬爾可夫區(qū)制轉(zhuǎn)換動(dòng)態(tài)回歸模型估計(jì)GDP增長(zhǎng)率|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=19918
最近我們被客戶要求撰寫(xiě)關(guān)于馬爾可夫區(qū)制轉(zhuǎn)換動(dòng)態(tài)回歸的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
本文估計(jì)實(shí)際GDP增長(zhǎng)率的兩狀態(tài)Markov區(qū)制轉(zhuǎn)換動(dòng)態(tài)回歸模型??(?點(diǎn)擊文末“閱讀原文”獲取完整代碼數(shù)據(jù)********?)。
創(chuàng)建模型進(jìn)行估計(jì)
通過(guò)指定轉(zhuǎn)移矩陣和兩個(gè)區(qū)制的AR(0)(僅常數(shù))子模型的兩狀態(tài)離散時(shí)間馬爾可夫鏈,為樸素估計(jì)量創(chuàng)建馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型。標(biāo)記狀態(tài)。
htmlmc(NaN(2),'StateNames',["增長(zhǎng)" "衰退"]);
?
加載和預(yù)處理數(shù)據(jù)
加載GDP數(shù)據(jù)集。
Data
?包含1947:Q1-2005:Q2期間實(shí)際GDP的季度數(shù)據(jù)。估計(jì)周期??為1947:Q2-2004:Q2。
通過(guò)以下方式將數(shù)據(jù)轉(zhuǎn)換為年度序列:
在估計(jì)期內(nèi)將數(shù)據(jù)轉(zhuǎn)換為季度比率
將季度比率年度化
htmldiff(Data(2:230))./Data(2:229); % 季度比率100*((1 + qrate).^4 - 1); ? ? ? % 年度比率
估計(jì)模型
模型擬合Mdl
?年利率序列?arate
。
html estimate(Mdl,Mdl0,arate);
EstMdl
?是估計(jì)的(完全指定的)馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型。?EstMdl.Switch
?是估計(jì)的離散時(shí)間馬爾可夫鏈模型(dtmc
?對(duì)象),?EstMdl.Submodels
?是估計(jì)的單變量VAR(0)模型(varm
?對(duì)象)的向量。
顯示估計(jì)的特定于狀態(tài)的動(dòng)態(tài)模型。
html ?varm with properties: ? ? Description: "ARIMA(0,0,0) Model (Gaussian Distribution)" ? ? SeriesNames: "Y1" ? ? ? NumSeries: 1 ? ? ? ? ? ? ? P: 0 ? ? ? ?Constant: 4.90146 ? ? ? ? ? ? ?AR: {} ? ? ? ? ? Trend: 0 ? ? ? ? ? ?Beta: [1×0 matrix] ? ? ?Covariance: 12.087 ? 1-Dimensional VAR(0) Model
html ?varm with properties: ? ? Description: "ARIMA(0,0,0) Model (Gaussian Distribution)" ? ? SeriesNames: "Y1" ? ? ? NumSeries: 1 ? ? ? ? ? ? ? P: 0 ? ? ? ?Constant: 0.0084884 ? ? ? ? ? ? ?AR: {} ? ? ? ? ? Trend: 0 ? ? ? ? ? ?Beta: [1×0 matrix] ? ? ?Covariance: 12.6876 ? 1-Dimensional VAR(0) Model
顯示估計(jì)的狀態(tài)轉(zhuǎn)移矩陣。
html2×2 ? ?0.9088 ? ?0.0912 ? ?0.2303 ? ?0.7697
估計(jì)后的EM算法
在估計(jì)馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型中考慮模型和數(shù)據(jù)?。
創(chuàng)建部分指定模型進(jìn)行估計(jì)。
創(chuàng)建完全指定的模型,其中包含估計(jì)過(guò)程的初始參數(shù)值。
加載并預(yù)處理數(shù)據(jù)。
htmldiff(Data(2:230))./Data(2:229); 100*((1 + qrate).^4 - 1);
使模型擬合數(shù)據(jù)。當(dāng)估計(jì)過(guò)程終止時(shí),繪制對(duì)數(shù)似然比與迭代步驟。
htmlPlot(Mdl,Mdl0);
?
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計(jì)隨機(jī)波動(dòng)率(SV,Stochastic Volatility) 模型
左右滑動(dòng)查看更多
01
02
03
04
使模型擬合模擬數(shù)據(jù)
?
使用來(lái)自已知數(shù)據(jù)生成過(guò)程(DGP)的模擬數(shù)據(jù)評(píng)估估計(jì)準(zhǔn)確性。本示例使用任意參數(shù)值。
為DGP創(chuàng)建模型
為轉(zhuǎn)換區(qū)制創(chuàng)建一個(gè)完全指定的兩狀態(tài)離散時(shí)間馬爾可夫鏈模型。
htmlP = [0.7 0.3; 0.1 0.9];
對(duì)于每個(gè)狀態(tài),為過(guò)程創(chuàng)建一個(gè)完全指定的AR(1)模型。
html% 常數(shù)C1 = 4;C2 = -1;% 自回歸系數(shù)AR1 = 0.5;AR2 = 0.3;% 方差V1 = 3;V2 = 2;% AR 子模型arima('Constant',C1,'AR',AR1,'Variance',V1);
為DGP創(chuàng)建完全指定的Markov轉(zhuǎn)換動(dòng)態(tài)回歸模型。
模擬來(lái)自DGP的路徑
從DGP生成10條長(zhǎng)度為1000的隨機(jī)路徑。
htmlrng(1); % 重現(xiàn)性N = 10;n = 1000;simulate(DGP,n,'Numpaths',N);
Data
?是模擬的1000 x 10矩陣。
創(chuàng)建估計(jì)模型
創(chuàng)建一個(gè)部分指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型,該模型具有與數(shù)據(jù)生成過(guò)程相同的結(jié)構(gòu),但是指定了未知的轉(zhuǎn)移矩陣和未知的子模型系數(shù)。
創(chuàng)建包含初始值的模型
創(chuàng)建一個(gè)完全指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型,該模型具有與相同的結(jié)構(gòu)?Mdl
,但是將所有可估計(jì)的參數(shù)都設(shè)置為初始值。
htmlP0 = 0.5*ones(2);dtmc(P0);ms(mc0,[mdl01,mdl02]);
估計(jì)模型
使模型擬合每個(gè)模擬路徑。對(duì)于每條路徑,在EM算法的每次迭代中繪制對(duì)數(shù)似然圖。
htmlfigurehold onfor i = 1:N ? ?estimate(Data(:,i),'Plot',true); ? ? ? ?endhold off
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語(yǔ)言BUGS/JAGS貝葉斯分析: 馬爾科夫鏈蒙特卡洛方法(MCMC)采樣
左右滑動(dòng)查看更多
01
02
03
04
?
評(píng)估準(zhǔn)確性
計(jì)算每個(gè)估計(jì)參數(shù)的蒙特卡洛平均值。
將總體參數(shù)與相應(yīng)的蒙特卡洛估計(jì)進(jìn)行比較。
htmlDGPvsEstimate = 6×2 ? ?5.0000 ? ?5.0260 ? -2.0000 ? -1.9615 ? ?4.0000 ? ?3.9710 ? ?2.0000 ? ?1.9903 ? ?0.4000 ? ?0.4061 ? ?0.2000 ? ?0.2017
htmlP = 2×2 ? ?0.7000 ? ?0.3000 ? ?0.1000 ? ?0.9000
htmlPEstimate = 2×2 ? ?0.7065 ? ?0.2935 ? ?0.1023 ? ?0.8977
預(yù)采樣數(shù)據(jù)
考慮?估計(jì)馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型中的數(shù)據(jù),但假設(shè)關(guān)注期間為1960:Q1–2004:Q2。另外,考慮向每個(gè)子模型添加一個(gè)自回歸項(xiàng)。
創(chuàng)建部分指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型進(jìn)行估計(jì)。指定AR(1)子模型。
htmlarima(1,0,0);ms(mc,[mdl; mdl]);
由于子模型是AR(1),因此每個(gè)子模型都需要進(jìn)行一次預(yù)采樣觀察以初始化其動(dòng)態(tài)分量以進(jìn)行估計(jì)。
創(chuàng)建包含用于估計(jì)過(guò)程的初始參數(shù)值的模型。
htmlP0 = 0.5*ones(2);mc(P0,'StateNames');
加載數(shù)據(jù)。將整個(gè)集合轉(zhuǎn)換為年化利率序列。
使用與年率序列相關(guān)的日期來(lái)確定預(yù)采樣和估計(jì)采樣周期。由于轉(zhuǎn)換應(yīng)用了一階差分,因此必須從原始樣本中刪除第一個(gè)觀察日期。
htmldates = datetime(dates(2:end),'ConvertFrom','datenum',... ? ?'Format','yyyy:QQQ','Locale','en_US');estPrd = datetime(["1960:Q2" "2004:Q2"],'InputFormat','yyyy:QQQ',... ? ?'Format','yyyy:QQQ','Locale','en_US');
使模型擬合估計(jì)樣本數(shù)據(jù)。指定預(yù)采樣觀測(cè)值,并在估計(jì)過(guò)程終止時(shí)在每次迭代時(shí)繪制對(duì)數(shù)似然度。
?
訪問(wèn)預(yù)期的平滑狀態(tài)概率和對(duì)數(shù)似然
在估計(jì)馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型中考慮模型和數(shù)據(jù)?。
創(chuàng)建部分指定的模型進(jìn)行估計(jì)。
創(chuàng)建完全指定的模型,其中包含估計(jì)過(guò)程的初始參數(shù)值。
加載并預(yù)處理數(shù)據(jù)。
使模型擬合數(shù)據(jù)。當(dāng)算法終止時(shí),返回預(yù)期的平滑狀態(tài)概率和對(duì)數(shù)似然。
html[EstMdl,SS,logL] = estimate(Mdl,Mdl0,arate);
SS
?是預(yù)期平滑狀態(tài)概率的228 x 2矩陣;行對(duì)應(yīng)于估計(jì)樣本中的周期,列對(duì)應(yīng)于方案。?logL
?是最終的對(duì)數(shù)似然。
顯示估計(jì)樣本中最后一個(gè)時(shí)期的預(yù)期平滑狀態(tài)概率,并顯示最終對(duì)數(shù)似然。
htmlans = 1×2 ? ?0.8985 ? ?0.1015
htmllogL = -639.4962
執(zhí)行約束估計(jì)
?
將模擬數(shù)據(jù)擬合到具有VARX子模型的Markov轉(zhuǎn)換動(dòng)態(tài)回歸模型。指定用于估計(jì)的相等約束。
為DGP創(chuàng)建模型
為轉(zhuǎn)換區(qū)制創(chuàng)建一個(gè)完全指定的三態(tài)離散時(shí)間馬爾可夫鏈模型。
htmlP = [0.8 0.1 0.1; 0.2 0.6 0.2; 0 0.1 0.9];mc = dt(P);
對(duì)于每種狀態(tài),為響應(yīng)過(guò)程創(chuàng)建一個(gè)完全指定的VARX(1)模型。為所有子模型指定相同的模型常數(shù)和滯后1 AR系數(shù)矩陣。對(duì)于每個(gè)模型,為一個(gè)外生變量指定不同的回歸系數(shù)。
html% 常數(shù)C = [1;-1];% 自回歸系數(shù)AR = {[0.6 0.1; 0.4 0.2]};% 回歸系數(shù)Beta1 = [0.2;-0.4];% VAR 子模型dgp = varm('Constant',C,'AR',AR,'Covariance',5*eye(2));
為DGP創(chuàng)建完全指定的Markov轉(zhuǎn)換動(dòng)態(tài)回歸模型。
htmlms(mc,[dgp1; dgp2; dgp3]);
模擬來(lái)自DGP的數(shù)據(jù)
通過(guò)從均值0和方差100的高斯分布中生成1000個(gè)觀測(cè)值來(lái)模擬外生序列的數(shù)據(jù)。
htmlrng(1); % 重現(xiàn)性X = 10*randn(1000,1);
從DGP生成長(zhǎng)度為1000的隨機(jī)路徑。為子模型回歸指定模擬的外部數(shù)據(jù)。
htmlData = simulate(DGP,1000,'X',X);
Data
?是模擬的1000 x 1向量。
創(chuàng)建估計(jì)模型
創(chuàng)建一個(gè)部分指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型,該模型具有與數(shù)據(jù)生成過(guò)程相同的結(jié)構(gòu),但是指定了未知的轉(zhuǎn)換矩陣和未知的回歸系數(shù)。指定常數(shù)和AR系數(shù)矩陣的真值。
htmlms(mcEst,[mdl; mdl; mdl]);
由于常數(shù)和AR系數(shù)矩陣的值被指定在?Mdl
,?estimate
?將它們作為用于估計(jì)等式約束。
創(chuàng)建包含初始值的模型
創(chuàng)建具有與相同結(jié)構(gòu)的完全指定的馬爾可夫轉(zhuǎn)換動(dòng)態(tài)回歸模型?Mdl
,但將所有可估計(jì)參數(shù)設(shè)置為初始值,并將具有相等約束的參數(shù)設(shè)置為中指定的值?Mdl
。
估計(jì)模型
使模型擬合模擬數(shù)據(jù)。指定回歸的外部數(shù)據(jù)。在EM算法的每次迭代中繪制對(duì)數(shù)似然。
htmlfigureEstMdl = estimate(Mdl,Mdl0,Data,'X',X,'IterationPlot',true);
?
評(píng)估準(zhǔn)確性
將估計(jì)的回歸系數(shù)向量和轉(zhuǎn)移矩陣與其真實(shí)值進(jìn)行比較。
htmlBeta1 = 2×1 ? ?0.2000 ? -0.4000
htmlBeta1Estimate = 2×1 ? ?0.1596 ? -0.4040
htmlBeta2 = 2×1 ? ?0.6000 ? -1.0000
htmlBeta2Estimate = 2×1 ? ?0.5888 ? -0.9771
htmlBeta3 = 2×1 ? ?0.9000 ? -1.3000
htmlBeta3Estimate = 2×1 ? ?0.8987 ? -1.2991
htmlP = 3×3 ? ?0.8000 ? ?0.1000 ? ?0.1000 ? ?0.2000 ? ?0.6000 ? ?0.2000 ? ? ? ? 0 ? ?0.1000 ? ?0.9000
htmlPEstimate = 3×3 ? ?0.7787 ? ?0.0856 ? ?0.1357 ? ?0.1366 ? ?0.6906 ? ?0.1727 ? ?0.0086 ? ?0.0787 ? ?0.9127
點(diǎn)擊文末?“閱讀原文”
獲取全文完整代碼數(shù)據(jù)資料。
本文選自《Matlab馬爾可夫區(qū)制轉(zhuǎn)換動(dòng)態(tài)回歸模型估計(jì)GDP增長(zhǎng)率》。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語(yǔ)言隱馬爾可夫模型HMM連續(xù)序列重要性重抽樣CSIR估計(jì)隨機(jī)波動(dòng)率模型SV分析股票收益率時(shí)間序列
馬爾可夫Markov區(qū)制轉(zhuǎn)移模型分析基金利率
馬爾可夫區(qū)制轉(zhuǎn)移模型Markov regime switching
時(shí)變馬爾可夫區(qū)制轉(zhuǎn)換MRS自回歸模型分析經(jīng)濟(jì)時(shí)間序列
馬爾可夫轉(zhuǎn)換模型研究交通傷亡人數(shù)事故時(shí)間序列預(yù)測(cè)
如何實(shí)現(xiàn)馬爾可夫鏈蒙特卡羅MCMC模型、Metropolis算法?
Matlab用BUGS馬爾可夫區(qū)制轉(zhuǎn)換Markov switching隨機(jī)波動(dòng)率模型、序列蒙特卡羅SMC、M H采樣分析時(shí)間序列
R語(yǔ)言BUGS序列蒙特卡羅SMC、馬爾可夫轉(zhuǎn)換隨機(jī)波動(dòng)率SV模型、粒子濾波、Metropolis Hasting采樣時(shí)間序列分析
matlab用馬爾可夫鏈蒙特卡羅 (MCMC) 的Logistic邏輯回歸模型分析汽車實(shí)驗(yàn)數(shù)據(jù)
stata馬爾可夫Markov區(qū)制轉(zhuǎn)移模型分析基金利率
PYTHON用時(shí)變馬爾可夫區(qū)制轉(zhuǎn)換(MRS)自回歸模型分析經(jīng)濟(jì)時(shí)間序列
R語(yǔ)言使用馬爾可夫鏈對(duì)營(yíng)銷中的渠道歸因建模
matlab實(shí)現(xiàn)MCMC的馬爾可夫轉(zhuǎn)換ARMA - GARCH模型估計(jì)
R語(yǔ)言隱馬爾可夫模型HMM識(shí)別不斷變化的股票市場(chǎng)條件
R語(yǔ)言中的隱馬爾可夫HMM模型實(shí)例
用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況—隱馬爾科夫模型(HMM)
Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計(jì)隨機(jī)波動(dòng)率(SV,Stochastic Volatility) 模型
MATLAB中的馬爾可夫區(qū)制轉(zhuǎn)移(Markov regime switching)模型
Matlab馬爾可夫區(qū)制轉(zhuǎn)換動(dòng)態(tài)回歸模型估計(jì)GDP增長(zhǎng)率
R語(yǔ)言馬爾可夫區(qū)制轉(zhuǎn)移模型Markov regime switching
stata馬爾可夫Markov區(qū)制轉(zhuǎn)移模型分析基金利率
R語(yǔ)言如何做馬爾可夫轉(zhuǎn)換模型markov switching model
R語(yǔ)言隱馬爾可夫模型HMM識(shí)別股市變化分析報(bào)告
R語(yǔ)言中實(shí)現(xiàn)馬爾可夫鏈蒙特卡羅MCMC模型