r语言nonzerocoef函数_R语言如何做COX回归分析和nomogram?

准备用几次推送与大家一起系统的学习下Nomogrm的绘制原理及其在R软件和SAS软件中的实现。首先声明,文章只是自己文献上的整理及自己的一点点理解,错误之处还请大家指出!

在wikipedia 里对Nomogram的介绍是,Nomogram—词来源于希腊语,Nomos指“法律”而Gramma意思是“书写”。Nomogram的理论是由法国工程师 Philbert Maurice d’Ocagne (1862-1938) 于1884年提出,最早用于工程学,它能够将复杂的工程力学等计算公式以图形的方式,快速、直观、精确的展现出来。换句话说,绘制Nomogram旨在以绘图的方法来阐述不同变量之间的关系。在医学领域,Nomogram优势在于可个性化的计算特定肿瘤患者生存率, 因此在临床实践中有很大的价值。

Nomogram 怎么用?

我们用个例子来说明Nomogram的用法,临床上用四个指标A,B,C,D来预测某疾病的发病率,其中A和B是连续性变量,C和D为二分类变量;A的取值范围在0-80之间,B的取值范围在0-10之间,C取值为Low和High,和D取值为Neg和Pos,在统计软件中建立回归模型,并绘制Nomogram,具体绘制出的图形如下:

图1.Nomogram 示意图

假设有一个病人,他的四个因素的值分别是:A=40, B=5,C=Low和D=Pos,Nomogrm的用法是在A变量的刻度尺上找到其值为40的刻度,然后垂直画条竖线,对应到最上方的Points刻度尺上,找到Points对应的分值。我们看到图中A为40时,其Points是50,同理B=5时其Points是40,C=Low时其Points值是0,D=Pos时其Points值是19.将这四个因素的Points值加起来总共是109分;下一步在图下方的Total Points刻度尺上找到109,向下方的Probability of Clin.Outcome做垂线,109对应的值是39,则此病人该种疾病得发病风险预测概率值是39%。

Nomogram 绘制原理

一般的回归模型都可以绘制其对应的Nomogram,本文以二分类的Logistic 回归为例。例:为探讨某些危险因素对某种疾病的发病影响,统计建模筛选出的结果显示年龄(10-90),性别(男女)和血压(低,正常,高)是三个影响因素,利用这三个因素与二分类的结局变量做Logistic回归,回归结果见下表:

1. 对每个自变量(因素)赋分

一般情况下,绘制Nomogram时要求每个因素的赋分范围在0-100之间。Nomogram绘制实际上是对上述回归结果的系数做转化后以图形的形式展现出来,即主要是对回归模型拟合系数的转化。

(1)系数转换

对于连续性变量年龄,其范围是10-90,结合表1中估计的各因素的系数,Nomogram的转换公式是:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
COX回归分析nomogram是生存分析中常用的方法,R语言中有丰富的生存分析包,可以轻松实现这些分析。 首先需要安装并加载生存分析包`survival`和`rms`,可以使用以下命令: ``` install.packages(c("survival", "rms")) library(survival) library(rms) ``` 接下来,我们可以使用`coxph()`函数进行COX回归分析。以lung数据集为例,该数据集包含了228名肺癌患者的生存时间和一些基本信息,我们可以使用如下代码进行COX回归分析: ``` data(lung) fit <- coxph(Surv(time, status) ~ age + sex + ph.ecog + wt.loss, data = lung) summary(fit) ``` 其中,`Surv()`函数用于定义生存时间和事件,`time`表示生存时间,`status`表示生存状态(0表示存活,1表示死亡)。`age`、`sex`、`ph.ecog`、`wt.loss`为预测变量,可以根据实际情况进行修改。 输出结果中,`coef`列为每个预测变量的系数,`exp(coef)`列为各个预测变量的风险比(即相对危险度),`p`列为各个预测变量的显著性检验结果。 接下来,我们可以使用`nomogram()`函数生成nomogram图。nomogram图是一种直观的预测工具,可以根据个体的相关变量快速计算其生存概率。以上述COX回归分析结果为例,我们可以使用如下代码生成nomogram图: ``` nom <- nomogram(fit, fun = function(x) 1 - plogis(x), funlabel = "Survival Prob", predictor = TRUE, lp = TRUE) plot(nom) ``` 其中,`fun`参数用于定义生存概率函数,`funlabel`参数为生存概率函数的名称,`predictor`参数表示是否显示预测变量,`lp`参数表示是否显示线性预测(linear predictor)。 生成的nomogram图中,每个预测变量有一个刻度,每个刻度上有一个分数,可以通过将每个预测变量的分数相加,再在nomogram图中找到对应的总分数,即可得到该个体的生存概率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值