首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

R语言离散时间马尔可夫链(Markov chain)模型分类案例可视化分析

全文链接:https://tecdat.cn/?p=34576

相关视频

在本文中,我们将探索离散时间Markov链的一些基本属性。

使用离散时间马尔科夫链的大部分涉及操纵与链相关联的转移概率的矩阵。第一部分代码复制了Oz转移概率矩阵。然后,来自expm包的有效算符%^%用于将Oz矩阵提高到三次方。最后,OZ ^ 3的左矩阵乘以分布向量u =(1/3,1/3,1/3)给出三天前的天气预报。

stteNs

Oz

nrw=3, brw=TRUE)

pta(Oz,pos = c(1,2),

lwd = 1, box.lwd = 2,

self.shiftx = .13,

main = "")

左右滑动查看更多

01

02

03

04

Oz3

rnd(Oz3,3)

rud(u %*% Oz3,3)

下一个代码块再现了5状态Drunkward的步行示例,其给出了吸收马尔可夫链的基本原理。首先,描述链的转移矩阵被实例化为S4类makrovchain的对象。然后,来自马尔可夫链包的函数用于识别链的吸收和瞬变状态,并将转换矩阵P置于规范形式中。

DW

Dmc

醉酒的步行问题

一个具有以下状态的5维离散马尔科夫链 0 1 2 3 4 ,转换矩阵(按行)定义如下:

#0 1 2 3 4

#0 1.0 0.0 0.0 0.0 0.0

#1 0.5 0.0 0.5 0.0 0.0

#2 0.0 0.5 0.0 0.5 0.0

#3 0.0 0.0 0.5 0.0 0.5

#4 0.0 0.0 0.0 0.0 1.0

确定瞬时状态

trnieSttes(Dmc)

#确定吸收状态

absrngtates(DWmc)

规范形式

在规范形式中,转换矩阵P被分割成恒等矩阵I,一个0的矩阵,矩阵Q包含瞬态的概率,矩阵R包含吸收的概率状态。

接下来,我们通过反转(I-Q)找到基本矩阵N. 对于每个瞬态状态,j,nij给出了处于状态j的过程的预期次数,假定它在瞬态i开始。ui是给定处理在状态i开始的吸收的预期时间。最后,我们计算矩阵B,其中bij是在状态j中处理将被吸收的概率,假设它在状态i开始。

查找矩阵Q

gRQ

tm

d

m

n

ifese(te=="Q",

A

}

将DWmc放入规范表单

P

P

Q

查找基本矩阵

I

N

N

计算吸收时间

c

u

u

R

B

B

对于处理正则和遍历马尔科夫链,我们返回到Oz,并且提供用于计算稳态的四个选项,或者限定该规则转移矩阵的概率分布。前三个选项涉及在R中容易获得的标准方法。方法1使用%^%来将矩阵O z提高到足够高的值。方法2计算特征向量1的特征值,方法3计算空间或与矩阵相关联的线性变换的核。要使用此函数,我们首先将Oz转换为markovchain对象。

Ergodic Markov链

四种获得稳定状态的方法 :

方法1:计算Matrix上的权重

rud(Oz %^% 6,2

方法2:计算特征值1的特征向量

eieOz

ev

ev

方法3:计算(P-I)

I

ns

ns

ns

方法4:使用函数

OC

staes=statNams,

transtinMarix=

nrow=3,

bo=TRUE,

dimnaes=ist(staeNas,satNames)))

sedSte(Oz)

对于相当大的马尔可夫链,函数似乎是相当有效的。以下代码创建一个5,000行乘以5000列常规马尔可夫矩阵。创建markovchain对象和计算稳态分布。

创建一个大的随机规则矩阵

radeg

regM

return(regM)

}

.tim(reMC

trastinMatrix= M,

name = "M"))

stm.time(ss

我们通过使用rarkovhain函数来模拟这个大随机矩阵表示的过程的轨迹并绘制结果来结束这个小马尔可夫链偏移。看来这是一种用于模拟静态时间序列的合理方法。

样品来自regMC

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OywyCg8xwfucs_rFi48BYHuQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券