R语言作列线图

列线图,又称诺莫图(Nomogram),它是建立在回归分析的基础上,使用多个临床指标或者生物属性,然后采用带有分数高低的线段,从而达到设置的目的:基于多个变量的值预测一定的临床结局或者某类事件发生的概率。列线图(Nomogram)可以用于多指标联合诊断或预测疾病发病或进展。

1. Cox回归列线图

#install.packages("rms")
#install.packages("survival")

# 加载包
library(survival)
library(rms)

# help(package="rms")
setwd("~/test")

data(package="survival")

dd<-datadist(lung)
options(datadist="dd")

f <- cph(Surv(time, status) ~ age+sex+ph.karno, data = lung,
        x=TRUE,y=TRUE,sur=TRUE)

## C-index(concordance index)
ff <- coxph(Surv(time, status) ~ age+sex+ph.karno, data = lung)
sum.surv <- summary(ff)
c_index <- sum.surv$concordance

## 画列线图
survival <- Survival(f)
survival1 <- function(x) survival(365,x) 
survival2 <- function(x) survival(730,x)

nom <- nomogram(f,fun= list(survival1,survival2),
         fun.at=c(0.05,seq(0.1,0.9,by=0.05),0.95),
         funlabel=c("1 year survival","2 year survival"))

plot(nom)

2. 逻辑回归列线图

par(mgp=c(1.6,0.6,0),mar=c(2,2,2,2))  ##设置画布
library(rms)

# 设定环境参数
ddist <- datadist(Affairs)
options(datadist='ddist')
# lrm和nomogram来自rms包
rms_fit <- lrm(ynaffairs ~ ., data = Affairs)
nomogram <- nomogram(rms_fit,fun=function(x) 1/(1+exp(-x)), ##逻辑回归计算公式
                     fun.at = c(0.001,0.01,0.05,seq(0.1,0.9,by=0.1),0.95,0.99,0.999),#风险轴刻度
                     funlabel = "Risk of affairs", #风险轴便签
                     lp=F,  ##是否显示系数轴
                     conf.int = F, ##每个得分的置信度区间,用横线表示,横线越长置信度越
                     abbrev = F #是否用简称代表因子变量
                     )
plot(nomogram)

你可能感兴趣的:(r语言,开发语言)