Calculates crude initial values for transition intensities by assuming that the data represent the exact transition times of the Markov process.
Arguments
- formula
A formula giving the vectors containing the observed states and the corresponding observation times. For example,
state ~ time
Observed states should be in the set
1, ...{}, n
, wheren
is the number of states. Note hidden Markov models are not supported by this function.- subject
Vector of subject identification numbers for the data specified by
formula
. If missing, then all observations are assumed to be on the same subject. These must be sorted so that all observations on the same subject are adjacent.- qmatrix
Matrix of indicators for the allowed transitions. An initial value will be estimated for each value of qmatrix that is greater than zero. Transitions are taken as disallowed for each entry of
qmatrix
that is 0.- data
An optional data frame in which the variables represented by
subject
andstate
can be found.- censor
A state, or vector of states, which indicates censoring. See
msm
.- censor.states
Specifies the underlying states which censored observations can represent. See
msm
.
Value
The estimated transition intensity matrix. This can be used as the
qmatrix
argument to msm
.
Details
Suppose we want a crude estimate of the transition intensity \(q_{rs}\) from state \(r\) to state \(s\). If we observe \(n_{rs}\) transitions from state \(r\) to state \(s\), and a total of \(n_r\) transitions from state \(r\), then \(q_{rs} / \)\( q_{rr}\) can be estimated by \(n_{rs} / n_r\). Then, given a total of \(T_r\) years spent in state \(r\), the mean sojourn time \(1 / q_{rr}\) can be estimated as \(T_r / n_r\). Thus, \(n_{rs} / T_r\) is a crude estimate of \(q_{rs}\).
If the data do represent the exact transition times of the Markov process, then these are the exact maximum likelihood estimates.
Observed transitions which are incompatible with the given qmatrix
are ignored. Censored states are ignored.
Author
C. H. Jackson chris.jackson@mrc-bsu.cam.ac.uk
Examples
data(cav)
#> Warning: data set 'cav' not found
twoway4.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))
statetable.msm(state, PTNUM, data=cav)
#> to
#> from 1 2 3 4
#> 1 1367 204 44 148
#> 2 46 134 54 48
#> 3 4 13 107 55
crudeinits.msm(state ~ years, PTNUM, data=cav, qmatrix=twoway4.q)
#> [,1] [,2] [,3] [,4]
#> [1,] -0.1173149 0.06798932 0.0000000 0.04932559
#> [2,] 0.1168179 -0.37584883 0.1371340 0.12189692
#> [3,] 0.0000000 0.04908401 -0.2567471 0.20766310
#> [4,] 0.0000000 0.00000000 0.0000000 0.00000000