View source: R/bayesx.construct.R
bayesx.construct | R Documentation |
The function bayesx.construct
is used to provide a flexible framework to implement
new model term objects in bayesx
within the BayesX syntax.
bayesx.construct(object, dir, prg, data)
object |
is a smooth, shrinkage or random specification object in a STAR |
dir |
|
prg |
if additional data handling must be applied, e.g. storing maps ( |
data |
if additional data is needed to setup the BayesX term it is found here. |
The main idea of these constructor functions is to provide a flexible framework to implement new
model term objects in the BayesX syntax within bayesx
, i.e. for any smooth or
random term in R2BayesX a constructor function like
bayesx.construct.ps.smooth.construct
may be provided to translate R specific syntax into
BayesX readable commands. During processing with write.bayesx.input
each model
term is constructed with bayesx.construct
after another, wrapped into a full formula, which
may then be send to the BayesX binary with function run.bayesx
.
At the moment the following model terms are implemented:
"rw1"
, "rw2"
: Zero degree P-splines: Defines a zero degree P-spline with first or
second order difference penalty. A zero degree P-spline typically
estimates for every distinct covariate value in the dataset a separate
parameter. Usually there is no reason to prefer zero degree P-splines
over higher order P-splines. An exception are ordinal covariates or
continuous covariates with only a small number of different values.
For ordinal covariates higher order P-splines are not meaningful while
zero degree P-splines might be an alternative to modeling nonlinear
relationships via a dummy approach with completely unrestricted
regression parameters.
"season"
: Seasonal effect of a time scale.
"ps"
, "psplinerw1"
, "psplinerw2"
: P-spline with first or second order
difference penalty.
"te"
, "pspline2dimrw1"
: Defines a two-dimensional P-spline based on the tensor
product of one-dimensional P-splines with a two-dimensional first order random walk
penalty for the parameters of the spline.
"kr"
, "kriging"
: Kriging with stationary Gaussian random fields.
"gk"
, "geokriging"
: Geokriging with stationary Gaussian random fields: Estimation
is based on the centroids of a map object provided in
boundary format (see function read.bnd
and shp2bnd
) as an additional
argument named map
within function sx
, or supplied within argument
xt
when using function s
, e.g., xt = list(map = MapBnd)
.
"gs"
, "geospline"
: Geosplines based on two-dimensional P-splines with a
two-dimensional first order random walk penalty for the parameters of the spline.
Estimation is based on the coordinates of the centroids of the regions
of a map object provided in boundary format (see function read.bnd
and
shp2bnd
) as an additional argument named map
(see above).
"mrf"
, "spatial"
: Markov random fields: Defines a Markov random field prior for a
spatial covariate, where geographical information is provided by a map object in
boundary or graph file format (see function read.bnd
, read.gra
and
shp2bnd
), as an additional argument named map
(see above).
"bl"
, "baseline"
: Nonlinear baseline effect in hazard regression or multi-state
models: Defines a P-spline with second order random walk penalty for the parameters of
the spline for the log-baseline effect log(\lambda(time))
.
"factor"
: Special BayesX specifier for factors, especially meaningful if
method = "STEP"
, since the factor term is then treated as a full term,
which is either included or removed from the model.
"ridge"
, "lasso"
, "nigmix"
: Shrinkage of fixed effects: defines a
shrinkage-prior for the corresponding parameters
\gamma_j
, j = 1, \ldots, q
, q \geq 1
of the
linear effects x_1, \ldots, x_q
. There are three
priors possible: ridge-, lasso- and Normal Mixture
of inverse Gamma prior.
"re"
: Gaussian i.i.d.\ Random effects of a unit or cluster identification covariate.
See function sx
for a description of the main
R2BayesX
model term constructor functions.
The model term syntax used within BayesX as a character string.
If new bayesx.construct
functions are implemented in future work, there may occur problems
with reading the corresponding BayesX output files with read.bayesx.output
,
e.g., if the new objects do not have the structure as implemented with bs = "ps"
etc.,
i.e. function read.bayesx.output
must also be adapted in such cases.
Using sx
additional controlling arguments may be supplied within the dot dot dot
“...
” argument. Please see the help site for function bayesx.term.options
for a detailed description of possible optional parameters.
Within the xt
argument in function s
, additional
BayesX specific parameters may be also supplied, see the examples below.
Nikolaus Umlauf, Thomas Kneib, Stefan Lang, Achim Zeileis.
sx
, bayesx.term.options
, s
,
formula.gam
, read.bnd
,
read.gra
.
bayesx.construct(sx(x1, bs = "ps"))
bayesx.construct(sx(x1, x2, bs = "te"))
## now create BayesX syntax for smooth terms
## using mgcv constructor functions
bayesx.construct(s(x1, bs = "ps"))
## for tensor product P-splines,
bayesx.construct(s(x1, x2, bs = "te"))
## increase number of knots
## for a P-spline
bayesx.construct(sx(x1, bs = "ps", nrknots = 40))
## now with degree 2 and
## penalty order 1
bayesx.construct(sx(x1, bs = "ps", knots = 40, degree = 2, order = 1))
bayesx.construct(s(x1, bs = "ps", k = 41, m = c(0, 1)))
## random walks
bayesx.construct(sx(x1, bs = "rw1"))
bayesx.construct(sx(x1, bs = "rw2"))
## shrinkage priors
bayesx.construct(sx(x1, bs = "lasso"))
bayesx.construct(sx(x1, bs = "ridge"))
bayesx.construct(sx(x1, bs = "nigmix"))
## for cox models, baseline
bayesx.construct(sx(time, bs = "bl"))
## kriging
bayesx.construct(sx(x, z, bs = "kr"))
## seasonal
bayesx.construct(sx(x, bs = "season"))
## factors
bayesx.construct(sx(id, bs = "factor"))
## now with some geographical information
## note: maps must be either supplied in
## 'bnd' or 'gra' format, also see function
## read.bnd() or read.gra()
data("MunichBnd")
bayesx.construct(sx(id, bs = "mrf", map = MunichBnd))
## same with
bayesx.construct(s(id, bs = "mrf", xt = list(map = MunichBnd)))
bayesx.construct(sx(id, bs = "gk", map = MunichBnd))
bayesx.construct(sx(id, bs = "gs", map = MunichBnd))
## also vary number of knots
bayesx.construct(sx(id, bs = "gs", knots = 10, map = MunichBnd))
bayesx.construct(s(id, bs = "gs", k = 12, m = c(1, 1), xt = list(map = MunichBnd)))
## random effects
bayesx.construct(sx(id, bs = "re"))
bayesx.construct(sx(id, bs = "re", by = x1))
bayesx.construct(sx(id, bs = "re", by = x1, xt = list(nofixed=TRUE)))
## generic
## specifies some model term
## and sets all additional arguments
## within argument xt
## only for experimental use
bayesx.construct(sx(x, bs = "generic", dosomething = TRUE, a = 1, b = 2))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.