我用 glmnet 拟合了一个Cox模型,例如:
fitL <- glmnet(
X,
Y,
family = "cox",
alpha = 1,
lambda = cvL$lambda.min, #cvL obteined with cv.glmnet
standardize = FALSE,
thresh = thresh
)
我获得了:
str(coef(fitL) != 0)
Formal class 'lgCMatrix' [package "Matrix"] with 6 slots
..@ i : int [1:24] 0 76 81 96 125 149 213 266 277 415 ...
..@ p : int [1:2] 0 24
..@ Dim : int [1:2] 1000 1
..@ Dimnames:List of 2
.. ..$ : chr [1:1000] "001" "002" "003" "004" ...
.. ..$ : chr "s0"
..@ x : logi [1:24] TRUE TRUE TRUE TRUE TRUE TRUE ...
..@ factors : list()
我想提取非零系数(即选定的变量),我使用“ which”,但是出现了这个错误:
> which (coef (fitL)! = 0)
base ::中的错误:其中(x,arr.ind,useNames, ...):“哪”自变量必须为逻辑类型
我还使用了here建议的extract.coef
软件包的coefplot
函数。我遇到了这个错误:
> library (coefplot)
> coefplot :: extract.coef (fitL)
UseMethod中的错误(通用=“ extract.coef”,object =模型):否 适用于“ c”类对象的“ extract.coef”方法 (“ coxnet”,“ glmnet”)”
答案 0 :(得分:2)
使用predict
代替参数type="nonzero"
。
答案 1 :(得分:1)
对象(coef(fitL) != 0)
具有类lgCMatrix
。尝试使用as.vector