美文网首页
🤣 Nomogram | 盘点一下绘制列线图的几个R包!~(二)

🤣 Nomogram | 盘点一下绘制列线图的几个R包!~(二)

作者: 生信漫卷 | 来源:发表于2023-05-01 11:30 被阅读0次

写在前面

不知道各位小伙伴的五一假期过的在怎么样,可怜的我感冒了。😷

今天继续之前没有写完的列线图教程吧,再介绍几个制作列线图R包。🤠

用到的包

rm(list = ls())
library(tidyverse)
library(survival)
library(rms)
library(nomogramEx)
library(hdnom)
library(survey)
library(SvyNom)

nomogramEx包

首先我们介绍一下nomogramEx包,其实这个包并不是用于制作列线图的,但还是和大家介绍一下吧,还是比较有用的。🥸

nomogramEx包,可以从一个nomogram中提取多项式方程,用来计算每个变量的点数和总点数对应的生存概率。😎

它的主要函数是nomogramEx(),参数有nomonpdigit2,可以用来简化nomogram的应用和解读。🧐

3.1 生成示例数据

n <-1000
age <- rnorm(n,50,10)
sex <- factor(sample(c('female','male'),n,T))
sex <- as.numeric(sex)
ddist <- datadist(age,sex)
options(datadist='ddist')
cens <- 15*runif(n)
time <- -log(runif(n))/0.02*exp(.04*(age-50)+.8*(sex=='Female'))
death <- ifelse(time <= cens,1,0)
time <- pmin(time,cens)
units(time)="month"

3.2 构建模型

f <- cph(formula(Surv(time,death)~sex+age),x=T,y=T,surv=T,time.inc=3)
surv <- Survival(f)

3.3 绘制列线图

nomo <- nomogram(f, fun=list(function(x) surv(3,x),function(x) surv(6,x)),
                 lp=T,
                  funlabel=c("3-Month Survival Prob","6-Month Survival Prob"))
plot(nomo)

3.4 提取公式

nomogramEx(nomo=nomo,np=2,digit=9) 

hdnom包

hdnom包功能非常强大,我们以后再介绍它的具体用法吧,今天就只介绍一下绘制列先图的函数咯。😎.

4.1 示例数据

data("smart")
x <- as.matrix(smart[, -c(1, 2)])
time <- smart$TEVENT
event <- smart$EVENT
y <- survival::Surv(time, event)
DT::datatable(smart)

4.2 建模

这里我们会用到一个自适应弹性网络正则化的方法,引入惩罚系数,alphalambda,是一种将L1和L2正则化同时应用于线性回归的损失函数的方法,以后再具体介绍吧。😘

suppressMessages(library("doParallel"))
registerDoParallel(detectCores())

fit <- fit_aenet(x, y, nfolds = 10, rule = "lambda.1se", seed = c(5, 7), parallel = T)
names(fit)

4.3 可视化

model <- fit$model
alpha <- fit$alpha
lambda <- fit$lambda
adapen <- fit$pen_factor

nom <- as_nomogram(
  fit, x, time, event,
  pred.at = 365 * 2,
  funlabel = "2-Year Overall Survival Probability"
)

plot(nom)

SvyNomv包

5.1 示例数据

set.seed(1234)

data("noNA", package = "SvyNom")

dstr2 <- svydesign(id = ~1, strata = ~group, prob = ~inv_weight, 
  fpc = ~ssize, data = noNA)

dd <- datadist(noNA)
options(datadist = "dd")
ss3 <- c(0.05, 0.2, 0.4, 0.6, 0.7, 0.8, 0.9, 0.95, 0.99)

5.2 可视化

mynom <- svycox.nomogram(.design = dstr2, .model = 
  Surv(survival, surv_cens) ~ ECOG + liver_only + Alb + Hb + Age + 
  Differentiation + Gt_1_m1site + lymph_only, .data = noNA, pred.at = 24, 
  fun.lab = "Prob of 2 Yr OS")

plot(mynom$nomog)

<center>最后祝大家早日不卷!~</center>


点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

<center> <b>📍 往期精彩 <b> </center>

📍 <font size=1>🤩 WGCNA | 值得你深入学习的生信分析方法!~</font>
📍 <font size=1>🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!</font>
📍 <font size=1>🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?</font>
📍 <font size=1>🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)</font>
📍 <font size=1>🤩 scRNA-seq | 吐血整理的单细胞入门教程</font>
📍 <font size=1>🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~</font>
📍 <font size=1>🤩 RColorBrewer | 再多的配色也能轻松搞定!~</font>
📍 <font size=1>🧐 rms | 批量完成你的线性回归</font>
📍 <font size=1>🤩 CMplot | 完美复刻Nature上的曼哈顿图</font>
📍 <font size=1>🤠 Network | 高颜值动态网络可视化工具</font>
📍 <font size=1>🤗 boxjitter | 完美复刻Nature上的高颜值统计图</font>
📍 <font size=1>🤫 linkET | 完美解决ggcor安装失败方案(附教程)</font>
📍 <font size=1>......</font>

本文由mdnice多平台发布

相关文章

网友评论

      本文标题:🤣 Nomogram | 盘点一下绘制列线图的几个R包!~(二)

      本文链接:https://www.haomeiwen.com/subject/uqyojdtx.html