在马尔可夫链中,平稳分布向量(Stationary Distribution Vector)指的是当链在经过足够长的时间后,状态分布不再随时间变化,达到稳定的状态时的分布。
如果一个马尔可夫链具有平稳分布,那么无论起始状态是什么,在足够长的时间后,链上的状态分布将会趋于一个固定的分布。这个稳定的分布被称为平稳分布或稳定分布。
对于一个离散状态空间的马尔可夫链,平稳分布向量是一个概率分布向量,表示每个状态在平稳状态下的概率。如果状态空间有 n n n 个状态,那么平稳分布向量是一个长度为 n n n 的概率向量 π = [ π 1 , π 2 , … , π n ] \pi = [\pi_1, \pi_2, \dots, \pi_n] π=[π1,π2,…,πn],其中每个 π i \pi_i πi表示在平稳状态下处于状态 i i i的概率。
马尔可夫链达到平稳分布的条件通常是马尔可夫链是不可约、非周期的,并且满足遍历性。平稳分布向量是马尔可夫链理论中重要的概念,它描述了链在长时间内状态的分布情况,对于分析链的稳定性和长期行为非常有用。
假设我们有一个简单的马尔可夫链,状态空间为 { A , B , C } \{A, B, C\} {A,B,C},并且具有以下转移概率矩阵:
P = [ 0.2 0.4 0.4 0.3 0.2 0.5 0.6 0.1 0.3 ] P = \begin{bmatrix} 0.2 & 0.4 & 0.4 \\ 0.3 & 0.2 & 0.5 \\ 0.6 & 0.1 & 0.3 \\ \end{bmatrix} P= 0.20.30.60.40.20.10.40.50.3
我们可以通过迭代来找到这个马尔可夫链的平稳分布向量。
首先,我们需要找到矩阵 P P P 的特征值和特征向量。由于这是一个概率转移矩阵,它满足不可约性和遍历性,因此有一个特征值为 1。我们将找到特征值为 1 的对应特征向量。
在马尔可夫链的理论中,概率转移矩阵 P P P 具有一些特殊的性质,其中包括不可约性和遍历性。这些性质影响着特征值和特征向量的性质。
对于概率转移矩阵 P P P:
- 不可约性:意味着从任意状态出发都可以到达其他任意状态。在转移矩阵中,不可约性表示存在一些步骤可以从任意状态转移到另一个任意状态。
- 遍历性:表示马尔可夫链中的状态之间不存在周期性的循环,这样就能够在有限步骤内从一个状态转移到另一个状态。
由于概率转移矩阵 P P P满足这些性质,这导致了特征值和特征向量的特殊性质:
- 在这样的转移矩阵中,特征值的绝对值不大于 1。
- 如果马尔可夫链是不可约的且遍历的,那么它具有一个特征值为 1。
这个特征值为 1 的性质与平稳分布相关联。对于马尔可夫链,当特征值为 1 时,对应的特征向量(归一化后)代表了平稳分布向量。在平稳状态下,链的状态分布不再随时间变化,而是收敛到一个稳定的分布,这个分布就是平稳分布。
因此,通常情况下我们寻找特征值为 1 的特征向量,以便确定马尔可夫链的平稳分布。
import numpy as np
P = np.array([
[0.2, 0.4, 0.4],
[0.3, 0.2, 0.5],
[0.6, 0.1, 0.3]
])
# 计算矩阵 P 的特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(P.T)
找到特征值为 1 的特征向量后,我们将其进行归一化处理,以得到平稳分布向量。
# 找到特征值为 1 的索引
index = np.where(np.isclose(eigenvalues, 1))[0][0]
# 获取对应的特征向量
stationary_vector = np.abs(eigenvectors[:, index]) / np.sum(np.abs(eigenvectors[:, index]))
print(stationary_vector)
计算得到的 stationary_vector
就是这个马尔可夫链的平稳分布向量,它描述了在长时间后,每个状态的概率分布情况。
这个例子演示了如何通过计算特征向量来找到马尔可夫链的平稳分布向量。