gen_adapt_model {adaptMT} | R Documentation |
adapt_model
objects provide the functions and their arguments in computing the M-steps.
Each object can be passed to adapt
as a candidate model.
gen_adapt_model(pifun = NULL, mufun = NULL, pifun_init = NULL, mufun_init = NULL, piargs = list(), muargs = list(), piargs_init = list(), muargs_init = list(), name = "")
pifun |
a function to fit pi(x). See Details |
mufun |
a function to fit mu(x). See Details |
pifun_init |
a function to fit pi(x) at the initial step |
mufun_init |
a function to fit mu(x) at the initial step |
piargs |
a list. Arguments for "pifun". An empty list as default |
muargs |
a list. Arguments for "mufun". An empty list as default |
piargs_init |
a list. Arguments for piargs_init. An empty list as default |
muargs_init |
a list. Arguments for muargs_init. An empty list as default |
name |
a string. An optional argument for the user-specified name of the model. An empty string as default. |
pifun
should be in the form of pifun(formula, data, family, weights, ...)
or pifun(x, y, family, ...)
.
The former includes glm
and gam
and the latter includes glmnet
.
The outputs should be in the form of list(fitv = , info = , ...)
where fitv
gives the estimate of pi(x),
as a vector with the same order of x
, and info
should at least contain a key df
if model selection is used, i.e. info = list(df = , ...)
mufun
should be in the form of pifun(formula, data, family, weights, ...)
or pifun(x, y, family, weights, ...)
.
Note that mufun
must take weights
as an input. The outputs should be in the same form as pifun
except that fitv
should give the estimate of mu(x).
When pifun
/ mufun
takes the form of (formula, family, ...)
, piargs
/ muargs
should at least contain a key formula
; when pifun
/ mufun
takes the form of (x, y, family, ...)
, piargs
/ muargs
can be empty.
For glm/gam/glmnet, one can use the shortcut by running gen_adapt_model
with name = "glm" or "gam" or "glmnet" but without specifying pifun
, mufun
, pifun_init
and mufun_init
. See examples below.
name |
same as the input |
algo |
a list recording |
args |
a list recording |
# Exemplary code to generate 'adapt_model' for logistic-Gamma glm with naive initialization. # The real implementation in the package is much more complicated. # pifun as a logistic regression pifun <- function(formula, data, weights, ...){ glm(formula, data, weights = weights, family = binomial(), ...) } # pifun_init as a constant pifun_init <- function(x, pvals, s, ...){ rep(0.1, length(pvals)) } # mufun as a Gamma GLM mufun <- function(formula, data, weights, ...){ glm(formula, data, weights = weights, family = Gamma(), ...) } # mufun_init as a constant mufun_init <- function(x, pvals, s, ...){ rep(1.5, length(pvals)) } library("splines") # for using ns() in the formula piargs <- list(formula = "ns(x, df = 8)") muargs <- list(formula = "ns(x, df = 8)") name <- "glm" mod <- gen_adapt_model(pifun, mufun, pifun_init, mufun_init, piargs, muargs, name = name) mod # Using shortcut for GLM. See the last paragraph of Details. mod2 <- gen_adapt_model(name = "glm", piargs = piargs, muargs = muargs) mod2