Оценка вероятностей цепей Маркова

12

Каков будет общий способ оценки матрицы перехода MC с учетом временных рядов?

Есть ли функция R для этого?

user333
источник
Это дискретная или непрерывная цепочка состояний Маркова?
Макрос
Дискретный я думаю. У меня есть 5 возможных состояний от S1 до S5
user333
Опираясь на предыдущие хорошие ответы: да, есть способ, который учитывает позицию. Я думаю, что это возможно с помощью марковских моделей n-го порядка.

Ответы:

14

Поскольку временные ряды имеют дискретное значение, вы можете оценить вероятности перехода по пропорциям выборки. Пусть будет состоянием процесса в момент времени , будет матрицей перехода, тогдаYttP

Pij=P(Yt=j|Yt1=i)

Поскольку это цепочка Маркова, эта вероятность зависит только от , поэтому ее можно оценить по пропорции выборки. Пусть будет количеством раз, которое процесс переходил из состояния в . Потом,Yt1nikik

P^ij=nijk=1mnik

где - количество возможных состояний ( в вашем случае ). Знаменатель - это общее количество перемещений из состояния . Оценка записей таким способом фактически соответствует оценке максимального правдоподобия матрицы перехода, рассматривая результаты как многочленные, обусловленные .mm=5k=1mnikiYt1

Редактировать: Это предполагает, что у вас есть временные ряды, наблюдаемые через равные интервалы. В противном случае вероятности перехода также будут зависеть от временной задержки (даже если они все еще являются марковскими).

макрос
источник
6
Я слышу, что вы говорите. В основном наблюдаемые частоты будут моей матрицей ... Одним словом!
user333
Как насчет непрерывного пространства состояний? Я немного пытаюсь понять концепцию?
user333
1
Для непрерывного пространства состояний проблема становится намного более сложной, поскольку тогда вам нужно оценить функцию перехода, а не матрицу. В этом случае, поскольку предельная вероятность нахождения в каком-либо конкретном состоянии равна 0 (аналогично тому, как вероятность взять любую конкретную точку в пространстве выборки равна 0 для любого непрерывного распределения), то, что я описал выше, не имеет смысла. В непрерывном случае я считаю, что оценка функции перехода является решением для ряда дифференциальных уравнений (я не очень знаком с этим, поэтому кто-то, пожалуйста, исправьте меня, если я ошибаюсь)
Макрос
Разве этот метод не предполагает 1 непрерывное наблюдение, а не столько, сколько на пост ниже? Например, представьте, что E было поглощающим состоянием ... Тогда это не было бы обнаружено здесь, конечно?
HCAI
4

Это очень, с гипотезой, что ваш временной ряд является стационарным:

Упростить отличный ответ Макро

Здесь у вас есть временной ряд с 5 состояниями: A, B, C, D, E

AAAEDDDCBEEEDBADBECADAAAACCCDDE

Вам просто нужно сначала сосчитать переходы: - оставляя переходы A: 9 Среди этих 9 переходов 5 - A-> A, 0 A-> B, 1 A-> C, 2 A-> D, 1 A-> E Итак, первая строка вашей матрицы вероятности перехода - [5/9 0 1/9 2/9 1/9]

Вы делаете это, считая для каждого состояния, и затем получаете свою матрицу 5x5.

Микаэль С
источник
Отличный пример, спасибо. Значит, цепочки Маркова касаются только количества переходов, а не их размещения, верно? Например, будет AAABBBAиметь такую ​​же матрицу, как ABBBAAA?
Марцин
да, с цепью Маркова, если у вас одинаковое количество переходов, у вас будет одинаковая матрица. Это хороший вопрос. Даже если у вас не одинаковая последовательность, у вас одинаковое «поведение», и это самое важное в моделировании, если вы хотите повторить точно такую ​​же последовательность, зачем моделирование? Просто повторите ваши данные.
Микаэль S
Есть ли другой метод подсчета переходов, учитывающий положение? Я занимаюсь исследованием взлома паролей, поэтому было бы неплохо иметь метод оценки вероятности появления следующего символа. Проблема с паролями заключается в том, что люди, как правило, следуют правилам, например, ставят * в начале и конце пароля или заканчивают пароль 1, так что учитываются не только переходы, но и их местоположение.
Марцин
хорошо, я не думал об этом случае, ты уверен, что цепь Маркова - лучший способ сделать то, что ты хочешь сделать? Если вы так думаете, каково ваше состояние (каждый персонаж - это состояние)? И как вы планируете рассчитать переход? Как вы планируете использовать сеть Markov?
Микаэль S
1

функция markovchainFit из пакета markovchain решает вашу проблему.

Джорджо Спедикато
источник