news 2026/1/28 1:49:03

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/1/17 8:26:22

【紧急通知】智普Open-AutoGLM即将关闭公开下载?速看最新获取方式

第一章&#xff1a;智普Open-AutoGLM如何下载 智普AI推出的Open-AutoGLM是一个面向自动化任务的开源大语言模型工具&#xff0c;支持本地部署与二次开发。用户可通过官方GitHub仓库获取源码并完成环境配置。 获取项目源码 推荐使用Git命令行工具克隆仓库&#xff0c;确保获得最…

作者头像 李华
网站建设 2026/1/23 1:21:12

为什么顶尖团队都在用Open-AutoGLM?内部文档外泄的5个技术优势

第一章&#xff1a;Open-AutoGLM 核心架构解析Open-AutoGLM 是一个面向通用语言理解与生成任务的开源自动化模型框架&#xff0c;其设计目标是实现零样本迁移、动态推理链构建与多模态输入融合。该架构采用分层解耦设计&#xff0c;将语义解析、知识检索、逻辑推理与输出生成模…

作者头像 李华
网站建设 2026/1/25 19:46:20

在Linux系统上安装和使用Prometheus+Grafana

我们将会介绍如何在Linux系统上安装和使用Prometheus&#xff0c;包括以下步骤&#xff1a; 下载和安装Prometheus配置Prometheus启动Prometheus服务器访问Prometheus的Web界面配置Prometheus监控自身安装和配置Node Exporter&#xff08;用于监控Linux主机&#xff09;配置Pr…

作者头像 李华
网站建设 2026/1/17 1:28:54

2025自考必备!8个降AI率工具测评榜单

2025自考必备&#xff01;8个降AI率工具测评榜单 自考论文降AI率工具测评&#xff1a;为何需要专业榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;AIGC&#xff08;人工智能生成内容&#xff09;检测系统在学术领域的应用愈发严格。对于自考生而言&#xff0c;论文的…

作者头像 李华
网站建设 2026/1/20 7:46:58

动态添加Bootstrap Select元素

在使用Bootstrap框架构建Web应用时,经常会遇到需要动态添加表单元素的情况,尤其是当我们希望使用Bootstrap的selectpicker类来创建一个增强的下拉选择框时。本文将详细介绍如何动态添加一个Bootstrap Select元素,并解决一些常见的问题。 背景介绍 当你直接在HTML中编写<…

作者头像 李华
网站建设 2026/1/24 22:16:37

网络安全哪个就业方向好?

随着网络安全需求激增&#xff0c;行业岗位逐渐细分&#xff0c;不再是单一的 “安全防护”。从日常监测网络异常&#xff0c;到挖掘系统漏洞、应对突发攻击&#xff0c;不同工作对应不同岗位。那么网络安全具体岗位有哪些?以下是具体内容介绍。网络安全领域涵盖许多不同的岗位…

作者头像 李华