主要内容

创建和修改马尔可夫链模型对象

一个状态转换矩阵P描述了一个离散时间、时间齐次马尔可夫链。的支持形式的详细信息金宝appP,请参阅离散马尔可夫链对象框架概述.如果您有一个理论或经验状态转换矩阵,使用创建一个马尔可夫链模型对象dtmc.否则,您可以从指定结构的随机生成的转换矩阵创建一个马尔可夫链,例如不可行转换的数量,通过使用mcmix

从随机转移矩阵创建马尔可夫链

这个例子展示了如何创建一个马尔可夫链对象来使用随机转换矩阵来模拟一个假设的经济周期。

假设美国实际国内生产总值(GDP)的动态行为在四个模型之间切换:

  • 体制1:具有低均值和低波动性的自回归模型

  • 体制2:具有低均值和高波动性的自回归模型

  • 体制3:具有高均值和低波动性的自回归模型

  • 体制4:具有高均值和高波动性的自回归模型

考虑这个右随机转移矩阵,它包含了时间步间状态转移的概率t而且t+ 1,所有t

P 0 5 0 5 0 0 0 5 0 0 5 0 0 0 0 1 0 0 1 0

例如, P 2 3. 0 5 表示实际GDP在下一个时间步中从状态2过渡到状态3的概率为0.5。

将转换矩阵设置为一个变量。

P = [0.5 0.5 0.0 0.0;0.5 0.0 0.5 0.0;0.0 0.0 0.0 1.0;0.0 0.0 1.0 0.0];

创建一个以转换矩阵为特征的马尔可夫链对象P

mc = dtmc(P)
mc = dtmc with properties: P: [4x4 double] StateNames: ["1" "2" "3" "4"] NumStates: 4

mc是一个dtmc对象。MATLAB®显示的属性和相应的值mc在命令行。

名称与状态的关联增强了函数输出和链图的显示。创建马尔可夫链对象时,可以使用“StateNames”名称-值对参数。对象创建后,可以通过设置名称与状态相关联StateNames属性使用点表示法。

中的州关联名称mc用点表示法。包含名称的字符串向量的元素对应于的行和列P

stateNames = [“政权1”“政权2”“政权3”“政权4”];mc.StateNames = stateNames;

画一个马尔可夫链的有向图。

图;graphplot (mc);

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

在创建和绘制马尔可夫链之后,您可以通过使用确定链的特征,例如它的平稳分布渐近或者它的状态分布演化再分配

从随机转移矩阵创建马尔可夫链

这个例子展示了如何从一个随机生成的右随机转换矩阵创建一个马尔可夫链对象。这样的马尔可夫链便于探索和测试。

创建一个包含五个任意状态的随机马尔可夫链对象。

rng (1);%用于再现性numStates = 5;mc = mcmix(numStates)
mc = dtmc with properties: P: [5x5 double] StateNames: ["1" "2" "3" "4" "5"] NumStates: 5

mc是一个dtmc对象。

显示转换矩阵,并验证每一行的和为1。

mc.P
ans =5×50.3259 0.0358 0.1149 0.1632 0.0298 0.1478 0.2409 0.2626 0.3189 0.0162 0.3982 0.3469 0.1166 0.1221 0.0944 0.2965 0.0102 0.4389 0.1600 0.3439 0.2710 0.2938 0.0404 0.0509
sum (mc.P, 2)
ans =5×11.0000 1.0000 1.0000 1.0000

画一个马尔可夫链的有向图。使用边缘颜色表示转换的概率。

图;graphplot (mc,“ColorEdges”,真正的);

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

指定随机马尔可夫链的结构

这个例子展示了如何指定某些不可行的转换,并在马尔可夫链的转换矩阵中随机分布其他转换。

从一个随机转换矩阵创建一个六态马尔可夫链。绘制它的有向图,并使用边缘颜色指示转换概率。

rng (1);%用于再现性numStates = 6;mc1 = mcmix(numStates);图;graphplot(哪“ColorEdges”,真正的)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

mcmix产生一个马尔可夫链,这样所有的状态都是持久的,所有的状态都可以从任何其他状态到达。

创建另一个六态马尔可夫链,但没有任何持久状态,在转换矩阵的随机位置上有12个其他不可行的转换。

Fix = ones(numStates) - eye(numStates);Fix(Fix == 1) = NaN;零= 12;mc2 = mcmix(numStates,“零”0,“修复”、解决);

的转换矩阵mc2.的有向图mc2并使用边缘颜色表示转换概率。

mc2。P
ans =6×60 0.4845 0 0.0344 0 0.4811 0.5107 0 0.0791 0 0 0.4102 0.1397 0.2701 0 0.2954 0.2948 0 0.4767 0.5233 0 0 0 0 0.3710 0 0.5550 0 0 0.0740 0.0179 0.1947 0.7874 0 0 0 0
图;graphplot (mc2,“ColorEdges”,真正的)

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

另请参阅

对象

功能

相关的话题