Calculates crude initial values for transition intensities by assuming that the data represent the exact transition times of the Markov process.
crudeinits.msm(
formula,
subject,
qmatrix,
data = NULL,
censor = NULL,
censor.states = NULL
)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, where n is
the number of states. Note hidden Markov models are not supported by this
function.
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.
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.
An optional data frame in which the variables represented by
subject and state can be found.
A state, or vector of states, which indicates censoring. See
msm.
Specifies the underlying states which censored
observations can represent. See msm.
The estimated transition intensity matrix. This can be used as the
qmatrix argument to msm.
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.
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