## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = ""
)

## ----message=F, warning=F-----------------------------------------------------
library(CSCNet)

library(riskRegression)

set.seed(123)

d <- sampleData(n = 500,outcome = 'competing.risks')

knitr::kable(head(d),digits=3)

table(d$event)

## -----------------------------------------------------------------------------
vl <- list('1'=~X1+X3+X7+X9+X10,

           '2'=c('X1','X2','X6','X10'))

penfit <- penCSC(time = 'time',status = 'event',vars.list = vl,data = d,
                 
                 alpha.list = list('1'=0,'2'=.5),lambda.list = list('1'=.01,'2'=.02))

penfit

## -----------------------------------------------------------------------------
predict(penfit,d[1:3,],type='lp',event=1) %>% as.data.frame

## -----------------------------------------------------------------------------
predict(penfit,d[1:3,],type='response') %>% as.data.frame

## -----------------------------------------------------------------------------
predict(penfit,d[1:3,],type='absRisk',event=1,time=summary(d$time)[c(3,5)]) %>% as.data.frame

## ----eval=F-------------------------------------------------------------------
# #Function to standardize numerical predictors using functions from recipes package
# 
# library(recipes)
# 
# pp.fun <- function(data){
# 
#   recipe(time+event~.,data=data) %>%
# 
#     step_center(all_numeric_predictors()) %>%
# 
#     step_scale(all_numeric_predictors()) %>%
# 
#     prep(training=data) %>%
# 
#     bake(new_data=NULL)
# 
# }
# 
# set.seed(123)
# 
# tri.l <- caret::createFolds(as.factor(d$event),k=5,list=T,returnTrain=T)
# 
# tune_obj <- tune_penCSC(time = 'time',status = 'event',vars.list = vl,data = d,
# 
#                         horizons = median(d$time),event = 1,tri.list = tri.l,metrics = 'AUC',
# 
#                         alpha.grid = list('1'=0,'2'=c(.5,1)),preProc.fun = pp.fun,
# 
#                         standardize = F,parallel = T,preProc.pkgs = 'recipes')
# 
# tune_obj$validation_result %>% arrange(desc(mean.AUC)) %>% head
# 
# tune_obj$final_params
# 
# tune_obj$final_fits
# 

