news 2026/6/9 18:53:17

R语言演示对没有吸收状态的马尔科夫链分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
R语言演示对没有吸收状态的马尔科夫链分析

马尔科夫链既往我在系列文章《手把手带你复现一篇一区9.1分肌少症和马尔科夫链》的文章已经有过介绍,它的特点是:“未来只取决于现在,与过去无关”。主要研究的是状态和概率的变化。比如我在手机打字:你nih,会出现很多选项:你好,你和,你还等等,这就是软件统计了咱们打各个字符的概率,这个就是马尔科夫链的一个应用。自然语言处理:用马尔科夫链生成文本(比如根据前一个词预测下一个词)。


在既往文章中咱们介绍的是由吸收状态的马尔科夫链,问题来了,什么是吸收状态的马尔科夫链?这个就是相当于有一个结局变量,比如在《手把手带你复现一篇一区9.1分肌少症和马尔科夫链》这篇文章中死亡是它的结局变量,分析了肌少症在不同时期的转换最后死亡的关系,没有结局变量也是能做的,研究的是协变量对概率转换的影响,下面我来演示一下

先导入数据和R包

library(scitable)library(ggscitable)library(tidyverse)setwd("E:/公众号文章2025年/charls+马尔科夫链")bc2<-read.csv('bcmsm.csv',header=T)str(bc2)


这个是个非常简单的数据,而且是模拟数据,不对临床操作产生建议,time是时间,state这里是我自定义的,我把肾功能的肌酐按低到高,把肾功能分成了3个状态,然后看这三个状态转换的概率,drinkl:是否饮酒。这里我们仍然使用一阶的马尔科夫链,

下面咱们进行分析,其实很简单,和之前的参数差不多,添加一个参数death_state=F就可以了

out2<-sci_msm(data=bc2,ID="ID",time="time",state="state",digits=7,death_state=F,username=username,token=token)

咱们把相关数据提取出来

tb2<-out2[["tb2"]]


看下转移人数

out2[["statetable"]]


看下不同年份的转移率,这里没有吸收状态,要定义一个观察年限,咱们这里是长年限是4年,所以我定义成4年

probability.msm(out2,time=c(2,4),tot=4)


结果还生成了平均时间和总停留时间,下面咱们来看下喝酒对肾功能转换的影响,在cov这里把喝酒添加进去

out3<-sci_msm(data=bc2,ID="ID",time="time",state="state",digits=7,death_state=F,cov="drinkl",username=username,token=token)

基础的分析和前面一样,我来介绍概率分析,假设我想知道喝酒对状态1(就是没有肾病患者)的肾功能转换影响,state=1表示观察状态1的转变,没有吸收状态要指定观察总时间tot=4,

#没有吸收状态要指定观察总时间tot=4,out4<-probability.msm(out3,time=c(1,2,3,4),cov="drinkl",state=1,tot=4)
提取数据 data5<-out4[["data"]]


上图可以看到各种转变,假设我对中间的1转成2感兴趣

data5$cov<-as.factor(data5$cov)data5$cov<-factor(data5$cov,labels=c("nodrinkl","drinkl"))names(data5)<-c("State11","State12","State13","t","cov")colors<-c("nodrinkl"="#FFD1DC","drinkl"="#FF4D4D")

绘图

ggplot(data5,aes(x=t,y=State12,color=cov,group=cov))+geom_point(size=5)+geom_line(size=1.2)+scale_color_manual(values=colors)+labs(title="State1 → State2",x="observation interval",y="possibility ")+theme_minimal()+theme(legend.title=element_text(size=12,face="bold"),legend.text=element_text(size=10),plot.title=element_text(hjust=0.5,size=14,face="bold"),axis.text.x=element_text(size=12),axis.text.y=element_text(size=12),legend.position=c(0.85,0.2),panel.grid.minor=element_blank())+guides(color=guide_legend(title=NULL))


可以看到,相对于没有喝酒,喝酒更容易(更高概率)导致肾功能向恶化转变(模拟数据不构成临床指导)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 4:52:41

从零到上线:Windows系统部署Open-AutoGLM的7个不可跳过的步骤

第一章&#xff1a;Windows系统部署Open-AutoGLM的背景与意义随着大语言模型在自动化任务中的广泛应用&#xff0c;Open-AutoGLM作为一款支持指令自动生成与执行的开源工具&#xff0c;正逐渐成为开发者和企业实现智能化流程的关键组件。在Windows操作系统上部署该模型&#xf…

作者头像 李华
网站建设 2026/6/9 18:52:46

为什么顶级团队都在用Open-AutoGLM?深度拆解其自动化推理引擎

第一章&#xff1a;Open-AutoGLM开源实操指南 Open-AutoGLM 是一个面向自动化生成语言模型任务的开源框架&#xff0c;支持模型微调、推理部署与任务编排一体化操作。通过该工具&#xff0c;开发者可以快速构建定制化的自然语言处理流水线。 环境准备与项目克隆 在开始之前&am…

作者头像 李华
网站建设 2026/6/9 18:52:39

高效LED呼吸灯系统设计:基于PWM调光的实现方法!

实现高质量的LED呼吸灯效果&#xff0c;不仅需要良好的视觉表现&#xff0c;更需兼顾能效与系统稳定性。采用PWM调光技术&#xff0c;可在不牺牲亮度控制精度的前提下&#xff0c;显著提升电能利用率。一种基于PWM的高效LED呼吸灯系统设计方案&#xff0c;涵盖信号生成、驱动电…

作者头像 李华
网站建设 2026/6/9 18:31:36

大模型学习路线图:从数学基础到AGI应用全解析_AI大模型学习路线(2025最新)神仙级大模型教程分享

文章提供了大模型学习的七个阶段路线图&#xff1a;从数学编程基础、机器学习、深度学习到NLP和大模型应用&#xff0c;最后是进阶学习。文章介绍了大模型行业前景、薪资水平和学习资源&#xff0c;强调掌握AI技术的重要性&#xff0c;并提供免费学习资料包&#xff0c;帮助小白…

作者头像 李华