msm (version 1.7.1)

ppass.msm: Passage probabilities

Description

Probabilities of having visited each state by a particular time in a continuous time Markov model.

Usage

ppass.msm(
  x = NULL,
  qmatrix = NULL,
  tot,
  start = "all",
  covariates = "mean",
  piecewise.times = NULL,
  piecewise.covariates = NULL,
  ci = c("none", "normal", "bootstrap"),
  cl = 0.95,
  B = 1000,
  cores = NULL,
  ...
)

Value

A matrix whose \(r, s\) entry is the probability of having visited state \(s\) at least once before time \(t\), given the state at time \(0\) is \(r\). The diagonal entries should all be 1.

Arguments

x

A fitted multi-state model, as returned by msm.

qmatrix

Instead of x, you can simply supply a transition intensity matrix in qmatrix.

tot

Finite time to forecast the passage probabilites for.

start

Starting state (integer). By default (start="all"), this will return a matrix one row for each starting state.

Alternatively, this can be used to obtain passage probabilities from a set of states, rather than single states. To achieve this, state is set to a vector of weights, with length equal to the number of states in the model. These weights should be proportional to the probability of starting in each of the states in the desired set, so that weights of zero are supplied for other states. The function will calculate the weighted average of the passage probabilities from each of the corresponding states.

covariates

Covariate values defining the intensity matrix for the fitted model x, as supplied to qmatrix.msm.

piecewise.times

Currently ignored: not implemented for time-inhomogeneous models.

piecewise.covariates

Currently ignored: not implemented for time-inhomogeneous models.

ci

If "normal", then calculate a confidence interval by simulating B random vectors from the asymptotic multivariate normal distribution implied by the maximum likelihood estimates (and covariance matrix) of the log transition intensities and covariate effects.

If "bootstrap" then calculate a confidence interval by non-parametric bootstrap refitting. This is 1-2 orders of magnitude slower than the "normal" method, but is expected to be more accurate. See boot.msm for more details of bootstrapping in msm.

If "none" (the default) then no confidence interval is calculated.

cl

Width of the symmetric confidence interval, relative to 1.

B

Number of bootstrap replicates.

cores

Number of cores to use for bootstrapping using parallel processing. See boot.msm for more details.

...

Arguments to pass to MatrixExp.

Details

The passage probabilities to state \(s\) are computed by setting the \(s\)th row of the transition intensity matrix \(Q\) to zero, giving an intensity matrix \(Q*\) for a simplified model structure where state \(s\) is absorbing. The probabilities of passage are then equivalent to row \(s\) of the transition probability matrix \(Exp(tQ*)\) under this simplified model for \(t=\)tot.

Note this is different from the probability of occupying each state at exactly time \(t\), given by pmatrix.msm. The passage probability allows for the possibility of having visited the state before \(t\), but then occupying a different state at \(t\).

The mean of the passage distribution is the expected first passage time, efpt.msm.

This function currently only handles time-homogeneous Markov models. For time-inhomogeneous models the covariates are held constant at the value supplied, by default the column means of the design matrix over all observations.

References

Norris, J. R. (1997) Markov Chains. Cambridge University Press.

See Also

efpt.msm, totlos.msm, boot.msm.

Examples

Run this code

Q <- rbind(c(-0.5, 0.25, 0, 0.25), c(0.166, -0.498, 0.166, 0.166),
           c(0, 0.25, -0.5, 0.25), c(0, 0, 0, 0))

## ppass[1,2](t) converges to 0.5 with t, since given in state 1, the
## probability of going to the absorbing state 4 before visiting state
## 2 is 0.5, and the chance of still being in state 1 at t decreases.

ppass.msm(qmatrix=Q, tot=2)
ppass.msm(qmatrix=Q, tot=20)
ppass.msm(qmatrix=Q, tot=100)

Q <- Q[1:3,1:3]; diag(Q) <- 0; diag(Q) <- -rowSums(Q)

## Probability of about 1/2 of visiting state 3 by time 10.5, the
## median first passage time

ppass.msm(qmatrix=Q, tot=10.5)

## Mean first passage time from state 2 to state 3 is 10.02: similar
## to the median

efpt.msm(qmatrix=Q, tostate=3)

Run the code above in your browser using DataLab