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


一只勤奋的科研喵:预测模型 | 9. 网页版列线图的构建
参考文章:
目 录
一、基本列线图的构建
二、shinyapps.io注册
三、生成网页文件
四、获取密钥并发布网页版列线图
-------------------------------------
一、基本列线图构建代码
-------------------------------------
#1.安装和加载R包
library(rms)#建模包
library(DynNom)#动态化包
#2.载入数据
#清理环境
rm(list = ls())
aa<- read.csv('动态列线图构建示例.csv')
str(aa)#查看数据结果

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)

-------------------------------------
二、shinyapps.io注册
-------------------------------------
不管是文章中的列线图还是网页版列线图都是基于多因素Cox回归模型,因此一下步是注册网站,将自己的模型上传并动态化。
#生成动态列线图
DynNom(nomo1)

2.1 生成本地文件
检查完预发布的网页后,将模型和数据生成脚本文件,以便之后上传服务器。
运行后R studio也会显示生成的脚本具体位置

在电脑上查看脚本文件


2.2 登陆网页并注册账号
https://www.shinyapps.io/admin/#/signup

命名自己的网页地址

----------------------------
三、获取密钥
----------------------------
每个账号可以免费发布5个链接;网站有明确的的构建步骤。

安装R包
install.packages('rsconnect')
获取密钥
rsconnect::setAccountInfo(
name='yizhiqinfengdekeyanmiao',
token='BED93F71F4681AC9D153C0DEEE96AA12',
secret='这里粘贴刚才获得的密钥')
将网页那里获得的密钥复制到Rstudio里运行
打开ui.R

点击其右上角的符号

发布网页列线图

注:因为小编有两个账号,所以右边有俩地址
等待网页自动完成
大约3-4分钟后,网页将自动打开
复制网址: https://yizhiqinfengdekeyanmiao.shinyapps.io/DynNomapp/ 登录试试

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

-----完-----
参考文章:
最后编辑于 2022-10-09 · 浏览 3729