glmnet报错

作者: 南之绿桑 | 来源:发表于2020-06-25 17:06 被阅读0次

    今天用glmnet进行lasso的cox回归分析,再运行过程中出现了这样的错误:

    > options(stringAsFactors=F)
    > x <- model.matrix( ~ KDM5B + ZNF469 + FOXQ1 + MEIS3 + TEAD1 - 1, sur_pdata)
    > y <- Surv(sur_data2$OS.time, 1-(sur_data2$OS-1))
    > fit=glmnet(x,y,family="cox", alpha=1)
    Error in coxnet(x, is.sparse, ix, jx, y, weights, offset, alpha, nobs,  : 
      negative event times encountered;  not permitted for Cox family
    

    我在各大网站上查找问题,仍然没有解决,在重新观察数据中我发现生存时间数据包含0值,这个是一个很异常的值,正常情况下不会出现生存时间为0的情况,而且在glmnet的内置函数coxnet中主要就是对生存时间的计算出了问题,所以这里将0值去掉。

    sur_data<-data.frame(OS=as.numeric(sur_pdata$OS),OS.time=as.numeric(sur_pdata$OS.time))
    #expr1为离散的表达高低,exr2为连续的表达值
    #去掉0
    sur_data1<-sur_data[which(sur_data$OS.time!=0),]
    sur_pdata<-sur_pdata[which(sur_data$OS.time!=0),]
    x <- model.matrix( ~ KDM5B + ZNF469 + FOXQ1 + MEIS3 + TEAD1 - 1, sur_pdata)
    y <- Surv(sur_data1$OS.time, 1-(sur_data1$OS-1))
    
    fit=glmnet(as.matrix(x),y,family="cox")
    

    结果很完美,没有报错。

    相关文章

      网友评论

        本文标题:glmnet报错

        本文链接:https://www.haomeiwen.com/subject/hegsfktx.html