PAH 三个数据集的逻辑回归分析和生存预测
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) 值。
原文地址: https://www.cveoy.top/t/topic/nfp9 著作权归作者所有。请勿转载和采集!