今天用glmnet進行l(wèi)asso的cox回歸分析莺治,再運行過程中出現(xiàn)了這樣的錯誤:
> 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
我在各大網(wǎng)站上查找問題变勇,仍然沒有解決,在重新觀察數(shù)據(jù)中我發(fā)現(xiàn)生存時間數(shù)據(jù)包含0值昂羡,這個是一個很異常的值待笑,正常情況下不會出現(xiàn)生存時間為0的情況鸣皂,而且在glmnet的內(nèi)置函數(shù)coxnet中主要就是對生存時間的計算出了問題,所以這里將0值去掉暮蹂。
sur_data<-data.frame(OS=as.numeric(sur_pdata$OS),OS.time=as.numeric(sur_pdata$OS.time))
#expr1為離散的表達高低寞缝,exr2為連續(xù)的表達值
#去掉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")
結(jié)果很完美,沒有報錯仰泻。