我有一系列状态和相应的月份。
mcdata <- structure(list(state = structure(c(2L, 1L, 2L, 2L, 2L, 2L, 4L,
4L, 2L, 4L, 2L, 3L, 1L, 3L, 2L, 2L, 2L, 4L, 2L, 3L, 4L, 2L, 3L,
3L, 3L, 3L, 3L, 1L, 4L, 2L, 3L, 2L, 2L, 4L, 3L, 2L, 4L, 3L, 2L,
2L, 3L), .Label = c("1", "2", "3", "4"), class = "factor"), month = c(1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41)), .Names = c("state", "month"), class = "data.frame",
row.names = c(NA,-41L))
转换发生在精确和离散的时间。该过程可以在任何(离散)时间移动到任何状态。我的假设是转移概率与时间无关。
我感兴趣的是使用msm-package获得上述情况的一步转换概率,这是为连续时间设计的,但有一些我想在以后使用的有吸引力的功能。
允许所有过渡:
transitions_allowed <- matrix(c(
1,1,1,1,
1,1,1,1,
1,1,1,1,
1,1,1,1), nrow=4, ncol=4,
byrow=TRUE,
dimnames=list(from=1:4,to=1:4))
以准确的时间获得原始初始值和转换概率:
library(msm)
crudein <-crudeinits.msm(state ~ month, data=mcdata, qmatrix=transitions_allowed)
mod <- msm(state ~ month, data = mcdata, qmatrix = crudein, exacttimes=TRUE)
pmatrix.msm(mod,t=1)
我认为导致的pmatrix.msm转换概率对于我的情况是不正确的(例如,在序列状态&#34; 1&#34;不是紧跟状态&#34; 1&#34;):离散的确切时间和转移概率时间同质。
我已经定义了exacttimes = TRUE,并且可以看到该公式仍然包含month作为解释变量。替换状态〜月份&#39;与&#39;州〜。&#34;没有帮助。
初始值也可能有问题。将它们更改为使用&#39; markovchain&#39;计算的转换概率。没有改变这种情况。
我可以用msm-package解决这个问题吗?谢谢。
答案 0 :(得分:1)
在msm中,您必须假设数据存在一些连续时间马尔可夫过程,因此所有模型都必须通过过渡强度矩阵进行参数化,即使您只对转换概率感兴趣。我不认为有任何连续时间马尔可夫模型,其中在一个时间单位中保持相同状态的概率为零,因为每个州的停留时间具有指数分布。