r语言nonzerocoef函数_R语言pec包深度验证Cox模型

01 研究背景

在cox回归中,如何利用已经构建好的预测模型预测单个患者的生存概率呢?R中的pec包中predictSurvProb()函数可以利用cph()拟合的模型计算验证集中患者在不同时间节点的生存概率。其次该包还能在验证集中计算不同时间点C-index指数,绘制成图,比较验证集在不同模型中的C-index,通过交叉验证评估不同模型的区分度,除此以外该包还能将2个模型的校准度曲线绘制在同一个坐标系中,非常好用的包

02 案例研究

本文数据采用一份肿瘤生存资料数据集,收集了449例癌症患者的生存资料,包含患者年龄、性别、、吸烟史、生化检验、生存时间、生存状态等45个变量。本文利用Lasso回归做变量选择,构建cox预测模型,通过pec包验证区分度和校准度。

03 R代码与结果解读

##加载包 明确每个包的作用

library(pec) ##验证模型

library(rms) ##拟合生存分析模型

library(survival) ##生存分析包

library(glmnet) ##Lasso回归包

第一步,数据整理。

##调用数据,数据格式与普通的spss中格式一样,一行代表一条观测,

dt

vartype

vartype

###transdata 自编小函数 转化数据结构

transData

for (i in 1:length(vartype)) {

if(vartype[i]==0){df[,i]

else if(vartype[i]!=0){df[,i]

}

return(df)

}

df

str(df) ## 查看数据结构

dt

第二步:Lasso回归做变量选择

##筛选变量前,首先将自变量数据(因子变量)转变成矩阵(matrix)

x.factors

#将矩阵的因子变量与其它定量边量合并成数据框,定义了自变量。

x=as.matrix(data.frame(x.factors,dt[,c(21:44)]))

#设置应变量,生存时间和生存状态(生存数据)

y

#调用glmnet包中的glmnet函数,注意family那里一定要制定是“cox”,如果是做logistic需要换成"binomial"。

fit

plot(fit,label=T)

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值