Description Usage Arguments Details Value Author(s) References Examples
Calls the MEml models: MEgbm, MEgbmrules, MErfrules, MEglmtree, MECTree, etc. The training and test data can be split into lagged training and testing as described in [1]
1 2 3 4 5 6 7 | MEml.lag(lag = NULL, classifier, dat, id, rhs.vars, resp.vars,
order.vars, rand.vars = NULL, reg.vars = NULL, part.vars = NULL,
para, max.iter = 10, seed = 1, return.model = TRUE)
MEml(classifier, dat.trn, dat.tst, id, rhs.vars, resp.vars,
rand.vars = NULL, reg.vars = NULL, part.vars = NULL, para,
max.iter = 10, seed = 1, return.model = FALSE, ...)
|
lag |
time lag between predictors and outcome: e.g if lag = 1, then we use predictors in current vist to predict outcome in the next visit. |
classifier |
character or character vector with names of classification models.
See names( |
dat |
data frame with predictors and outcome |
id |
character name of the column containing the group identifier |
rhs.vars |
caracter vector of predictors |
order.vars |
order variables (usually time variable) |
rand.vars |
random effect variables |
reg.vars |
reg.vars regressors for MOB |
part.vars |
partitioning variables for MOB and predictors |
para |
named list of gbm training parameters |
max.iter |
maximum number of iterations |
return.model |
should the train model be return. Otherwise the return values is only the performance metrics |
MEml.lag Takes the full data set and calls LongiLagSplit to split data into lagged
training and testing. MEml.lag also trains the MOB and CTree models (see [1]).
MEml is the same as MEml.lag, except that you pass in the training and test set. So you can
call LongiLagSlit and pass the derived training and test sets to MEml2.
The train MEml model and performance matrics (as data frame) if return.model = TRUE
Che Ngufor <Ngufor.Che@mayo.edu>
Che Ngufor, Holly Van Houten, Brian S. Caffo , Nilay D. Shah, Rozalina G. McCoy Mixed Effect Machine Learning: a framework for predicting longitudinal change in hemoglobin A1c, in Journal of Biomedical Informatics, 2018 #
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | ## Not run:
# parameter list
para <- list(
method = "cv", # internal cross-validation method for parameter tuning. See caret package
tuneLength=3, # grid size for parameter search
number = 3, # number of internal cross-validation
n.trees=100, # number of trees in gbm
ntree = 50, # number of trees in random forest
mtry = 5, # mtry in random forest
interaction.depth=4,
shrinkage=0.01,
n.minobsinnode=10,
opt.para= TRUE, # perform parameter tuning through internal cross-validation
coefReg = 0.5,
coefImp=1,
include.RE = FALSE,
con.tree = FALSE,
max.iter = 10, alpha=0.05, minsize=20,maxdepth=30,
K = 3, decay = 0.05, tol= 1e-5,
seed = 1 # random seed
)
data(heart.valve)
dat <- heart.valve
dat$id <- as.numeric(dat$id) ## random effect grouping variable
resp.vars <- "inc.lvmi"
id <- "id"
## fixed effect variables
rhs.vars <- c("sex", "age", "time", "fuyrs", "grad", "log.grad", "bsa", "lvh", "prenyha",
"redo", "size", "con.cabg", "creat", "dm", "acei", "lv", "emergenc",
"hc", "sten.reg.mix", "hs")
order.vars = "time"
rand.vars= "time" ## random effect variables
### split data into lagged training and testing
### predict two time points in advanced
dd <- LongiLagSplit(dat=dat, id=id, rhs.vars=rhs.vars,resp.vars=resp.vars,
order.vars=order.vars,lag= 2)
train <- dd$train
test <- dd$test
res <- MEml(classifier="GBM", dat.trn = train, dat.tst=test, id=id,
rhs.vars=dd$rhs.vars, resp.vars=dd$resp.vars,
rand.vars=rand.vars, para=para, max.iter = 10, seed = 1,
return.model = FALSE)
res$GBM
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.