gen_adapt_model {adaptMT} | R Documentation |
adapt_model Objects for M-steps
Description
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.
Usage
gen_adapt_model(pifun = NULL, mufun = NULL, pifun_init = NULL,
mufun_init = NULL, piargs = list(), muargs = list(),
piargs_init = list(), muargs_init = list(), name = "")
Arguments
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. |
Details
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.
Value
name |
same as the input |
algo |
a list recording |
args |
a list recording |
Examples
# 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