Матриця переходу: дискретний -> безперервний час


8

У мене є код, що відповідає Таухену (1986) (еквівалент Python цього ), який генерує дискретний наближення процесу дискретного AR (1) дискретного часу.

Наприклад, якщо встановити розмір сітки як 3, це дає вектор продуктивності

[A_1, A_2, A_3,]

і матриця ймовірностей переходу

A_11, A_12, A_13
A_21, A_22, A_23
A_31, A_32, A_33

Там, де рядок i, стовпець jдає вам ймовірність переходу від iдо j, і він задовольняє, що сума кожного рядка приблизно одна.

Мені цікаво, як я можу перетворити це на безперервний часовий еквівалент перехідної матриці; набір вірогідностей пуассона, що контролюють швидкість потоку між станами.

Все, що я пам’ятаю в цьому плані, - це те, що ми можемо отримати лінійне наближення до ймовірностей Пуассона, використовуючи

Prob(ij)=limΔ0exp(λijΔ)1λijΔ

Але я не бачу, як це допомагає мені перетворити цю колишню матрицю на λ s ... Я з нетерпінням чекаю будь-якої пропозиції.

Відповіді:


6

Нехай - матриця швидкостей переходу Пуассона, де для позначає швидкість, з якою стан переходить у стан , а дає швидкість при якій стан переходить до всіх інших держав. Кожен рядок дорівнює 0.Bn×nBij0ijijBii0iB

Тоді, якщо позначає розподіл ймовірності в момент часу , за визначенням маємо ODE Ми знаємо, як виглядає рішення такого типу ODE: , де є матрицею експоненціальне з . Таким чином, якщо ми хочемо , щоб створити марковської матрицю переходу після , нам потрібно мати .p(t)tB

p˙(t)=Bp(t)
p(t)=eBtp(0)eBtBtBAt=1eB=A

В принципі, щоб отримати , ми повинні инвертировать матрицю експоненти, приймаючи матрицю логарифм від . Проблема полягає в тому, що кожна матриця має багато матричних логарифмів - логарифм в одновимірному складному просторі має нескінченно багато гілок, і це ускладнюється, коли ми говоримо про матриці в -вимірному просторі. Більшість цих логарифмів не будуть задовільними матрицями переходу Пуассона: можливо, вони не будуть справжніми, або записи не матимуть правильних знаків. Однак можливо, що їх буде більше: в деяких випадках є більше одного Пуассона відповідає Маркові , як і в деяких випадках немає ПуассонаBAnBABвідповідна . Це безладно.A

На щастя, існує ситуація, коли життя відносно просте, і воно майже напевно включає власний випадок: коли всі власні значення є позитивними, чіткі результатиA . У цьому випадку існує лише один логарифм який буде реальним, і його легко обчислити: ви просто діагоналізуєте матрицю як і приймаєте реальний логарифм власних значень, отримуючи , де . У самому справі, вам не потрібно робити це самостійно: якщо ви використовуєте команду в Matlab (імовірно Python теж), це дасть вам саме це .AA=VΣV1B=VΩV1ωii=log(σii)logm(A)B

Враховуючи це , все, що вам потрібно зробити, - це переконатися, що це насправді матриця Пуассона. Перша вимога, що всі рядки дорівнюють нулю, виконується автоматично завдяки побудові ** Друга вимога, що діагональні елементи є від'ємними, а недіагональні позитивними, не завжди виконується (я думаю, що ), але вам це легко перевірити.BB

Щоб побачити це в дії, я розгляну для процесу Маркова з 3 станом, який нагадує дискретний AR (1). Тепер, якщо я введіть у Matlab, я отримати Це дійсно дійсна матриця переходу Пуассона, оскільки ми можемо легко перевірити, що рядки дорівнюють нулю і мають правильні знаки - так це наша відповідь.A

A=(0.50.40.10.20.60.20.10.40.5)
B=logm(A)
B=(0.860.800.060.400.800.400.060.800.86)

Випадок із позитивними власними значеннями є досить важливим, оскільки він охоплює всі випадки, коли в ланцюгу Маркова немає якоїсь коливальної поведінки (яка вимагала б негативних чи складних власних значень), імовірно, включаючи ваші дискретні AR (1).

Загалом, команда у Matlab дасть нам головний матричний логарифм, аналог головного скалярного логарифму, який приймає всі власні значення, щоб мати уявну частину між та . Проблема полягає в тому, що це не обов'язково логарифм ми хочемо, і, дивлячись на нього , ми могли б пропустити Пуассон , який робить генерувати . (Ось чому випадок позитивного власного значення, коли нам не довелося про це турбуватися, був таким приємним.) Але все ж навіть у цих інших випадках не завадить спробувати перевірити, чи працює він.logmππBA

До речі, ця проблема щодо того, чи існує що генерує якусь марківську матрицю , була вивчена широко. Це називається проблемою вбудовування : див. Огляд та посилання в цій чудовій статті опитування від Davies . Я не є експертом з технічних аспектів проблеми; ця відповідь ґрунтується більше на моєму хакерському досвіді та інтуїції.BA

Я відчуваю, що я зобов’язаний закрити, відправивши коментар ecksc і кажучи, що можуть бути кращі, більш прямі способи перетворення дискретно пристосованого AR (1) в процес постійного часу з кінцевим станом - а не просто взяття матриці, отриманої методом Таухена, і роблячи це безперервним. Але я особисто не знаю, що таке кращий спосіб!


** Пояснення (хоча я іржавий): має унікальне власне значення Perron-Frobenius 1, а оскільки стохастичний, правильним власним вектором цього власного значення є одиничний вектор . Це все-таки правильний власний вектор, тепер із власним значенням 0, коли ми беремо матричний логарифм.AAe


2

Не можу коментувати, або я б попросив детальніше спочатку. Якщо ви намагаєтеся перетворити (1) процес AR прилягає до дискретних часових рядах до безперервного процесу часу, я знайшов потрібний ресурс тут на сторінці 4.

Розрахунки передбачені для оцінки коефіцієнтів процесу CAR (2) від процесу AR (2), але, звичайно, ви можете замінити 0 на другий коефіцієнт, щоб отримати конверсію.

Якщо ви намагаєтеся перетворити дискретний ланцюг Маркова в безперервний час, це буде складніше, і мені доведеться ще трохи прочитати, перш ніж я можу надати більше допомоги. :) Тим часом, ось кілька хороших матеріалів для читання, які я знайшов щодо безперервного часу Ланцюги Маркова.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.