亚稳态之间的转移概率矩阵

问题描述 投票:0回答:1

我计算了具有四个亚稳态的马尔可夫状态模型的转移矩阵。我想知道亚稳态之间转变的概率,为此我认为我应该获得一个 4x4 矩阵。

我试图用这段代码获取所述矩阵,但事实证明,在该矩阵的某些条目中出现了大于1的值,这对我来说似乎很奇怪:

nstates = 4
transition_matrix_meta = np.zeros((nstates, nstates))
for i in range(nstates):
    for j in range(nstates):
        
        pi_i = msm.pi[msm.metastable_sets[i]].sum()
        
          T_i_to_j = msm.transition_matrix[msm.metastable_sets[i]][:, 
                  msm.metastable_sets[j]]
        
        
        P_i_to_j = pi_i * T_i_to_j.sum()
        
        
        transition_matrix_meta[i, j] = P_i_to_j



print(transition_matrix_meta)

我的代码正确吗?

python matrix probability markov-models nest-dynamic-modules
1个回答
0
投票

您的代码似乎位于右侧,但可能存在规范化问题。

transition_matrix_meta 总和为 1

nstates = 4
transition_matrix_meta = np.zeros((nstates, nstates))

for i in range(nstates):
    for j in range(nstates):
        pi_i = msm.pi[msm.metastable_sets[i]].sum()
        T_i_to_j = msm.transition_matrix[msm.metastable_sets[i]][:, msm.metastable_sets[j]]
        P_i_to_j = pi_i * T_i_to_j.sum()
        
        transition_matrix_meta[i, j] = P_i_to_j

# Normalize the rows
transition_matrix_meta = transition_matrix_meta / transition_matrix_meta.sum(axis=1, keepdims=True)

print(transition_matrix_meta)
© www.soinside.com 2019 - 2024. All rights reserved.