Calculates the exponential of a square matrix.
Arguments
- mat
A square matrix
- t
An optional scaling factor for
mat
. If a vector is supplied, then an array of matrices is returned with different scaling factors.- method
Under the default of
NULL
, this simply wraps theexpm
function from the expm package. This is recommended. Options toexpm
can be supplied toMatrixExp
, includingmethod
.Otherwise, for backwards compatibility, the following options, which use code in the msm package, are available:
"pade"
for a Pade approximation method,"series"
for the power series approximation, or"analytic"
for the analytic formulae for simpler Markov model intensity matrices (see below). These options are only used ifmat
has repeated eigenvalues, thus the usual eigen-decomposition method cannot be used.- ...
Arguments to pass to
expm
.
Value
The exponentiated matrix \(\exp(mat)\). Or, if t
is a vector of length 2 or more, an array of exponentiated matrices.
Details
See the expm
documentation for details of the algorithms
it uses.
Generally the exponential \(E\) of a square matrix \(M\) can often be calculated as
$$E = U \exp(D) U^{-1}$$
where \(D\) is a diagonal matrix with the eigenvalues of \(M\) on the diagonal, \(\exp(D)\) is a diagonal matrix with the exponentiated eigenvalues of \(M\) on the diagonal, and \(U\) is a matrix whose columns are the eigenvectors of \(M\).
This method of calculation is used if "pade"
or "series"
is
supplied but \(M\) has distinct eigenvalues. I If \(M\) has repeated
eigenvalues, then its eigenvector matrix may be non-invertible. In this
case, the matrix exponential is calculated using the Pade approximation
defined by Moler and van Loan (2003), or the less robust power series
approximation,
$$\exp(M) = I + M + M^2/2 + M^3 / 3! + M^4 / 4! + ...$$
For a continuous-time homogeneous Markov process with transition intensity matrix \(Q\), the probability of occupying state \(s\) at time \(u + t\) conditional on occupying state \(r\) at time \(u\) is given by the \((r,s)\) entry of the matrix \(\exp(tQ)\).
If mat
is a valid transition intensity matrix for a continuous-time
Markov model (i.e. diagonal entries non-positive, off-diagonal entries
non-negative, rows sum to zero), then for certain simpler model structures,
there are analytic formulae for the individual entries of the exponential of
mat
. These structures are listed in the PDF manual and the formulae
are coded in the msm source file src/analyticp.c
. These
formulae are only used if method="analytic"
. This is more efficient,
but it is not the default in MatrixExp
because the code is not robust
to extreme values. However it is the default when calculating likelihoods
for models fitted by msm
.
The implementation of the Pade approximation used by method="pade"
was taken from JAGS by Martyn Plummer
(https://mcmc-jags.sourceforge.io).