数据挖掘期末project-乳腺癌预后模型建立-3.1lasso-cox

#导入包
library(magrittr)
library(survival)
library(dplyr)
library(survminer)
# 导入数据,合并数据
rm(list = ls())
options(stringsAsFactors = F)

## 导入数据:取完基因交集
load("KM_expr_sur.Rdata") # 这里是前面存下的

final_expr里的37行是经过基因差异分析&WGCNA分析取交集后的37个基因。 

final_expr.lasso  <- merge(t(final_expr), survival, by = "row.names")
head(final_expr.lasso)
rownames(final_expr.lasso) <- final_expr.lasso[, 1]
final_expr.lasso <- final_expr.lasso[, -1]
final_expr.lasso <- final_expr.lasso[, !names(final_expr.lasso) %in% c("sample", "_PATIENT")]

x_lasso<-as.matrix(final_expr.lasso[,1:37])
y_lasso<-Surv(final_expr.lasso$OS.time,final_expr.lasso$OS==1)
#  lasso 模型以及交叉验证
# 使用glmnet函数就可以一行代码运行lasso模型,cv.glmnet函数进行交叉验证,注意生存数据时,family处为 “cox” 。
#默认的统计图,设定label = TRUE可以给曲线加上注释,
lasso <- glmnet(x_lasso, y_lasso, family = "cox", alpha = 1 , nlambda = 1000)
plot(lasso)
#交叉验证Lasso回归
#使用glmnet包中K折交叉验证法进行变量筛选,设置随机种子数并定义10折交叉
set.seed(1234)
#注 生存分析的时间不能是0
fitCV_lasso <- cv.glmnet(x, y_lasso, 
                         family = "cox",
                         type.measure = "deviance",
                         nfolds = 10)
plot(fitCV_lasso)


#λ值重新建模,选择lambda.min
fitCV_lasso$lambda.1se
fitCV_lasso$lambda.min
coefficient_lasso 
#系数不等于0的为纳入的变量(基因)
Active.index_lasso <- which(as.numeric(coefficient_lasso) != 0)
Active.coefficient_lasso <- as.numeric(coefficient_lasso)[Active.index_lasso ]
sig_gene_mult_cox_lasso  <- rownames(coefficient_lasso)[Active.index_lasso ]
#查看具体哪些基因
sig_gene_mult_cox_lasso 

sig_gene_mult_cox

 [1] "AC246787.4" "ART3"       "CD79A"      "FAM92B"     "GPR15"      "IGHA2"     [7] "IGHG1"      "IGHG2"      "IGHV1-18"   "IGJ"        "PNOC"   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值