Title: | Bootstrap for State Space Models |
---|---|
Description: | Provides a streamlined and user-friendly framework for bootstrapping in state space models, particularly when the number of subjects/units (n) exceeds one, a scenario commonly encountered in social and behavioral sciences. For an introduction to state space models in social and behavioral sciences, refer to Chow, Ho, Hamaker, and Dolan (2010) <doi:10.1080/10705511003661553>. |
Authors: | Ivan Jacob Agaloos Pesigan [aut, cre, cph] |
Maintainer: | Ivan Jacob Agaloos Pesigan <[email protected]> |
License: | GPL (>= 3) |
Version: | 1.0.1 |
Built: | 2025-01-22 19:52:34 UTC |
Source: | CRAN |
bootstatespace
Estimated Parameter Method for an Object of Class
bootstatespace
## S3 method for class 'bootstatespace' coef(object, ...)
## S3 method for class 'bootstatespace' coef(object, ...)
object |
Object of Class |
... |
additional arguments. |
Returns a vector of estimated parameters.
Ivan Jacob Agaloos Pesigan
bootstatespace
Confidence Intervals Method for an Object of Class
bootstatespace
## S3 method for class 'bootstatespace' confint(object, parm = NULL, level = 0.95, type = "pc", ...)
## S3 method for class 'bootstatespace' confint(object, parm = NULL, level = 0.95, type = "pc", ...)
object |
Object of Class |
parm |
a specification of which parameters are to be given confidence intervals, either a vector of numbers or a vector of names. If missing, all parameters are considered. |
level |
the confidence level required. |
type |
Charater string.
Confidence interval type, that is,
|
... |
additional arguments. |
Returns a matrix of confidence intervals.
Ivan Jacob Agaloos Pesigan
A generic function for extracting elements from objects.
extract(object, what)
extract(object, what)
object |
An object. |
what |
Character string. |
A value determined by the specific method for the object's class.
bootstatespace
Extract Method for an Object of Class
bootstatespace
## S3 method for class 'bootstatespace' extract(object, what = NULL)
## S3 method for class 'bootstatespace' extract(object, what = NULL)
object |
Object of Class |
what |
Character string.
What specific matrix to extract.
If |
Returns a list. Each element of the list is a list of bootstrap estimates in matrix format.
Ivan Jacob Agaloos Pesigan
This function simulates data from
a state-space model
and fits the model using the dynr
package.
The process is repeated R
times.
It assumes that the parameters remain constant
across individuals and over time.
At the moment, the function only supports
type = 0
.
PBSSMFixed( R, path, prefix, n, time, delta_t = 1, mu0, sigma0_l, alpha, beta, psi_l, nu, lambda, theta_l, type = 0, x = NULL, gamma = NULL, kappa = NULL, mu0_fixed = FALSE, sigma0_fixed = FALSE, alpha_level = 0.05, optimization_flag = TRUE, hessian_flag = FALSE, verbose = FALSE, weight_flag = FALSE, debug_flag = FALSE, perturb_flag = FALSE, xtol_rel = 1e-07, stopval = -9999, ftol_rel = -1, ftol_abs = -1, maxeval = as.integer(-1), maxtime = -1, ncores = NULL, seed = NULL )
PBSSMFixed( R, path, prefix, n, time, delta_t = 1, mu0, sigma0_l, alpha, beta, psi_l, nu, lambda, theta_l, type = 0, x = NULL, gamma = NULL, kappa = NULL, mu0_fixed = FALSE, sigma0_fixed = FALSE, alpha_level = 0.05, optimization_flag = TRUE, hessian_flag = FALSE, verbose = FALSE, weight_flag = FALSE, debug_flag = FALSE, perturb_flag = FALSE, xtol_rel = 1e-07, stopval = -9999, ftol_rel = -1, ftol_abs = -1, maxeval = as.integer(-1), maxtime = -1, ncores = NULL, seed = NULL )
R |
Positive integer. Number of bootstrap samples. |
path |
Path to a directory to store bootstrap samples and estimates. |
prefix |
Character string. Prefix used for the file names for the bootstrap samples and estimates. |
n |
Positive integer. Number of individuals. |
time |
Positive integer. Number of time points. |
delta_t |
Numeric.
Time interval.
The default value is |
mu0 |
Numeric vector.
Mean of initial latent variable values
( |
sigma0_l |
Numeric matrix.
Cholesky factorization ( |
alpha |
Numeric vector.
Vector of constant values for the dynamic model
( |
beta |
Numeric matrix.
Transition matrix relating the values of the latent variables
at the previous to the current time point
( |
psi_l |
Numeric matrix.
Cholesky factorization ( |
nu |
Numeric vector.
Vector of intercept values for the measurement model
( |
lambda |
Numeric matrix.
Factor loading matrix linking the latent variables
to the observed variables
( |
theta_l |
Numeric matrix.
Cholesky factorization ( |
type |
Integer. State space model type. See Details for more information. |
x |
List.
Each element of the list is a matrix of covariates
for each individual |
gamma |
Numeric matrix.
Matrix linking the covariates to the latent variables
at current time point
( |
kappa |
Numeric matrix.
Matrix linking the covariates to the observed variables
at current time point
( |
mu0_fixed |
Logical.
If |
sigma0_fixed |
Logical.
If |
alpha_level |
Numeric vector.
Significance level |
optimization_flag |
a flag (TRUE/FALSE) indicating whether optimization is to be done. |
hessian_flag |
a flag (TRUE/FALSE) indicating whether the Hessian matrix is to be calculated. |
verbose |
a flag (TRUE/FALSE) indicating whether more detailed intermediate output during the estimation process should be printed |
weight_flag |
a flag (TRUE/FALSE) indicating whether the negative log likelihood function should be weighted by the length of the time series for each individual |
debug_flag |
a flag (TRUE/FALSE) indicating whether users want additional dynr output that can be used for diagnostic purposes |
perturb_flag |
a flag (TRUE/FLASE) indicating whether to perturb the latent states during estimation. Only useful for ensemble forecasting. |
xtol_rel |
Stopping criteria option
for parameter optimization.
See |
stopval |
Stopping criteria option
for parameter optimization.
See |
ftol_rel |
Stopping criteria option
for parameter optimization.
See |
ftol_abs |
Stopping criteria option
for parameter optimization.
See |
maxeval |
Stopping criteria option
for parameter optimization.
See |
maxtime |
Stopping criteria option
for parameter optimization.
See |
ncores |
Positive integer.
Number of cores to use.
If |
seed |
Random seed. |
The measurement model is given by
where
,
,
and
are random variables
and
,
,
and
are model parameters.
represents a vector of observed random variables,
a vector of latent random variables,
and
a vector of random measurement errors,
at time
and individual
.
denotes a vector of intercepts,
a matrix of factor loadings,
and
the covariance matrix of
.
An alternative representation of the measurement error is given by
where
is a vector of
independent standard normal random variables and
The dynamic structure is given by
where
,
,
and
are random variables,
and
,
,
and
are model parameters.
Here,
is a vector of latent variables
at time
and individual
,
represents a vector of latent variables
at time
and individual
,
and
represents a vector of dynamic noise
at time
and individual
.
denotes a vector of intercepts,
a matrix of autoregression
and cross regression coefficients,
and
the covariance matrix of
.
An alternative representation of the dynamic noise is given by
where
The measurement model is given by
The dynamic structure is given by
where
represents a vector of covariates
at time
and individual
,
and
the coefficient matrix
linking the covariates to the latent variables.
The measurement model is given by
where
represents the coefficient matrix
linking the covariates to the observed variables.
The dynamic structure is given by
Returns an object
of class bootstatespace
which is a list with the following elements:
Function call.
Function arguments.
Sampling distribution of
.
Sampling variance-covariance matrix of
.
Vector of estimated
.
Function used ("PBSSMFixed").
Bootstrap method used ("parametric").
Ivan Jacob Agaloos Pesigan
Chow, S.-M., Ho, M. R., Hamaker, E. L., & Dolan, C. V. (2010). Equivalence and differences between structural equation modeling and state-space modeling techniques. Structural Equation Modeling: A Multidisciplinary Journal, 17(2), 303–332. doi:10.1080/10705511003661553
Other Bootstrap for State Space Models Functions:
PBSSMLinSDEFixed()
,
PBSSMOUFixed()
,
PBSSMVARFixed()
# prepare parameters set.seed(42) ## number of individuals n <- 5 ## time points time <- 50 delta_t <- 1 ## dynamic structure p <- 3 mu0 <- rep(x = 0, times = p) sigma0 <- 0.001 * diag(p) sigma0_l <- t(chol(sigma0)) alpha <- rep(x = 0, times = p) beta <- 0.50 * diag(p) psi <- 0.001 * diag(p) psi_l <- t(chol(psi)) ## measurement model k <- 3 nu <- rep(x = 0, times = k) lambda <- diag(k) theta <- 0.001 * diag(k) theta_l <- t(chol(theta)) path <- tempdir() pb <- PBSSMFixed( R = 10L, # use at least 1000 in actual research path = path, prefix = "ssm", n = n, time = time, delta_t = delta_t, mu0 = mu0, sigma0_l = sigma0_l, alpha = alpha, beta = beta, psi_l = psi_l, nu = nu, lambda = lambda, theta_l = theta_l, type = 0, ncores = 1, # consider using multiple cores seed = 42 ) print(pb) summary(pb) confint(pb) vcov(pb) coef(pb) print(pb, type = "bc") # bias-corrected summary(pb, type = "bc") confint(pb, type = "bc")
# prepare parameters set.seed(42) ## number of individuals n <- 5 ## time points time <- 50 delta_t <- 1 ## dynamic structure p <- 3 mu0 <- rep(x = 0, times = p) sigma0 <- 0.001 * diag(p) sigma0_l <- t(chol(sigma0)) alpha <- rep(x = 0, times = p) beta <- 0.50 * diag(p) psi <- 0.001 * diag(p) psi_l <- t(chol(psi)) ## measurement model k <- 3 nu <- rep(x = 0, times = k) lambda <- diag(k) theta <- 0.001 * diag(k) theta_l <- t(chol(theta)) path <- tempdir() pb <- PBSSMFixed( R = 10L, # use at least 1000 in actual research path = path, prefix = "ssm", n = n, time = time, delta_t = delta_t, mu0 = mu0, sigma0_l = sigma0_l, alpha = alpha, beta = beta, psi_l = psi_l, nu = nu, lambda = lambda, theta_l = theta_l, type = 0, ncores = 1, # consider using multiple cores seed = 42 ) print(pb) summary(pb) confint(pb) vcov(pb) coef(pb) print(pb, type = "bc") # bias-corrected summary(pb, type = "bc") confint(pb, type = "bc")
This function simulates data from
a linear stochastic differential equation model
using a state-space model parameterization
and fits the model using the dynr
package.
The process is repeated R
times.
It assumes that the parameters remain constant
across individuals and over time.
At the moment, the function only supports
type = 0
.
PBSSMLinSDEFixed( R, path, prefix, n, time, delta_t = 0.1, mu0, sigma0_l, iota, phi, sigma_l, nu, lambda, theta_l, type = 0, x = NULL, gamma = NULL, kappa = NULL, mu0_fixed = FALSE, sigma0_fixed = FALSE, alpha_level = 0.05, optimization_flag = TRUE, hessian_flag = FALSE, verbose = FALSE, weight_flag = FALSE, debug_flag = FALSE, perturb_flag = FALSE, xtol_rel = 1e-07, stopval = -9999, ftol_rel = -1, ftol_abs = -1, maxeval = as.integer(-1), maxtime = -1, ncores = NULL, seed = NULL )
PBSSMLinSDEFixed( R, path, prefix, n, time, delta_t = 0.1, mu0, sigma0_l, iota, phi, sigma_l, nu, lambda, theta_l, type = 0, x = NULL, gamma = NULL, kappa = NULL, mu0_fixed = FALSE, sigma0_fixed = FALSE, alpha_level = 0.05, optimization_flag = TRUE, hessian_flag = FALSE, verbose = FALSE, weight_flag = FALSE, debug_flag = FALSE, perturb_flag = FALSE, xtol_rel = 1e-07, stopval = -9999, ftol_rel = -1, ftol_abs = -1, maxeval = as.integer(-1), maxtime = -1, ncores = NULL, seed = NULL )
R |
Positive integer. Number of bootstrap samples. |
path |
Path to a directory to store bootstrap samples and estimates. |
prefix |
Character string. Prefix used for the file names for the bootstrap samples and estimates. |
n |
Positive integer. Number of individuals. |
time |
Positive integer. Number of time points. |
delta_t |
Numeric.
Time interval
( |
mu0 |
Numeric vector.
Mean of initial latent variable values
( |
sigma0_l |
Numeric matrix.
Cholesky factorization ( |
iota |
Numeric vector.
An unobserved term that is constant over time
( |
phi |
Numeric matrix.
The drift matrix
which represents the rate of change of the solution
in the absence of any random fluctuations
( |
sigma_l |
Numeric matrix.
Cholesky factorization ( |
nu |
Numeric vector.
Vector of intercept values for the measurement model
( |
lambda |
Numeric matrix.
Factor loading matrix linking the latent variables
to the observed variables
( |
theta_l |
Numeric matrix.
Cholesky factorization ( |
type |
Integer. State space model type. See Details for more information. |
x |
List.
Each element of the list is a matrix of covariates
for each individual |
gamma |
Numeric matrix.
Matrix linking the covariates to the latent variables
at current time point
( |
kappa |
Numeric matrix.
Matrix linking the covariates to the observed variables
at current time point
( |
mu0_fixed |
Logical.
If |
sigma0_fixed |
Logical.
If |
alpha_level |
Numeric vector.
Significance level |
optimization_flag |
a flag (TRUE/FALSE) indicating whether optimization is to be done. |
hessian_flag |
a flag (TRUE/FALSE) indicating whether the Hessian matrix is to be calculated. |
verbose |
a flag (TRUE/FALSE) indicating whether more detailed intermediate output during the estimation process should be printed |
weight_flag |
a flag (TRUE/FALSE) indicating whether the negative log likelihood function should be weighted by the length of the time series for each individual |
debug_flag |
a flag (TRUE/FALSE) indicating whether users want additional dynr output that can be used for diagnostic purposes |
perturb_flag |
a flag (TRUE/FLASE) indicating whether to perturb the latent states during estimation. Only useful for ensemble forecasting. |
xtol_rel |
Stopping criteria option
for parameter optimization.
See |
stopval |
Stopping criteria option
for parameter optimization.
See |
ftol_rel |
Stopping criteria option
for parameter optimization.
See |
ftol_abs |
Stopping criteria option
for parameter optimization.
See |
maxeval |
Stopping criteria option
for parameter optimization.
See |
maxtime |
Stopping criteria option
for parameter optimization.
See |
ncores |
Positive integer.
Number of cores to use.
If |
seed |
Random seed. |
The measurement model is given by
where
,
,
and
are random variables
and
,
,
and
are model parameters.
represents a vector of observed random variables,
a vector of latent random variables,
and
a vector of random measurement errors,
at time
and individual
.
denotes a vector of intercepts,
a matrix of factor loadings,
and
the covariance matrix of
.
An alternative representation of the measurement error is given by
where
is a vector of
independent standard normal random variables and
The dynamic structure is given by
where
is a term which is unobserved and constant over time,
is the drift matrix
which represents the rate of change of the solution
in the absence of any random fluctuations,
is the matrix of volatility
or randomness in the process, and
is a Wiener process or Brownian motion,
which represents random fluctuations.
The measurement model is given by
The dynamic structure is given by
where
represents a vector of covariates
at time
and individual
,
and
the coefficient matrix
linking the covariates to the latent variables.
The measurement model is given by
where
represents the coefficient matrix
linking the covariates to the observed variables.
The dynamic structure is given by
The state space parameters as a function of the linear stochastic differential equation model parameters are given by
where is the number of latent variables and
is the time interval.
Returns an object
of class bootstatespace
which is a list with the following elements:
Function call.
Function arguments.
Sampling distribution of
.
Sampling variance-covariance matrix of
.
Vector of estimated
.
Function used ("PBSSMLinSDEFixed").
Bootstrap method used ("parametric").
Ivan Jacob Agaloos Pesigan
Chow, S.-M., Ho, M. R., Hamaker, E. L., & Dolan, C. V. (2010). Equivalence and differences between structural equation modeling and state-space modeling techniques. Structural Equation Modeling: A Multidisciplinary Journal, 17(2), 303–332. doi:10.1080/10705511003661553
Other Bootstrap for State Space Models Functions:
PBSSMFixed()
,
PBSSMOUFixed()
,
PBSSMVARFixed()
# prepare parameters ## number of individuals n <- 5 ## time points time <- 50 delta_t <- 0.10 ## dynamic structure p <- 2 mu0 <- c(-3.0, 1.5) sigma0 <- 0.001 * diag(p) sigma0_l <- t(chol(sigma0)) iota <- c(0.317, 0.230) phi <- matrix( data = c( -0.10, 0.05, 0.05, -0.10 ), nrow = p ) sigma <- matrix( data = c( 2.79, 0.06, 0.06, 3.27 ), nrow = p ) sigma_l <- t(chol(sigma)) ## measurement model k <- 2 nu <- rep(x = 0, times = k) lambda <- diag(k) theta <- 0.001 * diag(k) theta_l <- t(chol(theta)) path <- tempdir() pb <- PBSSMLinSDEFixed( R = 10L, # use at least 1000 in actual research path = path, prefix = "lse", n = n, time = time, delta_t = delta_t, mu0 = mu0, sigma0_l = sigma0_l, iota = iota, phi = phi, sigma_l = sigma_l, nu = nu, lambda = lambda, theta_l = theta_l, type = 0, ncores = 1, # consider using multiple cores seed = 42 ) print(pb) summary(pb) confint(pb) vcov(pb) coef(pb) print(pb, type = "bc") # bias-corrected summary(pb, type = "bc") confint(pb, type = "bc")
# prepare parameters ## number of individuals n <- 5 ## time points time <- 50 delta_t <- 0.10 ## dynamic structure p <- 2 mu0 <- c(-3.0, 1.5) sigma0 <- 0.001 * diag(p) sigma0_l <- t(chol(sigma0)) iota <- c(0.317, 0.230) phi <- matrix( data = c( -0.10, 0.05, 0.05, -0.10 ), nrow = p ) sigma <- matrix( data = c( 2.79, 0.06, 0.06, 3.27 ), nrow = p ) sigma_l <- t(chol(sigma)) ## measurement model k <- 2 nu <- rep(x = 0, times = k) lambda <- diag(k) theta <- 0.001 * diag(k) theta_l <- t(chol(theta)) path <- tempdir() pb <- PBSSMLinSDEFixed( R = 10L, # use at least 1000 in actual research path = path, prefix = "lse", n = n, time = time, delta_t = delta_t, mu0 = mu0, sigma0_l = sigma0_l, iota = iota, phi = phi, sigma_l = sigma_l, nu = nu, lambda = lambda, theta_l = theta_l, type = 0, ncores = 1, # consider using multiple cores seed = 42 ) print(pb) summary(pb) confint(pb) vcov(pb) coef(pb) print(pb, type = "bc") # bias-corrected summary(pb, type = "bc") confint(pb, type = "bc")
This function simulates data from
a Ornstein–Uhlenbeck (OU) model
using a state-space model parameterization
and fits the model using the dynr
package.
The process is repeated R
times.
It assumes that the parameters remain constant
across individuals and over time.
At the moment, the function only supports
type = 0
.
PBSSMOUFixed( R, path, prefix, n, time, delta_t = 0.1, mu0, sigma0_l, mu, phi, sigma_l, nu, lambda, theta_l, type = 0, x = NULL, gamma = NULL, kappa = NULL, mu0_fixed = FALSE, sigma0_fixed = FALSE, alpha_level = 0.05, optimization_flag = TRUE, hessian_flag = FALSE, verbose = FALSE, weight_flag = FALSE, debug_flag = FALSE, perturb_flag = FALSE, xtol_rel = 1e-07, stopval = -9999, ftol_rel = -1, ftol_abs = -1, maxeval = as.integer(-1), maxtime = -1, ncores = NULL, seed = NULL )
PBSSMOUFixed( R, path, prefix, n, time, delta_t = 0.1, mu0, sigma0_l, mu, phi, sigma_l, nu, lambda, theta_l, type = 0, x = NULL, gamma = NULL, kappa = NULL, mu0_fixed = FALSE, sigma0_fixed = FALSE, alpha_level = 0.05, optimization_flag = TRUE, hessian_flag = FALSE, verbose = FALSE, weight_flag = FALSE, debug_flag = FALSE, perturb_flag = FALSE, xtol_rel = 1e-07, stopval = -9999, ftol_rel = -1, ftol_abs = -1, maxeval = as.integer(-1), maxtime = -1, ncores = NULL, seed = NULL )
R |
Positive integer. Number of bootstrap samples. |
path |
Path to a directory to store bootstrap samples and estimates. |
prefix |
Character string. Prefix used for the file names for the bootstrap samples and estimates. |
n |
Positive integer. Number of individuals. |
time |
Positive integer. Number of time points. |
delta_t |
Numeric.
Time interval
( |
mu0 |
Numeric vector.
Mean of initial latent variable values
( |
sigma0_l |
Numeric matrix.
Cholesky factorization ( |
mu |
Numeric vector.
The long-term mean or equilibrium level
( |
phi |
Numeric matrix.
The drift matrix
which represents the rate of change of the solution
in the absence of any random fluctuations
( |
sigma_l |
Numeric matrix.
Cholesky factorization ( |
nu |
Numeric vector.
Vector of intercept values for the measurement model
( |
lambda |
Numeric matrix.
Factor loading matrix linking the latent variables
to the observed variables
( |
theta_l |
Numeric matrix.
Cholesky factorization ( |
type |
Integer. State space model type. See Details for more information. |
x |
List.
Each element of the list is a matrix of covariates
for each individual |
gamma |
Numeric matrix.
Matrix linking the covariates to the latent variables
at current time point
( |
kappa |
Numeric matrix.
Matrix linking the covariates to the observed variables
at current time point
( |
mu0_fixed |
Logical.
If |
sigma0_fixed |
Logical.
If |
alpha_level |
Numeric vector.
Significance level |
optimization_flag |
a flag (TRUE/FALSE) indicating whether optimization is to be done. |
hessian_flag |
a flag (TRUE/FALSE) indicating whether the Hessian matrix is to be calculated. |
verbose |
a flag (TRUE/FALSE) indicating whether more detailed intermediate output during the estimation process should be printed |
weight_flag |
a flag (TRUE/FALSE) indicating whether the negative log likelihood function should be weighted by the length of the time series for each individual |
debug_flag |
a flag (TRUE/FALSE) indicating whether users want additional dynr output that can be used for diagnostic purposes |
perturb_flag |
a flag (TRUE/FLASE) indicating whether to perturb the latent states during estimation. Only useful for ensemble forecasting. |
xtol_rel |
Stopping criteria option
for parameter optimization.
See |
stopval |
Stopping criteria option
for parameter optimization.
See |
ftol_rel |
Stopping criteria option
for parameter optimization.
See |
ftol_abs |
Stopping criteria option
for parameter optimization.
See |
maxeval |
Stopping criteria option
for parameter optimization.
See |
maxtime |
Stopping criteria option
for parameter optimization.
See |
ncores |
Positive integer.
Number of cores to use.
If |
seed |
Random seed. |
The measurement model is given by
where
,
,
and
are random variables
and
,
,
and
are model parameters.
represents a vector of observed random variables,
a vector of latent random variables,
and
a vector of random measurement errors,
at time
and individual
.
denotes a vector of intercepts,
a matrix of factor loadings,
and
the covariance matrix of
.
An alternative representation of the measurement error is given by
where
is a vector of
independent standard normal random variables and
The dynamic structure is given by
where
is the long-term mean or equilibrium level,
is the rate of mean reversion,
determining how quickly the variable returns to its mean,
is the matrix of volatility
or randomness in the process, and
is a Wiener process or Brownian motion,
which represents random fluctuations.
The measurement model is given by
The dynamic structure is given by
where
represents a vector of covariates
at time
and individual
,
and
the coefficient matrix
linking the covariates to the latent variables.
The measurement model is given by
where
represents the coefficient matrix
linking the covariates to the observed variables.
The dynamic structure is given by
The OU model is a first-order linear stochastic differential equation model in the form of
where
and, equivalently
.
Returns an object
of class bootstatespace
which is a list with the following elements:
Function call.
Function arguments.
Sampling distribution of
.
Sampling variance-covariance matrix of
.
Vector of estimated
.
Function used ("PBSSMOUFixed").
Bootstrap method used ("parametric").
Ivan Jacob Agaloos Pesigan
Chow, S.-M., Ho, M. R., Hamaker, E. L., & Dolan, C. V. (2010). Equivalence and differences between structural equation modeling and state-space modeling techniques. Structural Equation Modeling: A Multidisciplinary Journal, 17(2), 303–332. doi:10.1080/10705511003661553
Other Bootstrap for State Space Models Functions:
PBSSMFixed()
,
PBSSMLinSDEFixed()
,
PBSSMVARFixed()
# prepare parameters ## number of individuals n <- 5 ## time points time <- 50 delta_t <- 0.10 ## dynamic structure p <- 2 mu0 <- c(-3.0, 1.5) sigma0 <- 0.001 * diag(p) sigma0_l <- t(chol(sigma0)) mu <- c(5.76, 5.18) phi <- matrix( data = c( -0.10, 0.05, 0.05, -0.10 ), nrow = p ) sigma <- matrix( data = c( 2.79, 0.06, 0.06, 3.27 ), nrow = p ) sigma_l <- t(chol(sigma)) ## measurement model k <- 2 nu <- rep(x = 0, times = k) lambda <- diag(k) theta <- 0.001 * diag(k) theta_l <- t(chol(theta)) path <- tempdir() pb <- PBSSMOUFixed( R = 10L, # use at least 1000 in actual research path = path, prefix = "ou", n = n, time = time, delta_t = delta_t, mu0 = mu0, sigma0_l = sigma0_l, mu = mu, phi = phi, sigma_l = sigma_l, nu = nu, lambda = lambda, theta_l = theta_l, type = 0, ncores = 1, # consider using multiple cores seed = 42 ) print(pb) summary(pb) confint(pb) vcov(pb) coef(pb) print(pb, type = "bc") # bias-corrected summary(pb, type = "bc") confint(pb, type = "bc")
# prepare parameters ## number of individuals n <- 5 ## time points time <- 50 delta_t <- 0.10 ## dynamic structure p <- 2 mu0 <- c(-3.0, 1.5) sigma0 <- 0.001 * diag(p) sigma0_l <- t(chol(sigma0)) mu <- c(5.76, 5.18) phi <- matrix( data = c( -0.10, 0.05, 0.05, -0.10 ), nrow = p ) sigma <- matrix( data = c( 2.79, 0.06, 0.06, 3.27 ), nrow = p ) sigma_l <- t(chol(sigma)) ## measurement model k <- 2 nu <- rep(x = 0, times = k) lambda <- diag(k) theta <- 0.001 * diag(k) theta_l <- t(chol(theta)) path <- tempdir() pb <- PBSSMOUFixed( R = 10L, # use at least 1000 in actual research path = path, prefix = "ou", n = n, time = time, delta_t = delta_t, mu0 = mu0, sigma0_l = sigma0_l, mu = mu, phi = phi, sigma_l = sigma_l, nu = nu, lambda = lambda, theta_l = theta_l, type = 0, ncores = 1, # consider using multiple cores seed = 42 ) print(pb) summary(pb) confint(pb) vcov(pb) coef(pb) print(pb, type = "bc") # bias-corrected summary(pb, type = "bc") confint(pb, type = "bc")
This function simulates data from
a vector autoregressive model
using a state-space model parameterization
and fits the model using the dynr
package.
The process is repeated R
times.
It assumes that the parameters remain constant
across individuals and over time.
At the moment, the function only supports
type = 0
.
PBSSMVARFixed( R, path, prefix, n, time, mu0, sigma0_l, alpha, beta, psi_l, type = 0, x = NULL, gamma = NULL, mu0_fixed = FALSE, sigma0_fixed = FALSE, alpha_level = 0.05, optimization_flag = TRUE, hessian_flag = FALSE, verbose = FALSE, weight_flag = FALSE, debug_flag = FALSE, perturb_flag = FALSE, xtol_rel = 1e-07, stopval = -9999, ftol_rel = -1, ftol_abs = -1, maxeval = as.integer(-1), maxtime = -1, ncores = NULL, seed = NULL )
PBSSMVARFixed( R, path, prefix, n, time, mu0, sigma0_l, alpha, beta, psi_l, type = 0, x = NULL, gamma = NULL, mu0_fixed = FALSE, sigma0_fixed = FALSE, alpha_level = 0.05, optimization_flag = TRUE, hessian_flag = FALSE, verbose = FALSE, weight_flag = FALSE, debug_flag = FALSE, perturb_flag = FALSE, xtol_rel = 1e-07, stopval = -9999, ftol_rel = -1, ftol_abs = -1, maxeval = as.integer(-1), maxtime = -1, ncores = NULL, seed = NULL )
R |
Positive integer. Number of bootstrap samples. |
path |
Path to a directory to store bootstrap samples and estimates. |
prefix |
Character string. Prefix used for the file names for the bootstrap samples and estimates. |
n |
Positive integer. Number of individuals. |
time |
Positive integer. Number of time points. |
mu0 |
Numeric vector.
Mean of initial latent variable values
( |
sigma0_l |
Numeric matrix.
Cholesky factorization ( |
alpha |
Numeric vector.
Vector of constant values for the dynamic model
( |
beta |
Numeric matrix.
Transition matrix relating the values of the latent variables
at the previous to the current time point
( |
psi_l |
Numeric matrix.
Cholesky factorization ( |
type |
Integer. State space model type. See Details for more information. |
x |
List.
Each element of the list is a matrix of covariates
for each individual |
gamma |
Numeric matrix.
Matrix linking the covariates to the latent variables
at current time point
( |
mu0_fixed |
Logical.
If |
sigma0_fixed |
Logical.
If |
alpha_level |
Numeric vector.
Significance level |
optimization_flag |
a flag (TRUE/FALSE) indicating whether optimization is to be done. |
hessian_flag |
a flag (TRUE/FALSE) indicating whether the Hessian matrix is to be calculated. |
verbose |
a flag (TRUE/FALSE) indicating whether more detailed intermediate output during the estimation process should be printed |
weight_flag |
a flag (TRUE/FALSE) indicating whether the negative log likelihood function should be weighted by the length of the time series for each individual |
debug_flag |
a flag (TRUE/FALSE) indicating whether users want additional dynr output that can be used for diagnostic purposes |
perturb_flag |
a flag (TRUE/FLASE) indicating whether to perturb the latent states during estimation. Only useful for ensemble forecasting. |
xtol_rel |
Stopping criteria option
for parameter optimization.
See |
stopval |
Stopping criteria option
for parameter optimization.
See |
ftol_rel |
Stopping criteria option
for parameter optimization.
See |
ftol_abs |
Stopping criteria option
for parameter optimization.
See |
maxeval |
Stopping criteria option
for parameter optimization.
See |
maxtime |
Stopping criteria option
for parameter optimization.
See |
ncores |
Positive integer.
Number of cores to use.
If |
seed |
Random seed. |
The measurement model is given by
where
represents a vector of observed variables
and
a vector of latent variables
for individual
and time
.
Since the observed and latent variables are equal,
we only generate data
from the dynamic structure.
The dynamic structure is given by
where
,
,
and
are random variables,
and
,
,
and
are model parameters.
Here,
is a vector of latent variables
at time
and individual
,
represents a vector of latent variables
at time
and individual
,
and
represents a vector of dynamic noise
at time
and individual
.
denotes a vector of intercepts,
a matrix of autoregression
and cross regression coefficients,
and
the covariance matrix of
.
An alternative representation of the dynamic noise is given by
where
The measurement model is given by
The dynamic structure is given by
where
represents a vector of covariates
at time
and individual
,
and
the coefficient matrix
linking the covariates to the latent variables.
Returns an object
of class bootstatespace
which is a list with the following elements:
Function call.
Function arguments.
Sampling distribution of
.
Sampling variance-covariance matrix of
.
Vector of estimated
.
Function used ("PBSSMVARFixed").
Bootstrap method used ("parametric").
Ivan Jacob Agaloos Pesigan
Chow, S.-M., Ho, M. R., Hamaker, E. L., & Dolan, C. V. (2010). Equivalence and differences between structural equation modeling and state-space modeling techniques. Structural Equation Modeling: A Multidisciplinary Journal, 17(2), 303–332. doi:10.1080/10705511003661553
Other Bootstrap for State Space Models Functions:
PBSSMFixed()
,
PBSSMLinSDEFixed()
,
PBSSMOUFixed()
# prepare parameters ## number of individuals n <- 5 ## time points time <- 50 ## dynamic structure p <- 3 mu0 <- rep(x = 0, times = p) sigma0 <- 0.001 * diag(p) sigma0_l <- t(chol(sigma0)) alpha <- rep(x = 0, times = p) beta <- 0.50 * diag(p) psi <- 0.001 * diag(p) psi_l <- t(chol(psi)) path <- tempdir() pb <- PBSSMVARFixed( R = 10L, # use at least 1000 in actual research path = path, prefix = "var", n = n, time = time, mu0 = mu0, sigma0_l = sigma0_l, alpha = alpha, beta = beta, psi_l = psi_l, type = 0, ncores = 1, # consider using multiple cores seed = 42 ) print(pb) summary(pb) confint(pb) vcov(pb) coef(pb) print(pb, type = "bc") # bias-corrected summary(pb, type = "bc") confint(pb, type = "bc")
# prepare parameters ## number of individuals n <- 5 ## time points time <- 50 ## dynamic structure p <- 3 mu0 <- rep(x = 0, times = p) sigma0 <- 0.001 * diag(p) sigma0_l <- t(chol(sigma0)) alpha <- rep(x = 0, times = p) beta <- 0.50 * diag(p) psi <- 0.001 * diag(p) psi_l <- t(chol(psi)) path <- tempdir() pb <- PBSSMVARFixed( R = 10L, # use at least 1000 in actual research path = path, prefix = "var", n = n, time = time, mu0 = mu0, sigma0_l = sigma0_l, alpha = alpha, beta = beta, psi_l = psi_l, type = 0, ncores = 1, # consider using multiple cores seed = 42 ) print(pb) summary(pb) confint(pb) vcov(pb) coef(pb) print(pb, type = "bc") # bias-corrected summary(pb, type = "bc") confint(pb, type = "bc")
bootstatespace
Print Method for an Object of Class
bootstatespace
## S3 method for class 'bootstatespace' print(x, alpha = NULL, type = "pc", digits = 4, ...)
## S3 method for class 'bootstatespace' print(x, alpha = NULL, type = "pc", digits = 4, ...)
x |
Object of Class |
alpha |
Numeric vector.
Significance level |
type |
Charater string.
Confidence interval type, that is,
|
digits |
Digits to print. |
... |
additional arguments. |
Prints a matrix of estimates, standard errors, number of bootstrap replications, and confidence intervals.
Ivan Jacob Agaloos Pesigan
bootstatespace
Summary Method for an Object of Class
bootstatespace
## S3 method for class 'bootstatespace' summary(object, alpha = NULL, type = "pc", digits = 4, ...)
## S3 method for class 'bootstatespace' summary(object, alpha = NULL, type = "pc", digits = 4, ...)
object |
Object of Class |
alpha |
Numeric vector.
Significance level |
type |
Charater string.
Confidence interval type, that is,
|
digits |
Digits to print. |
... |
additional arguments. |
Returns a matrix of estimates, standard errors, number of bootstrap replications, and confidence intervals.
Ivan Jacob Agaloos Pesigan
bootstatespace
Sampling Variance-Covariance Matrix Method for an Object of Class
bootstatespace
## S3 method for class 'bootstatespace' vcov(object, ...)
## S3 method for class 'bootstatespace' vcov(object, ...)
object |
Object of Class |
... |
additional arguments. |
Returns the variance-covariance matrix of estimates.
Ivan Jacob Agaloos Pesigan