【R语言(二):Nomogram(诺莫图/列线图)绘制 / R语言逻辑回归分析】

R语言(二):Nomogram(诺莫图/列线图)绘制

1、基本概念

  • Nomogram,中文常称为诺莫图或者列线图。简单的说是将Logistic回归或Cox回归的结果进行可视化呈现。它根据所有自变量回归系数的大小来制定评分标准,给每个自变量的每个取值水平一个评分;对于每个患者,就可计算得到一个总分,再通过得分与结局发生概率之间的转换函数来计算每个患者的结局时间发生的概率。

  • 列线图的名称主要包括三个部分:

    1.预测模型中的变量名称

    • 下图中左侧竖列的I8、I9等,每一个变量对应的线段上都标注了刻度,代表了该变量的可取值范围,而线段的长度则反映了该因素对结局事件的贡献大小。
      

    2.得分

    • 单项得分,即图中的Points,表示每个变量在不同取值下所对应的单项分数
      
    • 总得分,即Total Point,表示所有变量取值后对应的单项分数加起来合计的总得分。
      

    3.预测概率

    •   下图中的risk,表示患病的风险
      

    在这里插入图片描述

2、R语言绘制列线图代码

rm(list=ls())
library(openxlsx)
library(survival)
library(lattice)
library(Formula)
library(ggplot2)

## 加载数据

library(readr)
data<-read_csv("./data4.csv")
data<-na.omit(data)

## 数据打包

library(rms)
ddDD=datadist(data)
options(datadist="ddDD")

fit<-lrm(label~C5+C6+C25+C48,data=data)
nom1<-nomogram(fit,
               fun=function(x)1/(1+exp(-x)), ## 逻辑回归
               lp=FALSE, ## 线性模型
               fun.at=c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9),
               funlabel="Risk")

# plot(nom1) ## 画图

library(regplot)
nom3<-regplot(fit,
              observation=data[5,], ## 选取第五行数据进行实例分析
              center=TRUE,
              title="Nomogram",
              point=TRUE, ## point最大刻度得分设置为100
              odds=FALSE,##设置是否显示OR
              showP=TRUE,## (是否显示p值)显示变量是否存在统计学意义,带有星号则表示具有统计学意义
              rank="sd", ## 按回归系数的SD变量排序
              clickable = FALSE) ## 是否动态演示
  • 选取第五行数据进行实例分析,observation=data[5,]
    在这里插入图片描述

  • 蓝色区间代表数值分布情况

  • *号代表,具有统计学意义,上述均有三个星号,代表统计学意义较强

  • 预测该患者的risk为0.3

猜你喜欢

转载自blog.csdn.net/crist_meng/article/details/129041769