Skip to contents

The function returns the model-implied state covariance matrix for a particular time interval \(\Delta t\) given by $$ \mathrm{vec} \left( \mathrm{Cov} \left( \boldsymbol{\eta} \right) \right) = \left( \mathbf{J} - \boldsymbol{\beta}_{\Delta t} \otimes \boldsymbol{\beta}_{\Delta t} \right)^{-1} \mathrm{vec} \left( \boldsymbol{\Psi}_{\Delta t} \right) $$ where $$ \boldsymbol{\beta}_{\Delta t} = \exp \left( \Delta t \boldsymbol{\Phi} \right) , $$ $$ \boldsymbol{\Psi}_{\Delta t} = \boldsymbol{\Phi}^{\#} \left( \exp \left( \Delta t \boldsymbol{\Phi} \right) - \mathbf{J} \right) \mathrm{vec} \left( \boldsymbol{\Sigma} \right) , \quad \mathrm{and} $$ $$ \boldsymbol{\Phi}^{\#} = \left( \boldsymbol{\Phi} \otimes \mathbf{I} \right) + \left( \mathbf{I} \otimes \boldsymbol{\Phi} \right). $$ Note that \(\mathbf{I}\) and \(\mathbf{J}\) are identity matrices.

Usage

ExpCov(phi, sigma, delta_t)

Arguments

phi

Numeric matrix. The drift matrix (\(\boldsymbol{\Phi}\)). phi should have row and column names pertaining to the variables in the system.

sigma

Numeric matrix. The process noise covariance matrix (\(\boldsymbol{\Sigma}\)).

delta_t

Numeric. Time interval (\(\Delta t\)).

Value

Returns a numeric matrix.

Details

Linear Stochastic Differential Equation Model

The measurement model is given by $$ \mathbf{y}_{i, t} = \boldsymbol{\nu} + \boldsymbol{\Lambda} \boldsymbol{\eta}_{i, t} + \boldsymbol{\varepsilon}_{i, t}, \quad \mathrm{with} \quad \boldsymbol{\varepsilon}_{i, t} \sim \mathcal{N} \left( \mathbf{0}, \boldsymbol{\Theta} \right) $$ where \(\mathbf{y}_{i, t}\), \(\boldsymbol{\eta}_{i, t}\), and \(\boldsymbol{\varepsilon}_{i, t}\) are random variables and \(\boldsymbol{\nu}\), \(\boldsymbol{\Lambda}\), and \(\boldsymbol{\Theta}\) are model parameters. \(\mathbf{y}_{i, t}\) represents a vector of observed random variables, \(\boldsymbol{\eta}_{i, t}\) a vector of latent random variables, and \(\boldsymbol{\varepsilon}_{i, t}\) a vector of random measurement errors, at time \(t\) and individual \(i\). \(\boldsymbol{\nu}\) denotes a vector of intercepts, \(\boldsymbol{\Lambda}\) a matrix of factor loadings, and \(\boldsymbol{\Theta}\) the covariance matrix of \(\boldsymbol{\varepsilon}\).

An alternative representation of the measurement error is given by $$ \boldsymbol{\varepsilon}_{i, t} = \boldsymbol{\Theta}^{\frac{1}{2}} \mathbf{z}_{i, t}, \quad \mathrm{with} \quad \mathbf{z}_{i, t} \sim \mathcal{N} \left( \mathbf{0}, \mathbf{I} \right) $$ where \(\mathbf{z}_{i, t}\) is a vector of independent standard normal random variables and \( \left( \boldsymbol{\Theta}^{\frac{1}{2}} \right) \left( \boldsymbol{\Theta}^{\frac{1}{2}} \right)^{\prime} = \boldsymbol{\Theta} . \)

The dynamic structure is given by $$ \mathrm{d} \boldsymbol{\eta}_{i, t} = \left( \boldsymbol{\iota} + \boldsymbol{\Phi} \boldsymbol{\eta}_{i, t} \right) \mathrm{d}t + \boldsymbol{\Sigma}^{\frac{1}{2}} \mathrm{d} \mathbf{W}_{i, t} $$ where \(\boldsymbol{\iota}\) is a term which is unobserved and constant over time, \(\boldsymbol{\Phi}\) is the drift matrix which represents the rate of change of the solution in the absence of any random fluctuations, \(\boldsymbol{\Sigma}\) is the matrix of volatility or randomness in the process, and \(\mathrm{d}\boldsymbol{W}\) is a Wiener process or Brownian motion, which represents random fluctuations.

Author

Ivan Jacob Agaloos Pesigan

Examples

phi <- matrix(
  data = c(
    -0.357, 0.771, -0.450,
    0.0, -0.511, 0.729,
    0, 0, -0.693
  ),
  nrow = 3
)
colnames(phi) <- rownames(phi) <- c("x", "m", "y")
sigma <- matrix(
  data = c(
    0.24, 0.02, -0.05,
    0.02, 0.07, 0.02,
    -0.05, 0.02, 0.08
  ),
  nrow = 3
)
delta_t <- 1
ExpCov(
  phi = phi,
  sigma = sigma,
  delta_t = delta_t
)
#>           x         m         y
#> x 0.3361345 0.3216125 0.0316143
#> m 0.3216125 0.5537441 0.2519339
#> y 0.0316143 0.2519339 0.3022127