glmnet 객체에서베이스 라인 위험 함수 h0 (t)를 추출합니다.
시간 t >> h (t, X) = h0 (t) exp [Σβi * Xi]에서 위험 함수를 알고 싶습니다. R에서 glmnet 객체로부터베이스 라인 위험 함수 h0 (t)를 어떻게 추출 할 수 있습니까?R에서 glmnet 객체로부터베이스 라인 위험 함수 h0 (t)를 추출하는 방법은 무엇입니까?
내가 아는 한 생존 패키지의 "basehaz()"기능은 coxph 개체에서만 기본 위험 요소를 추출 할 수 있다는 것입니다.
나는 또한 glmnet.basesurv(time, event, lp, times.eval = NULL, centered = FALSE)
이라는 함수를 발견했다. 그러나이 함수를 사용하려고하면 오류가 발생합니다. 다음은
는 콕스 모델에 맞게 glmnet를 사용하여, 내 코드와 선택된 변수의 계수를 얻을. 이 glmnet 객체로부터베이스 라인 위험 함수 h0 (t)를 구할 수 있습니까?Error: could not find function "glmnet.basesurv"
코드
# Split data into training data and testing data
set.seed(101)
train_ratio = 2/3
sample <- sample.int(nrow(x), floor(train_ratio*nrow(x)), replace = F)
x.train <- x[sample, ]
x.test <- x[-sample, ]
y.train <- y[sample, ]
y.test <- y[-sample, ]
surv_obj <- Surv(y.train[,1],y.train[,2])
#
my_alpha = 0.5
fit = glmnet(x = x.train, y = surv_obj, family = "cox",alpha = my_alpha) # fit the model with elastic net method
plot(fit,xvar="lambda", main="cox model coefficient paths(glmnet.fit)\n\n") # Plot the paths for the fit
fit
# cross validation to find out best lambda
cv_fit = cv.glmnet(x = x.train,y = surv_obj , family = "cox",nfolds = 10,alpha = my_alpha)
tencrossfit <- cv_fit$glmnet.fit
plot(cv_fit, main="Cross-validated Deviance(10 folds cv.glmnet.fit)\n\n")
plot(tencrossfit, main="cox model coefficient paths(10 folds cv.glmnet.fit)\n\n")
max(cv_fit$cvm)
summary(cv_fit$cvm)
cv_fit$lambda.min
cv_fit$lambda.1se
coef.min = coef(cv_fit, s = "lambda.1se")
pred_min_value2 <- predict(cv_fit, s=cv_fit$lambda.min, newx=x.test,type="link")
난 정말 당신이 제공 할 수있는 모든 도움을 주셔서 감사합니다.
감사합니다. hdnom 패키지를 설치했지만 여전히 작동하지 않습니다. glmnet.basesurv (시간, 이벤트, pred_min_value2, times.eval = 30, 가운데 맞춤 = FALSE) 오류 : "glmnet.basesurv"기능을 찾을 수 없습니다. 다른 패키지를 설치해야합니까? 이 웹 페이지 (https://www.rdocumentation.org/packages/hdnom/versions/4.6)에서 glmnet.basesurv 함수를 찾을 수 있습니다. –