我在mstate程序包的贡献函数transMat()中遇到了一个错误。我正在处理四个状态的问题:
所以可能的过渡是:
从状态1:到状态2或状态4。(您不能失去
除非您实现了胰岛素独立性,否则
2.从状态2:到状态3或4.
3.从状态3:仅到状态4。
4.状态4是“吸收状态”。没有进一步的可能过渡(同样,在我的分析范围内)。
可以如下编程:
tmat4a <- matrix(NA, 4,4) tmat4a[1, c(2, 4)] <- c(1, 3) tmat4a[2, c(3, 4)] <- c(3, 4) tmat4a[3, 4] <- 4 dimnames(tmat4a) <- list(from = c('Tx', 'II', 'failII', 'fail'), to = c('Tx', 'II', 'failII', 'fail')) > tmat4a to from Tx II failII fail Tx NA 1 NA 3 II NA NA 3 4 failII NA NA NA 4 fail NA NA NA NA
下面的代码应该给出相同的答案:
tmat4 <- transMat(x = list(c(2, 4), c(3, 4), c(4), c()),
names = c('Tx', 'II', 'failII', 'fail'))
不幸的是,它给出了错误的矩阵:
> tmat4
to
from Tx II failII fail
Tx NA 1 NA 2
II NA NA 3 4
failII NA NA NA 5
fail NA NA NA NA
请注意5,而不是[3,4]中的4。可能的过渡并不总是顺序的。有时,两个先前的级别可以转换为相同的后续状态。 拉里·汉斯克