假設說,抽菸和不抽菸的人群之間有一定的概率互相轉化,且相互轉化的概率如下圖所示
即:抽菸的人第二天仍然抽菸的概率是0.8
不抽菸的人第二天開始抽菸的概率是0.1
不抽菸的人第二天仍然不抽菸的概率是0.9
抽菸的人第二天開始不抽菸的概率是0.2
我們用程式去模擬抽菸與不抽菸人群相互轉化的過程:
首先任意假定乙個初始狀態:抽菸與不抽菸的人群在實驗開始前分別有500人
依據上圖,定義轉移概率矩陣為:
使用下述**進行模擬
import執行上述**得到的結果如下:numpy as np
import
matplotlib.pyplot as plt
import
matplotlib as mpl
import
math
transfer_matrix = np.array([[0.8, 0.1],[0.2,0.9]],dtype='
float32')
somking_matrix = np.array([[500],[500]],dtype='
float32')
number_somking = [500]
number_nosomking = [500]
for i in range(30):
somking_matrix =np.dot(transfer_matrix,somking_matrix)
#print(somking_matrix)
(number_somking)
(number_nosomking)
x = np.arange(31)
plt.plot(x,number_somking,label='
somking')
plt.plot(x,number_nosomking,label='
nosomking')
plt.legend()
plt.show()
抽菸人數在30天內的變化為:[500, 450.0, 415.0, 390.5, 373.35, 361.34503, 352.9415, 347.05905, 342.94135, 340.05896, 338.04126, 336.62888, 335.6402, 334.94815, 334.4637, 334.1246, 333.8872, 333.72107, 333.60477, 333.52335, 333.46637, 333.42645, 333.39853, 333.379, 333.36533, 333.35574, 333.34903, 333.34433, 333.34106, 333.33875, 333.33713]
不抽菸人數在30天內的變化為:[500, 550.0, 585.0, 609.5, 626.64996, 638.6549, 647.0584, 652.94086, 657.05853, 659.9409, 661.9586, 663.37103, 664.35974, 665.0518, 665.53625, 665.87537, 666.1128, 666.279, 666.39526, 666.4767, 666.5336, 666.57355, 666.6015, 666.62103, 666.6347, 666.6443, 666.651, 666.6557, 666.659, 666.6613, 666.6629]
繪製影象為:
現在,我們更換初始狀態:抽菸與不抽菸的人群在實驗開始前分別有1000人和0人
再次執行**,得到的結果如下:
抽菸人數在30天內的變化為:[1000, 800.0, 660.0, 562.0, 493.4, 445.38, 411.76602, 388.2362, 371.76535, 360.23575, 352.165, 346.51553, 342.56088, 339.7926, 337.85483, 336.49838, 335.54886, 334.88422, 334.41895, 334.09326, 333.8653, 333.70572, 333.594, 333.5158, 333.46106, 333.42276, 333.39594, 333.37717, 333.36404, 333.35486, 333.34842]
不抽菸人數在30天內的變化為:[0, 200.0, 340.0, 438.0, 506.59998, 554.62, 588.234, 611.7638, 628.2346, 639.7642, 647.83496, 653.48444, 657.4391, 660.2074, 662.14514, 663.5016, 664.4511, 665.1157, 665.581, 665.9067, 666.13464, 666.29425, 666.40594, 666.48413, 666.5389, 666.57715, 666.604, 666.6228, 666.6359, 666.6451, 666.6515]
重新繪製影象如下:
通過兩次實驗我們可以看出:
1.隨著時間的推進,抽菸和不抽菸的人數總會保持在某個值(即馬爾可夫鏈達到了平穩分布)
2.改變初始條件,而不改變轉移概率矩陣,並不改變最終的值
並不是所有的馬爾可夫鏈都具有平穩分布,定理:不可約且非週期的有限狀態馬爾可夫鏈,有唯一平穩分布存在。
1.不可約性:乙個不可約的馬爾可夫鏈,從任意狀態出發,當經過充分長時間後,可以到達任意狀態。
2.非週期性:所有狀態的出現不是單一過程的反覆迴圈
馬爾可夫鏈
馬爾可夫鏈,因安德烈 馬爾可夫 a.a.markov,1856 1922 得名,是指數學中具有馬爾可夫性質的離散事件 隨機過程 該過程中,在給定當前知識或資訊的情況下,過去 即當前以前的歷史狀態 對於 將來 即當前以後的未來狀態 是無關的。x1,x2,x3.馬爾可夫鏈 markov chain 描述...
馬爾可夫鏈
定義設 是乙個隨機過程,如果 在 t0 時刻所處的狀態已知,它在時刻 t t0 所處的狀態的條件分布與其在 t0 之前所處的狀態無關。通俗地說,就是在知道過程現在的條件下,其將來的條件分布不依賴於過去,則稱 隨機過程 具有馬爾可夫 markov 性 是乙個隨機過程,若其滿足馬爾可夫性,則稱其為馬爾可...
馬爾可夫鏈
1.馬氏性 未來的狀態值只與當前狀態有關,與前面的狀態無關,具體為 2.時變性 就是指轉移概率僅僅與時間間隔寬度有關,和時間始點終點無關。m 步 轉移到狀態j 的轉移概率。例 某計算機機房的一台計算機經常出故障,研究者每隔15 分鐘觀察一次計算 機的執行狀態,收集了24 小時的資料 共作97 次觀察...