广东省建设注册中心网站,网站建设人员叫什么,建设网站制作哪家好,后台企业网站模板1写在前面 列线图#xff0c;又称诺莫图#xff08;Nomogram#xff09;#xff0c;是一种用于预测模型的可视化工具#xff0c;它可以将多个影响因素和结局事件的关系展示在同一平面上。#x1f973; 列线图最早是由法国工程师Philbert Maurice dOcagne于1884年发明的又称诺莫图Nomogram是一种用于预测模型的可视化工具它可以将多个影响因素和结局事件的关系展示在同一平面上。 列线图最早是由法国工程师Philbert Maurice dOcagne于1884年发明的他在1880年提出了nomography的概念用于快速计算复杂公式的图形表示法曾经在工程和科学领域广泛使用直到被计算机取代。 列线图的基本原理是根据回归模型的系数给每个影响因素的不同取值赋分然后将各个分数相加得到总分再根据总分和结局事件发生概率的转换关系计算出预测值。 本期就盘点一下基于R语言的列线图绘制方法。 2用到的包 rm(list ls())library(tidyverse)library(survival)library(rms)library(nomogramFormula)library(DynNom) 3示例数据 今天用一下伟大的cancer数据集中的colon。 data(cancer)DT::datatable(colon) 4rms包制作列线图 4.1 构建模型 我们先构建个模型吧。 ## 以下2步为必须步骤ddist - datadist(colon)options(datadistddist)fit1 - rms::lrm(status~rxsexageobstructperfornodes, data colon)summary(fit1) 可视化一下吧。 ## 绘图nomogram - nomogram(fit1, fun function(x)1/(1exp(-x)))plot(nomogram) 4.2 加入时间变量 我们再试着加入时间变量需要用到psm和Surv。 fit2 - rms::psm(Surv(time,status) ~ rx sex age obstruct perfor nodes, datacolon, distlognormal)summary(fit2) 可视化一下吧。 med - Quantile(fit2)surv - Survival(fit2)plot(nomogram(fit2, funfunction(x) med(lpx), funlabelMedian Survival Time)) 再试着把解决变量改成半年和1年的生存率。 nom - nomogram(fit2, funlist(function(x) surv(6, x), function(x) surv(12, x)), funlabelc(6-Month Survival Probability, 12-month Survival Probability))plot(nom, xfrac.7) 5rms包的补充 rms的确很好用但是很难计算出所有项目的总分和概率这里可以用nomogramFormula包作为补充。 相关函数 formula_rd()formula_lp() ➡️ polynomial regression;points_cal() ➡️ total pointsprob_cal() ➡️ lrm(), cph() or psm() regression。 5.1 formula_lp formula_lp(nomogram nom)formula_lp(nomogram nom,power 1)formula_lp(nomogram nom,power 3,digits6) 5.2 formula_rd formula_rd(nomogram nom)formula_rd(nomogram nom,power 1)formula_rd(nomogram nom,power 3,digits6) 5.3 Calculate Total Points ##get the formula by the best power using formula_lpresults - formula_lp(nom)points_cal(formula results$formula,lpfit3$linear.predictors)#get the formula by the best power using formula_rdresults - formula_rd(nomogram nom)points_cal(formula results$formula,rddf) 5.4 Calculate Probabilities # lrm() functionf - lrm(status~rxsexageobstructperfornodes, datacolon, linear.predictors T)head(prob_cal(reg f))# cph() functionf - cph(Surv(time,status)~rxsexageobstructperfornodes, datacolon, linear.predictorsT, survT)head(prob_cal(reg f,times c(365,365*2)))# psm() functionf - psm(Surv(time,status)~rxsexageobstructperfornodes, datacolon)head(prob_cal(reg f,times c(365,365*2))) 5.5 Caculate Total Points for nomogram Picture TotalPoints.rms(rd colon,fit f,nom nom) 6regplot包制作列线图 6.1 构建模型 glm函数来构建哦。 fit3 - glm(status~rxsexageobstructperfornodes, datacolon, familybinomial)summary(fit3) 可视化一下吧。 regplot(fit3, plots c(density,boxes), center T, observation F,points T, dencol #EA5455,boxcol #002B5B, droplinesT ) 6.2 加入时间变量 这次我们换成使用coxph函数。 Coxfit-coxph(Surv(time,status) ~ rx sex age obstruct perfor nodes, datacolon)summary(Coxfit) 可视化一下吧。 这里我们显示一下第50个病例的180天、360天、1080天的生存概率。 regplot(Coxfit, plotsc(violin,bars), observation colon[50,], points T, droplinesT, titleSurvival Nomogram, dencol #EA5455,boxcol #002B5B, prfailT, # For survival models only failtimec(180,360,1080), # For survival models only #clickableT ) 7DynNom包制作列线图 新鲜的shiny app不过个人觉得不是特别好用。 # 需要glm函数DynNom(fit3, colon) 最后祝大家早日不卷!~ 点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰 往期精彩 WGCNA | 值得你深入学习的生信分析方法~ ComplexHeatmap | 颜狗写的高颜值热图代码 ComplexHeatmap | 你的热图注释还挤在一起看不清吗 Google | 谷歌翻译崩了我们怎么办附完美解决方案 scRNA-seq | 吐血整理的单细胞入门教程 NetworkD3 | 让我们一起画个动态的桑基图吧~ RColorBrewer | 再多的配色也能轻松搞定~ rms | 批量完成你的线性回归 CMplot | 完美复刻Nature上的曼哈顿图 Network | 高颜值动态网络可视化工具 boxjitter | 完美复刻Nature上的高颜值统计图 linkET | 完美解决ggcor安装失败方案附教程 ...... 本文由 mdnice 多平台发布