Interval Covariance Matrix in the Linear Stochastic Differential Equation Model
Source:R/simStateSpace-lin-sde-cov-delta-t.R
LinSDECovDeltaT.RdThe covariance matrix of the process noise accumulated over a sampling interval \(\Delta t\) in the linear stochastic differential equation model, i.e. $$ \boldsymbol{\Psi}_{\Delta t} = \int_{0}^{\Delta t} \exp \left( s \boldsymbol{\Phi} \right) \boldsymbol{\Sigma} \exp \left( s \boldsymbol{\Phi}^{\prime} \right) \mathrm{d} s , $$ where \(\boldsymbol{\Phi}\) is the drift matrix and \(\boldsymbol{\Sigma}\) is the covariance matrix of volatility or randomness in the process.
Arguments
- phi
Numeric \(q \times q\) matrix. The drift matrix which represents the rate of change of the solution in the absence of any random fluctuations (\(\boldsymbol{\Phi}\)).
- sigma
Numeric matrix. Symmetric matrix, usually the covariance matrix of volatility or randomness in the process (\(\boldsymbol{\Sigma}\)).
- delta_t
Positive finite numeric scalar. Sampling interval \(\Delta t\).
Details
The integral is computed with the block matrix exponential
of Van Loan (1978),
composed over subintervals
so that strongly decaying drifts do not overflow.
The drift may be singular
(for example, \(\boldsymbol{\Phi} = \mathbf{0}\)
gives \(\Delta t \boldsymbol{\Sigma}\)).
The map is linear in \(\boldsymbol{\Sigma}\),
so sigma may be any symmetric matrix,
not only a covariance matrix.
For a positive semidefinite sigma,
the result is the process noise covariance
psi_l %*% t(psi_l) returned by LinSDE2SSM().
References
Van Loan, C. F. (1978). Computing integrals involving the matrix exponential. IEEE Transactions on Automatic Control, 23(3), 395–404. doi:10.1109/TAC.1978.1101743
See also
Other Simulation of State Space Models Data Functions:
CompanionMat(),
ExpMat(),
LinSDECovEta(),
LinSDECovY(),
LinSDEInterceptEta(),
LinSDEInterceptY(),
LinSDEMeanEta(),
LinSDEMeanY(),
LogMat(),
ProjectToHurwitz(),
ProjectToStability(),
SSMCovEta(),
SSMCovY(),
SSMInterceptEta(),
SSMInterceptY(),
SSMMeanEta(),
SSMMeanY(),
SimAlphaN(),
SimBetaN(),
SimBetaN2(),
SimBetaNCovariate(),
SimCovDiagN(),
SimCovN(),
SimIotaN(),
SimMVN(),
SimMuN(),
SimNuN(),
SimPhiN(),
SimPhiN2(),
SimPhiNCovariate(),
SimSSMFixed(),
SimSSMIVary(),
SimSSMLinGrowth(),
SimSSMLinGrowthIVary(),
SimSSMLinSDEFixed(),
SimSSMLinSDEIVary(),
SimSSMOUFixed(),
SimSSMOUIVary(),
SimSSMVARFixed(),
SimSSMVARIVary(),
SpectralRadius(),
TestPhi(),
TestPhiHurwitz(),
TestStability(),
TestStationarity()
Examples
phi <- matrix(
data = c(
-0.357, 0.771, -0.450,
0.0, -0.511, 0.729,
0.0, 0.0, -0.693
),
nrow = 3
)
sigma <- matrix(
data = c(
0.24455556, 0.02201587, -0.05004762,
0.02201587, 0.07067800, 0.01539456,
-0.05004762, 0.01539456, 0.07553061
),
nrow = 3
)
LinSDECovDeltaT(
phi = phi,
sigma = sigma,
delta_t = 1.0
)
#> [,1] [,2] [,3]
#> [1,] 0.17479162 0.071389045 -0.045893045
#> [2,] 0.07138904 0.079226364 0.004766117
#> [3,] -0.04589305 0.004766117 0.058979885