馬爾科夫狀態轉移矩陣


  狀態轉移矩陣是俄國數學家馬爾科夫提出的,他在20世紀初發現:一個系統的某些因素在轉移過程中,第n次結果只受第n-1的結果影響,即只與上一時刻所處狀態有關,而與過去狀態無關。 在馬爾科夫分析中,引入狀態轉移這個概念。所謂狀態是指客觀事物可能出現或存在的狀態;狀態轉移是指客觀事物由一種狀態轉移到另一種狀態

  在狀態轉移矩陣中,矩陣各元素表示狀態轉移的概率,並且各行元素之和等於1,其現實意義是,各個狀態的百分比總和為1

  假定某大學有1萬學生,每人每月用1支牙膏,並且只使用“中華”牙膏與“黑妹”牙膏兩者之一。根據本月(12月)調查,有3000人使用黑妹牙膏,7000人使用中華牙膏。又據調查,使用黑妹牙膏的3000人中,有60%的人下月將繼續使用黑妹牙膏,40%的人將改用中華牙膏; 使用中華牙膏的7000人中, 有70%的人下月將繼續使用中華牙膏,30%的人將改用黑妹牙膏。據此,可以得到以下轉移矩陣

  

  通過轉移矩陣與初始化狀態,即可預測之后月份兩種牙膏的市場占比

  代碼實現如下:

  

import matplotlib.pyplot as plt
import numpy as np


def markov():
    current_status = np.array([3000, 7000])
    transfer_matrix = np.array([[0.6, 0.4], [0.3, 0.7]])
    img_points = []
    for i in range(100):
        current_status = np.dot(current_status, transfer_matrix)
        img_points.append(current_status)
        print(i, "\t", current_status)
    plt.plot(img_points)
    plt.show()


markov()

  程序運行結果如下:

  

  經過N次轉換后,兩種牙膏的市場占比趨於一個固定的數值:4285.71428571,5714.28571429

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM