Предположим, что представляет собой матрицу скоростей Пуассона, где для обозначает скорость, с которой состояние переходит в состояние , а дает скорость в каком состоянии перехожу во все другие состояния. Каждый ряд суммирует до 0.Bn×nBij≥0я ≠ jяJВя я≤ 0яВ
Тогда, если обозначает распределение вероятности в момент времени , по определению мы имеем ODE
Мы знаем, как выглядит решение этого вида ODE: , где является матрицей экспоненциальное из . Таким образом, если мы хотим , чтобы создать марковской матрицу перехода после , нам нужно иметь .р ( т )TВ
п˙( t ) = B p ( t )
p ( t ) =еБ тр ( 0 )еБ тБ тВAт = 1еВ= A
В принципе, чтобы получить , мы должны инвертировать матрицу экспоненты, принимая матрицу логарифм от . Проблема состоит в том, что каждая матрица имеет много матричных логарифмов - логарифм в одномерном комплексном пространстве имеет бесконечно много ветвей, и это усложняется, когда мы говорим о матрицах в мерном пространстве. Большинство из этих логарифмов не будут удовлетворительными матрицами перехода Пуассона: возможно, они не будут действительными или записи не будут иметь правильных знаков. Тем не менее, возможно, что их будет больше одного: в некоторых случаях более одного Пуассона соответствует марковскому , так же как в некоторых случаях нет ПуассонаВANВABсоответствующая . Это грязно.A
К счастью, есть ситуация, когда жизнь относительно проста, и она почти наверняка включает в себя ваш собственный случай: когда все собственные значения являются положительными, отличными действительными значениямиA . В этом случае существует только один логарифм который будет действительным, и его легко вычислить: вы просто диагонализируете матрицу как и берете действительный логарифм собственных значений, получая , где . В самом деле, вам не нужно делать это самостоятельно: если вы используете команду в Matlab (предположительно Python тоже), это даст вам именно это .AA=VΣV−1B=VΩV−1ωii=log(σii)logm(A)B
Учитывая это , все, что вам нужно сделать, это проверить, что это на самом деле матрица Пуассона. Первое требование, что все строки суммируются в ноль, выполняется автоматически благодаря конструкции ** Второе требование, что диагональные элементы отрицательны, а недиагональные элементы положительны, не всегда выполняется (я думаю, ), но это легко проверить.BB
Чтобы увидеть это в действии, я рассмотрю для марковского процесса с 3 состояниями, который напоминает дискретизированный AR (1).
Теперь, если я в Matlab, я get
Это действительно допустимая матрица перехода Пуассона, так как мы можем легко проверить, что строки суммируются до нуля и имеют правильные знаки - таков наш ответ.A
A=⎛⎝⎜0.50.20.10.40.60.40.10.20.5⎞⎠⎟
B=logm(A)B=⎛⎝⎜−0.860.400.060.80−0.800.800.060.40−0.86⎞⎠⎟
Случай с положительными собственными значениями довольно важен, поскольку он охватывает все случаи, когда в цепочке Маркова нет какого-либо колебательного поведения (что потребовало бы отрицательных или сложных собственных значений), предположительно включая ваш дискретизированный AR (1).
В более общем смысле команда на Matlab даст нам логарифм главной матрицы, аналог основного скалярного логарифма, который принимает все собственные значения для мнимой части между и . Проблема заключается в том, что это не обязательно логарифм мы хотим, и, глядя на него , мы могли бы пропустить Пуассон , который делает генерировать . (Вот почему случай с положительным собственным значением, когда нам не нужно было об этом беспокоиться, был так хорош.) Тем не менее, даже в этих других случаях не помешает попробовать и посмотреть, работает ли он.logm−ππBA
Кстати, проблема определения того, существует ли , порождающий некоторую марковскую матрицу , широко изучалась. Это называется проблемой встраиваемости : посмотрите обзор и ссылки в этой превосходной обзорной статье Дэвиса . Я не эксперт по техническим аспектам проблемы, хотя; Этот ответ основан больше на моем собственном хакерском опыте и интуиции.BA
Я чувствую себя обязанным завершить, поддержав комментарий ecksc и сказав, что, возможно, существуют более совершенные и более прямые способы преобразования дискретно подобранного AR (1) в процесс с конечным состоянием и непрерывным временем - вместо того, чтобы просто брать матрицу, полученную методом Таучена, и делая это непрерывным. Но я лично не знаю, что это за лучший способ!
** Объяснение (хотя я и ржавый): имеет уникальное собственное значение Перрона-Фробениуса, равное 1, и, поскольку стохастический, правый собственный вектор этого собственного значения является единичным вектором . Это все еще правильный собственный вектор, теперь с собственным значением 0, когда мы берем матричный логарифм.AAe