動力系統(tǒng)的馬爾科夫鏈——Python數(shù)學建模極簡入門(九)

本文將在前面介紹的動力系統(tǒng)的基礎上焰檩,解釋馬爾科夫鏈的知識

首先介紹一下概念,馬爾科夫鏈是由具有以下性質(zhì)的一系列事件構(gòu)成的過程:

  1. 一個事件有有限多個結(jié)果专控,稱為狀態(tài)沾歪,該過程總是這些狀態(tài)中的一個;
  2. 在過程的每個階段或者時段鸯匹,一個特定的結(jié)果可以從它現(xiàn)在的狀態(tài)轉(zhuǎn)移到任何狀態(tài)坊饶,或者保持原狀;
  3. 每個階段從一個狀態(tài)轉(zhuǎn)移到其他狀態(tài)的概率用一個轉(zhuǎn)移矩陣表示殴蓬,矩陣每行的各元素在0到1之間匿级,每行的和為1。
實例:選舉投票趨勢的預測(實例來自于華章數(shù)學譯叢版《數(shù)學建娜咎》)

以美國大選為例痘绎,首先取得過去十次選舉的歷史數(shù)據(jù),然后根據(jù)歷史數(shù)據(jù)得到選民意向的轉(zhuǎn)移矩陣肖粮。我們假設得到了如下的轉(zhuǎn)移矩陣(很明顯這個數(shù)據(jù)不是真實的):

轉(zhuǎn)移矩陣
三狀態(tài)馬爾科夫鏈

這樣就形成了一個差分方程組

Rn+1 = 0.75Rn+0.20Dn+0.40In
Dn+1 = 0.05Rn+0.60Dn+0.20In
In+1 = 0.20Rn+0.20Dn+0.40In

根據(jù)我們以前將差分方程組的內(nèi)容孤页,可以推測出選民投票意向的長期趨勢

import matplotlib.pyplot as plt
RLIST = [0.33333]
DLIST = [0.33333]
ILIST = [0.33333]
for i in range(40):
    R = RLIST[i]*0.75 + DLIST[i]*0.20 + ILIST[i]*0.40
    RLIST.append(R)
    D = RLIST[i]*0.05 + DLIST[i]*0.60 + ILIST[i]*0.20
    DLIST.append(D)
    I = RLIST[i]*0.20 + DLIST[i]*0.20 + ILIST[i]*0.40
    ILIST.append(I)
plt.plot(RLIST)
plt.plot(DLIST)
plt.plot(ILIST)
plt.xlabel('Time')
plt.ylabel('Voting percent')
plt.annotate('DemocraticParty',xy = (5,0.2))
plt.annotate('RepublicanParty',xy = (5,0.5))
plt.annotate('IndependentCandidate',xy = (5,0.25))
plt.show()
print(RLIST,DLIST,ILIST)
投票意向的圖形解

最后得到的長期趨勢是:56%的人選共和黨、19%的人選民主黨涩馆、25%的人選獨立候選人行施。


這個問題還可以直接用矩陣來解
關(guān)于馬爾科夫鏈的轉(zhuǎn)移矩陣性質(zhì)還有一個定理叫Chapman-kolmogorov方程:

C-K方程

也就是說P(m) = (Pij(m))是從狀態(tài)i到狀態(tài)j的m步轉(zhuǎn)移矩陣允坚。熟悉矩陣運算的朋友應該很容易就能證明出來。

我們已經(jīng)得到了一步轉(zhuǎn)移矩陣悲龟,只需做個迭代就可以了:

import numpy as np
a = np.array([[0.75,0.05,0.20],[0.20,0.60,0.20],[0.40,0.20,0.40]])
p = np.mat(a)
for i in range(40):
    p = p*p   
print(p)```
得到40步轉(zhuǎn)移矩陣:
```[[ 0.55560086  0.1944603   0.25002039]
 [ 0.55560086  0.1944603   0.25002039]
 [ 0.55560086  0.1944603   0.25002039]]```
跟前面差分方程模擬結(jié)果一致屋讶,實際應用中往往使用這種方式來求解。


> 想了解馬爾科夫鏈的升級版隱馬爾可夫模型的朋友可以移步知乎:
[如何用簡單易懂的例子解釋隱馬爾科夫模型](https://www.zhihu.com/question/20962240)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末须教,一起剝皮案震驚了整個濱河市皿渗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轻腺,老刑警劉巖乐疆,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贬养,居然都是意外死亡挤土,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門误算,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仰美,“玉大人,你說我怎么就攤上這事儿礼】г樱” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵蚊夫,是天一觀的道長诉字。 經(jīng)常有香客問我,道長知纷,這世上最難降的妖魔是什么壤圃? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮琅轧,結(jié)果婚禮上伍绳,老公的妹妹穿的比我還像新娘。我一直安慰自己乍桂,他們只是感情好冲杀,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著模蜡,像睡著了一般漠趁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上忍疾,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天闯传,我揣著相機與錄音,去河邊找鬼卤妒。 笑死甥绿,一個胖子當著我的面吹牛字币,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播共缕,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼洗出,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了图谷?” 一聲冷哼從身側(cè)響起翩活,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎便贵,沒想到半個月后菠镇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡承璃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年利耍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盔粹。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡隘梨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出舷嗡,到底是詐尸還是另有隱情轴猎,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布咬崔,位于F島的核電站税稼,受9級特大地震影響烦秩,放射性物質(zhì)發(fā)生泄漏垮斯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一只祠、第九天 我趴在偏房一處隱蔽的房頂上張望兜蠕。 院中可真熱鬧,春花似錦抛寝、人聲如沸熊杨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晶府。三九已至,卻和暖如春钻趋,著一層夾襖步出監(jiān)牢的瞬間川陆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工蛮位, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留较沪,地道東北人鳞绕。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像尸曼,于是被迫代替她去往敵國和親们何。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容