Я установил модель Кокса с glmnet как:
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 (coef (fitL)! = 0)
Ошибка в base :: which (x, arr.ind, useNames, ...):Аргумент 'which' должен иметь логический тип
Я также использовал extract.coef
функцию предложенного пакета coefplot
здесь .У меня была эта ошибка:
> library (coefplot)
> coefplot :: extract.coef (fitL)
Ошибка в UseMethod (generic = "extract.coef", object = model): метод для extract.coef не применим для объекта класса "c('coxnet', 'glmnet') "