matlab對(duì)國(guó)內(nèi)生產(chǎn)總值(GDP)建立馬爾可夫鏈模型(MC)并可視化|附代碼數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=17549
最近我們被客戶要求撰寫(xiě)關(guān)于馬爾可夫鏈模型的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
本示例說(shuō)明如何創(chuàng)建并可視化Markov鏈模型的結(jié)構(gòu)和演化???紤]從隨機(jī)轉(zhuǎn)移矩陣中創(chuàng)建馬爾可夫鏈的四狀態(tài)馬爾可夫鏈,該模型模擬了國(guó)內(nèi)生產(chǎn)總值(GDP)的動(dòng)態(tài)?
創(chuàng)建實(shí)際GDP的馬爾可夫鏈模型。指定狀態(tài)名稱。
P = [0.5 0.5 0.0 0.0;
? ? 0.5 0.0 0.5 0.0;
? ? 0.0 0.0 0.0 1.0;
? ? 0.0 0.0 1.0 0.0];stateNames = ["Regime 1" "Regime 2" "Regime 3" "Regime 4"];mc = mc(P,'StateNames'
可視化馬爾可夫鏈的一種方法是繪制轉(zhuǎn)移矩陣的熱圖。
figure;imagesc(P);colormap(jet);colorbar;axis squar

點(diǎn)擊標(biāo)題查閱往期內(nèi)容

R語(yǔ)言連續(xù)時(shí)間馬爾科夫鏈模擬案例 Markov Chains

左右滑動(dòng)查看更多

01

02

03

04

有向圖
有向圖將鏈中的狀態(tài)顯示為節(jié)點(diǎn),并將狀態(tài)之間的可行轉(zhuǎn)換顯示為有向邊。
繪制馬爾可夫鏈的默認(rèn)有向圖。
figure;plot(mc);

通過(guò)基于轉(zhuǎn)移概率指定邊緣顏色來(lái)比較轉(zhuǎn)移概率。
figure;plot(mc,'ColorEdges'

通過(guò)根據(jù)狀態(tài)類型指定節(jié)點(diǎn)顏色和標(biāo)記來(lái)識(shí)別循環(huán)狀態(tài)和瞬態(tài)狀態(tài)。
figure;h = hplot(mc,'ColorEdges',true,

?
低均值狀態(tài)是瞬態(tài)的,最終轉(zhuǎn)移到遞歸的高均值狀態(tài)。
節(jié)點(diǎn)標(biāo)簽的默認(rèn)字體大小為8。將字體大小減少到7。
FontSize = 7;

?
混合圖
可以通過(guò)在有向圖中繪制目標(biāo)概率和預(yù)期的第一次命中時(shí)間來(lái)可視化。
?從馬爾可夫鏈中的每個(gè)狀態(tài)開(kāi)始計(jì)算命中目標(biāo)狀態(tài)的指定子集的概率。其中節(jié)點(diǎn)顏色表示命中概率。
繪制馬爾可夫鏈的有向圖,其中節(jié)點(diǎn)顏色表示命中方案1的概率。
htp(mc,"Regime 1",'Graph

?
?從馬爾可夫鏈中的每個(gè)狀態(tài)開(kāi)始,計(jì)算目標(biāo)狀態(tài)的指定子集的預(yù)期首次命中時(shí)間。其中節(jié)點(diǎn)顏色表示命中時(shí)間。
繪制馬爾可夫鏈的有向圖,其節(jié)點(diǎn)顏色表示包含狀態(tài)3和4的目標(biāo)子類的預(yù)期首次命中時(shí)間。
target = ["Regime 3" "Regime 4"];htime(mc,target

從方案1開(kāi)始,該子類的預(yù)期首次命中時(shí)間為6個(gè)時(shí)間步長(zhǎng)。
特征值圖
特征值圖顯示了復(fù)平面上的特征值。特征值圖并標(biāo)識(shí):
Perron-Frobenius特征值,使用粗體星號(hào)為非負(fù)矩陣。
光譜間隙,即長(zhǎng)度等于第二大特征值幅度(SLEM)的半徑和長(zhǎng)度為1的半徑之間的區(qū)域。光譜間隙決定了馬爾可夫鏈的混合時(shí)間。大間隙表示混合較快,而細(xì)間隙表示混合較慢。
在復(fù)雜平面上繪制并返回轉(zhuǎn)換矩陣的特征值。
figure;eigplt(mc)

?
eVals = 4×1
? ?0.8090
? -0.3090
? ?1.0000
? -1.0000
兩個(gè)特征值的模量為1,表明馬爾可夫鏈的周期為2。
重新分配圖
重新分布圖從初始分布繪制了狀態(tài)重新分布。?使用馬爾可夫鏈對(duì)象生成的數(shù)據(jù)來(lái)繪制重新分布???梢詫⒅匦路植祭L制為靜態(tài)熱圖或動(dòng)畫(huà)直方圖或有向圖。
從初始分布生成10步重新分布。
redis(mc,numSteps,'X0',x0);
將重新分布繪制為熱圖。

?
由于狀態(tài)1和狀態(tài)2是瞬態(tài)的,因此馬爾可夫鏈最終將概率集中在狀態(tài)3和狀態(tài)4。此外,如特征值圖所示,狀態(tài)3和狀態(tài)4的周期為2。
繪制動(dòng)畫(huà)直方圖。將幀速率設(shè)置為一秒。

?
仿真圖
仿真圖繪制了從特定初始狀態(tài)開(kāi)始的馬爾可夫鏈的隨機(jī)游動(dòng)圖。?
生成100個(gè)十步隨機(jī)游走,其中每個(gè)狀態(tài)都會(huì)初始化游走25次。
simu(mc,numSteps,
將模擬繪制為熱圖,以顯示每個(gè)步驟達(dá)到的狀態(tài)比例。

?
繪制已實(shí)現(xiàn)轉(zhuǎn)移矩陣的熱圖。
figure;simp(mc,X,'Type','transition');

所實(shí)現(xiàn)的轉(zhuǎn)移矩陣看起來(lái)類似于理論轉(zhuǎn)移矩陣。

點(diǎn)擊文末?“閱讀原文”
獲取全文完整代碼數(shù)據(jù)資料。
本文選自《matlab對(duì)國(guó)內(nèi)生產(chǎn)總值(GDP)建立馬爾可夫鏈模型(MC)并可視化》。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容
PYTHON用時(shí)變馬爾可夫區(qū)制轉(zhuǎn)換(MARKOV REGIME SWITCHING)自回歸模型分析經(jīng)濟(jì)時(shí)間序列
R語(yǔ)言中實(shí)現(xiàn)馬爾可夫鏈蒙特卡羅MCMC模型matlab貝葉斯隱馬爾可夫hmm模型實(shí)現(xiàn)
R語(yǔ)言如何做馬爾科夫轉(zhuǎn)換模型markov switching model
matlab中的隱馬爾可夫模型(HMM)實(shí)現(xiàn)
R語(yǔ)言馬爾可夫體制轉(zhuǎn)換模型Markov regime switching
R語(yǔ)言馬爾可夫轉(zhuǎn)換模型研究交通傷亡人數(shù)事故預(yù)測(cè)
R語(yǔ)言中的馬爾科夫機(jī)制轉(zhuǎn)換(Markov regime switching)模型
用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況—隱馬爾科夫模型(HMM)股票指數(shù)預(yù)測(cè)實(shí)戰(zhàn)
用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應(yīng)用
R語(yǔ)言中實(shí)現(xiàn)馬爾可夫鏈蒙特卡羅MCMC模型用R語(yǔ)言模擬M / M / 1隨機(jī)服務(wù)排隊(duì)系統(tǒng)
用R語(yǔ)言模擬混合制排隊(duì)隨機(jī)服務(wù)排隊(duì)系統(tǒng)
用R語(yǔ)言模擬M/M/1隨機(jī)服務(wù)排隊(duì)系統(tǒng)