#r #markov-chains
#r #цепи Маркова
Вопрос:
У меня есть последовательность состояний и соответствующие месяцы.
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-пакетом, который рассчитан на непрерывное время, но имеет несколько привлекательных функций, которые я хочу использовать позже.
Все переходы разрешены:
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 неверны для моей ситуации (например, в состоянии последовательности «1» не сразу следует состояние «1»): дискретное точное время и вероятности перехода, однородные по времени.
Я определил exacttimes=TRUE и вижу, что формула по-прежнему включает месяц в качестве объясняющей переменной. Замена «состояние ~ месяц» на «состояние ~». не помогает.
Начальные значения также могут быть проблематичными. Изменение их на вероятности перехода, вычисленные с помощью «цепочки маркова», не изменило ситуацию.
Могу ли я что-нибудь сделать, чтобы решить эту проблему с помощью msm-package? Спасибо.
Ответ №1:
В msm вы должны предположить, что в основе данных лежит некоторый непрерывный марковский процесс, поэтому все модели должны быть параметризованы матрицей интенсивности перехода, даже если вас интересуют только вероятности перехода. Я не думаю, что существует какая-либо модель Маркова с непрерывным временем, в которой существует нулевая вероятность остаться в том же состоянии в одну единицу времени позже, поскольку время пребывания в каждом состоянии имеет экспоненциальное распределение.
Комментарии:
1. Спасибо. Мне нужно использовать другие пакеты для случаев с дискретным временем.