parameters.RdThe function either sets up a list of all parameters of a bamlss.frame, which
can be used for setting up models, or extracts the estimated parameters of a bamlss
object.
parameters(x, model = NULL, start = NULL,
fill = c(0, 1e-04), list = FALSE,
simple.list = FALSE, extract = FALSE,
...)A bamlss.frame or bamlss object.
The model name for which parameters should be initialized or extracted.
A named numeric vector which should be used when creating the parameter list.
See also function link{set.starting.values}
Numeric, when setting up a parameter list, the values the should be used for regression
coefficients (first element of fill) and for smoothing variances
(second element of fill).
Should the function return a list of all parameters?
Should the names of parameter vectors be dropped?
Should parameters of a bamlss.frame be extracted or initialized?
Currently not used.
Parameters for BAMLSS are used for optimizer functions in function bamlss.
The function is useful for initializing all parameters given a bamlss.frame
(which is done internally in function bamlss), but also for extracting all
estimated parameters of some optimizer.
The naming convention of the parameter list is used by a couple of functions in this package.
For each parameter of the modeled distribution, e.g., gaussian_bamlss has
parameters "mu" and "sigma", a list element is created. These elements the contain
the list of all model term parameters. Parametric model terms are indicated with "p" and
smooth model terms with "s". If the design matrix of a model term in the x list
of a bamlss.frame does not contain any columns names, then the parameters are named
with a leading "b", otherwise the column names of the design matrix are used. Smoothing
variances parameter vectors are named with a leading "tau2".
The naming convention is useful when setting up new model fitting engines for bamlss
and is used, e.g., by bfit and GMCMC, which are based on parameter
state list objects as provided by function bamlss.engine.setup.
## Create a "bamlss.frame"
set.seed(123)
d <- GAMart()
bf <- bamlss.frame(num ~ s(x1) + te(lon,lat), data = d)
## Create list of all parameters from "bamlss.frame".
p <- parameters(bf, list = TRUE)
str(p)
#> List of 2
#> $ mu :List of 2
#> ..$ p: Named num 0
#> .. ..- attr(*, "names")= chr "(Intercept)"
#> ..$ s:List of 2
#> .. ..$ s(x1) : Named num [1:10] 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 1e-04
#> .. .. ..- attr(*, "names")= chr [1:10] "b1" "b2" "b3" "b4" ...
#> .. ..$ te(lon,lat): Named num [1:26] 0 0 0 0 0 0 0 0 0 0 ...
#> .. .. ..- attr(*, "names")= chr [1:26] "b1" "b2" "b3" "b4" ...
#> $ sigma:List of 1
#> ..$ p: Named num 0
#> .. ..- attr(*, "names")= chr "(Intercept)"
if (FALSE) ## Estimate model.
f <- list(num ~ s(x1) + te(lon,lat), sigma ~ s(x1))
b <- bamlss(f, data = d, sampler = FALSE)
#> Error in eval(bf, envir = parent.frame()): object 'f' not found
## Extract estimated parameters.
parameters(b)
#> Error in eval(expr, envir, enclos): object 'b' not found
parameters(b, list = TRUE)
#> Error in eval(expr, envir, enclos): object 'b' not found