lfactor {dynamite} | R Documentation |
Define a Common Latent Factor for the Dynamite Model.
Description
This function can be used as part of dynamiteformula()
to define
a common latent factor component. The latent factor is modeled as a spline
similarly as a time-varying intercept, but instead of having equal effect on
each group, there is an additional loading variable for each group so that
in the linear predictor we have a term \lambda_i \psi_t
for each
group i
.
Usage
lfactor(
responses = NULL,
nonzero_lambda = TRUE,
correlated = TRUE,
noncentered_psi = FALSE,
flip_sign = TRUE
)
Arguments
responses |
[character() ] Names of the responses that the
factor should affect. Default is all responses defined with
obs except categorical responses, which do not (yet) support the factor
component.
|
nonzero_lambda |
[logical() ] If TRUE (the default), assumes
that the mean of factor loadings is nonzero or not. Should be a logical
vector matching the length of responses or a single logical value in
case responses is NULL . See details.
|
correlated |
[logical() ] If TRUE (the default), the latent
factors are assumed to be correlated between channels.
|
noncentered_psi |
[logical(1) ] If TRUE , uses a
noncentered parametrization for spline coefficients of all the factors.
The number of knots is based splines() call. Default is FALSE .
|
flip_sign |
[logical(1) ] If TRUE (default), try to avoid
multimodality due to sign-switching by defining the sign of \lambda
and \psi based on the mean of \omega_1,\ldots, \omega_D
coefficients. This only affects channels with nonzero_lambda = FALSE .
If the true mean of \omega s is close to zero, this might not help,
in which case it is better to set flip_sign = FALSE and post-process the
samples in other ways (or use only one chain and/or suitable initial
values). This argument is common to all factors.
|
Value
An object of class latent_factor
.
See Also
Model formula construction
dynamite()
,
dynamiteformula()
,
lags()
,
random_spec()
,
splines()
Examples
data.table::setDTthreads(1) # For CRAN
# three channel model with common factor affecting for responses x and y
obs(y ~ 1, family = "gaussian") +
obs(x ~ 1, family = "poisson") +
obs(z ~ 1, family = "gaussian") +
lfactor(
responses = c("y", "x"), nonzero_lambda = c(TRUE, FALSE),
correlated = TRUE, noncentered_psi = FALSE
)
[Package
dynamite version 1.5.2
Index]