library(rms)   ###加载rms包
#rt=read.table('数据.txt',header=T,sep='	',row.names=1)
#expr <- read.table('数据.txt',sep = '	',row.names = 1,check.names = F,stringsAsFactors = F,header = T)
dt<-expr
dt <- data.frame(dt)
#dt<-dt[-(133:16383),]
str(dt)  ##查看每个变量结构
head(dt) ##查看数据框前几行
#设定环境参数#
ddist <- datadist(dt)
options(datadist='ddist')
###logistic 
f <- lrm(dt$state~ GZMA+ANO1+PI15+MFAP4+AREG+ACSM3+SOSTDC1+CR1,data=dt)   ##注意此处使用lrm()函数构建二元LR
summary(f)   ##也能用此函数看具体模型情况,模型的系数,置信区间等
###  nomogram
par(mgp=c(1.6,0.6,0),mar=c(1,1,1,1))  ##设置画布
nomogram <- nomogram(f,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.999),#风险轴刻度
                     funlabel = 'Risk of Death', #风险轴便签
                     lp=F,  ##是否显示系数轴
                     conf.int = F, ##每个得分的置信度区间,用横线表示,横线越长置信度越
                     abbrev = F#是否用简称代表因子变量
)
plot(nomogram)
##模型验证
##以原数据集为验证集
f.glm <- glm(state~.,data=dt,family = binomial(link = 'logit'))
P1 <- predict(f.glm,type = 'response')  ##获得预测概率值
##关键的一步来了。
val.prob(P1,dt$state)     ##这个函数前面放概率值,后面芳结局变量
dev.off()
library(ROCR)
#library(rms)
#构建ROC预测模型
ROC1 <- prediction(P1,dt$state)   #构建ROC预测模型 
ROC2 <- performance(ROC1,'tpr','fpr')   #计算预测模型的TPR/FPR值
AUC <- performance(ROC1,'auc')   #计算曲线下面积(AUC)值

AUC<-AUC@y.values[[1]] #改 根据结果对AUC进行赋值

#1.4 绘制ROC曲线
plot(ROC2,
     col='red',   #曲线的颜色
     xlab='False positive rate', ylab='True positive rate',   #x轴和y轴的名称
     lty=1,lwd=3,
     main=paste('AUC=',AUC))
abline(0, 1, lty=2, lwd=3)   #绘制对角线
dev.off()

上述代码的含义内容:该代码主要是针对 PAH 三个数据集进行逻辑回归分析,构建二元 LR 模型,并使用 nomogram 绘制生存预测图。同时使用原数据集进行模型验证,并绘制 ROC 曲线,计算曲线下面积 (AUC) 值。

PAH 三个数据集的逻辑回归分析和生存预测

原文地址: https://www.cveoy.top/t/topic/nfp9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录