Нехай - матриця швидкостей переходу Пуассона, де для позначає швидкість, з якою стан переходить у стан , а дає швидкість при якій стан переходить до всіх інших держав. Кожен рядок дорівнює 0.Bn×nBij≥0i≠jijBii≤0iB
Тоді, якщо позначає розподіл ймовірності в момент часу , за визначенням маємо ODE
Ми знаємо, як виглядає рішення такого типу ODE: , де є матрицею експоненціальне з . Таким чином, якщо ми хочемо , щоб створити марковської матрицю переходу після , нам потрібно мати .p(t)tB
p˙(t)=Bp(t)
p(t)=eBtp(0)eBtBtBAt=1eB=A
В принципі, щоб отримати , ми повинні инвертировать матрицю експоненти, приймаючи матрицю логарифм від . Проблема полягає в тому, що кожна матриця має багато матричних логарифмів - логарифм в одновимірному складному просторі має нескінченно багато гілок, і це ускладнюється, коли ми говоримо про матриці в -вимірному просторі. Більшість цих логарифмів не будуть задовільними матрицями переходу Пуассона: можливо, вони не будуть справжніми, або записи не матимуть правильних знаків. Однак можливо, що їх буде більше: в деяких випадках є більше одного Пуассона відповідає Маркові , як і в деяких випадках немає ПуассонаBAnBABвідповідна . Це безладно.A
На щастя, існує ситуація, коли життя відносно просте, і воно майже напевно включає власний випадок: коли всі власні значення є позитивними, чіткі результатиA . У цьому випадку існує лише один логарифм який буде реальним, і його легко обчислити: ви просто діагоналізуєте матрицю як і приймаєте реальний логарифм власних значень, отримуючи , де . У самому справі, вам не потрібно робити це самостійно: якщо ви використовуєте команду в Matlab (імовірно Python теж), це дасть вам саме це .AA=VΣV−1B=VΩV−1ωii=log(σii)logm(A)B
Враховуючи це , все, що вам потрібно зробити, - це переконатися, що це насправді матриця Пуассона. Перша вимога, що всі рядки дорівнюють нулю, виконується автоматично завдяки побудові ** Друга вимога, що діагональні елементи є від'ємними, а недіагональні позитивними, не завжди виконується (я думаю, що ), але вам це легко перевірити.BB
Щоб побачити це в дії, я розгляну для процесу Маркова з 3 станом, який нагадує дискретний AR (1).
Тепер, якщо я введіть у Matlab, я отримати
Це дійсно дійсна матриця переходу Пуассона, оскільки ми можемо легко перевірити, що рядки дорівнюють нулю і мають правильні знаки - так це наша відповідь.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
До речі, ця проблема щодо того, чи існує що генерує якусь марківську матрицю , була вивчена широко. Це називається проблемою вбудовування : див. Огляд та посилання в цій чудовій статті опитування від Davies . Я не є експертом з технічних аспектів проблеми; ця відповідь ґрунтується більше на моєму хакерському досвіді та інтуїції.BA
Я відчуваю, що я зобов’язаний закрити, відправивши коментар ecksc і кажучи, що можуть бути кращі, більш прямі способи перетворення дискретно пристосованого AR (1) в процес постійного часу з кінцевим станом - а не просто взяття матриці, отриманої методом Таухена, і роблячи це безперервним. Але я особисто не знаю, що таке кращий спосіб!
** Пояснення (хоча я іржавий): має унікальне власне значення Perron-Frobenius 1, а оскільки стохастичний, правильним власним вектором цього власного значення є одиничний вектор . Це все-таки правильний власний вектор, тепер із власним значенням 0, коли ми беремо матричний логарифм.AAe