r / msm-package /如何拟合并得到离散时间,时间同质的转移概率?

时间:2014-06-29 11:29:10

标签: r markov-chains

我有一系列状态和相应的月​​份。

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解决这个问题吗?谢谢。

1 个答案:

答案 0 :(得分:1)

在msm中,您必须假设数据存在一些连续时间马尔可夫过程,因此所有模型都必须通过过渡强度矩阵进行参数化,即使您只对转换概率感兴趣。我不认为有任何连续时间马尔可夫模型,其中在一个时间单位中保持相同状态的概率为零,因为每个州的停留时间具有指数分布。