dxy logo
首页丁香园病例库全部版块
搜索
登录

R语言预测模型 | 搭建网页版列线图

发布于 2021-08-10 · 浏览 3729 · IP 日本日本
这个帖子发布于 3 年零 282 天前,其中的信息可能已发生改变或有所发展。
icon墨点星沟 +1丁当


img

一只勤奋的科研喵:预测模型 | 9. 网页版列线图的构建

参考文章:

  1. 网页版列线图的构建
  2. Nomogram(列线图)的构建、美化及其风险分数的计算原理


目  录


一、基本列线图的构建

二、shinyapps.io注册

三、生成网页文件

四、获取密钥并发布网页版列线图


-------------------------------------

一、基本列线图构建代码

-------------------------------------

#1.安装和加载R包

library(rms)#建模包

library(DynNom)#动态化包

#2.载入数据

#清理环境

rm(list = ls()) 

aa<- read.csv('动态列线图构建示例.csv')

str(aa)#查看数据结果

img


1.1 数据类型转换及重命名

#3-1.数值转因子并重命名

aa$n<-factor(aa$n, 

            levels=c("0","1 to 3","4 or more"),  

            labels=c("0","1-3","≥4")) 

aa$er<- factor(aa$er, 

               levels=c("0","1"),  

               labels=c("Negative ","Positive")) 

aa$lvi<-factor(aa$lvi, 

               levels=c("0","1"),  

               labels=c("Absent","Present"))

aa$g<-factor(aa$g, 

             levels=c("i","ii","iii"), 

             labels=c("I","II","III"))

aa$status<-factor(aa$status)

#年龄是连续变量,所以不用转换

#3-2.更改变量名

label(aa$age)<-"Age at diagnosis"

label(aa$n) <-"LNM"

label(aa$er)<-"ER status"

label(aa$g)<-"Histologic grade"

label(aa$lvi)<-"Lymphovascular invasion"


1.2 构建多因素Cox模型

#加载数据,

#rms包下面两行代码需要执行,不然易报错。

nomo<-datadist(aa)

options(datadist='nomo')

#构建多因素回归模型

nomo1 <- cph(Surv(time,status==0)~age+n+er+lvi+g,

             x=T,y=T,

             data=aa,

             surv=T,

             time.inc = 12*5)


1.3 画基本列线图

#设置预测时间

#里预测3个:1,3,5年

surv <- Survival(nomo1)#使用刚才构建的模型预测

surv1 <- function(x)surv(12*1,lp=x)

surv2 <- function(x)surv(12*3,lp=x)

surv3 <- function(x)surv(12*5,lp=x)

nomo2<-nomogram(nomo1,

                #1.感兴趣的预测时间

                fun=list(surv1,surv2,surv3),

                #2. 预测时间段的名字

                funlabel=c('1-year LR probability',

                           '3-year LR probability',

                           '5-year LR probability'),

                #3.是否显示回归系数轴,一般为F

                lp =T, 

                #4.#分数为百分制

                maxscale=100,

                #5.设置预测复发率的范围【根据自己数据修改】

                fun.at=c("0.99","0.95",'0.9','0.8',

                         '0.7','0.6','0.5','0.4',

                         '0.3','0.2','0.1')

);plot(nomo2)

img


-------------------------------------

二、shinyapps.io注册

-------------------------------------

不管是文章中的列线图还是网页版列线图都是基于多因素Cox回归模型,因此一下步是注册网站,将自己的模型上传并动态化。

#生成动态列线图

DynNom(nomo1) 

img

2.1 生成本地文件

检查完预发布的网页后,将模型和数据生成脚本文件,以便之后上传服务器。

运行后R studio也会显示生成的脚本具体位置

img

在电脑上查看脚本文件

img


img

2.2 登陆网页并注册账号

https://www.shinyapps.io/admin/#/signup

img

命名自己的网页地址

img


----------------------------

三、获取密钥

----------------------------

每个账号可以免费发布5个链接;网站有明确的的构建步骤。
img

安装R包

install.packages('rsconnect')

获取密钥

rsconnect::setAccountInfo(

         name='yizhiqinfengdekeyanmiao', 

         token='BED93F71F4681AC9D153C0DEEE96AA12', 

         secret='这里粘贴刚才获得的密钥')

将网页那里获得的密钥复制到Rstudio里运行


打开ui.R

img

点击其右上角的符号

img

发布网页列线图

img

注:因为小编有两个账号,所以右边有俩地址


等待网页自动完成

大约3-4分钟后,网页将自动打开

复制网址: https://yizhiqinfengdekeyanmiao.shinyapps.io/DynNomapp/ 登录试试

img

管理列线图

刷新 https://www.shinyapps.io/admin/#/dashboard ,可以发现账号里多了一个文件。

img

-----完-----

参考文章:

网页版列线图的构建

Nomogram(列线图)的构建、美化及其风险分数的计算原理

最后编辑于 2022-10-09 · 浏览 3729

16 52 9

全部讨论0

默认最新
avatar
16
分享帖子
share-weibo分享到微博
share-weibo分享到微信
认证
返回顶部