2017-03-17 21 views
0

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)이라는 함수를 발견했다. 그러나이 함수를 사용하려고하면 오류가 발생합니다. 다음은

Error: could not find function "glmnet.basesurv"

는 콕스 모델에 맞게 glmnet를 사용하여, 내 코드와 선택된 변수의 계수를 얻을. 이 glmnet 객체로부터베이스 라인 위험 함수 h0 (t)를 구할 수 있습니까?

코드

# 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") 

난 정말 당신이 제공 할 수있는 모든 도움을 주셔서 감사합니다.

답변

0

glmnet.basesurv 함수는 glmnet 자체가 아니라 hdnom 패키지 (CRAN에서 사용 가능)의 일부입니다. 그러니 그걸 설치하고 전화 해.

+0

감사합니다. hdnom 패키지를 설치했지만 여전히 작동하지 않습니다. glmnet.basesurv (시간, 이벤트, pred_min_value2, times.eval = 30, 가운데 맞춤 = FALSE) 오류 : "glmnet.basesurv"기능을 찾을 수 없습니다. 다른 패키지를 설치해야합니까? 이 웹 페이지 (https://www.rdocumentation.org/packages/hdnom/versions/4.6)에서 glmnet.basesurv 함수를 찾을 수 있습니다. –