# NOT RUN {
# Attach packages
library(cvms)
library(groupdata2) # fold()
library(dplyr) # %>% arrange()
# Data is part of cvms
data <- participant.scores
# Set seed for reproducibility
set.seed(7)
# Fold data
data <- fold(data, k = 4,
cat_col = 'diagnosis',
id_col = 'participant') %>%
arrange(.folds)
# Cross-validate a single model
# }
# NOT RUN {
# Gaussian
cross_validate(data,
models = "score~diagnosis",
family='gaussian',
REML = FALSE)
# Binomial
cross_validate(data,
models = "diagnosis~score",
family='binomial')
# Cross-validate multiple models
models <- c("score~diagnosis+(1|session)",
"score~age+(1|session)")
cross_validate(data,
models = models,
family='gaussian',
REML = FALSE)
# Use non-default link functions
cross_validate(data,
models = "score~diagnosis",
family = 'gaussian',
link = 'log',
REML = FALSE)
# }
# NOT RUN {
# Use parallelization
# }
# NOT RUN {
# Attach doParallel and register four cores
# Uncomment:
# library(doParallel)
# registerDoParallel(4)
# Create list of 20 model formulas
models <- rep(c("score~diagnosis+(1|session)",
"score~age+(1|session)"), 10)
# Cross-validate a list of 20 model formulas in parallel
system.time({cross_validate(data,
models = models,
family = 'gaussian',
parallel = TRUE)})
# Cross-validate a list of 20 model formulas sequentially
system.time({cross_validate(data,
models = models,
family = 'gaussian',
parallel = FALSE)})
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab