Estimando probabilidades da cadeia de Markov

12

Qual seria a maneira comum de estimar a matriz de transição de MC, considerando as séries temporais?

Existe função R para fazer isso?

user333
fonte
Esta é uma cadeia markov de estado discreto ou contínuo?
Macro
Discreto, eu acho. Eu tenho 5 estados possíveis S1 a S5
#
Com base nas respostas legais anteriores: sim, existe uma maneira que reconhece a posição. Eu acho que é possível por meio de modelos Markov de ordem n.

Respostas:

14

Como a série temporal é discreta, é possível estimar as probabilidades de transição pelas proporções da amostra. Seja o estado do processo no tempo t , P seja a matriz de transição, entãoYttP

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

Por se tratar de uma cadeia de markov, essa probabilidade depende apenas de , podendo ser estimada pela proporção da amostra. Vamos n i k ser o número de vezes que o processo se mudou de estado i a k . Então,Yt1nikik

P^ij=nijk=1mnik

onde é o número de estados possíveis ( m = 5 no seu caso). O denominador, m k = 1 n i k , é o número total de movimentos fora do estado i . A estimativa das entradas dessa maneira corresponde realmente ao estimador de probabilidade máxima da matriz de transição, visualizando os resultados como multinomiais, condicionados a Y t - 1 .mm=5k=1mnikiYt1

Editar: Isso pressupõe que você tenha as séries temporais observadas em intervalos igualmente espaçados. Caso contrário, as probabilidades de transição também dependeriam do intervalo de tempo (mesmo que ainda sejam markovianas).

Macro
fonte
6
Eu escuto o que você está falando. Frequências observadas basicamente serão minha matriz ... Em poucas palavras!
User333
E o espaço de estado contínuo? Althou eu estou lutando um pouco para entender o conceito?
User333
1
Para um espaço de estado contínuo, o problema se torna muito mais complicado, pois você precisa estimar uma função de transição em vez de uma matriz. Nesse caso, uma vez que a probabilidade marginal de estar em qualquer estado específico é 0 (da mesma forma que a probabilidade de pegar qualquer ponto específico no espaço da amostra é 0 para qualquer distribuição contínua) o que eu descrevi acima não faz sentido. No caso contínuo, acredito que a estimativa da função de transição seja a solução para um conjunto de equações diferenciais (não estou muito familiarizado com isso, então alguém me corrija se estiver errado)
Macro
Esse método não pressupõe 1 observação contínua, em vez de muitas conforme o post abaixo? Por exemplo, imagine E era um estado absorvente ... Então isso não seria revelado aqui com certeza?
HCAI
4

É muito, com a hipótese de que sua série temporal é estacionária:

Para simplificar a excelente resposta do Macro

Aqui você tem sua série temporal com 5 estados: A, B, C, D, E

AAAEDDDCBEEEDBADBECADAAAACCCDDE

Você só precisa contar primeiro as transições: - deixando transições A: 9 Entre essas 9 transições, 5 são A-> A, 0 A-> B, 1 A-> C, 2 A-> D, 1 A-> E Portanto, a primeira linha da sua matriz de probabilidade de transição é [5/9 0 1/9 2/9 1/9]

Você faz isso contando para cada estado e, em seguida, obtém sua matriz 5x5.

Mickaël S
fonte
Ótimo exemplo, obrigado. Então, as cadeias de Markov se preocupam apenas com o número de transições, não com sua colocação, correto? Por exemplo, teria AAABBBAuma mesma matriz que ABBBAAA?
Marcin
sim, com a cadeia de Markov, se você tiver o mesmo número de transição, terá a mesma matriz. É uma boa pergunta. Mesmo você não tem exatamente a mesma sequência, tem o mesmo "comportamento" e isso é o mais importante na modelagem, se você deseja repetir exatamente a mesma sequência, por que modelar? Apenas repita seus dados.
Mickaël S
Existe outro método de contar transições que reconhece a posição? Estou pesquisando sobre quebra de senhas, então seria bom ter um método de avaliar qual é o próximo personagem mais provável de ocorrer. O problema com as senhas é que as pessoas tendem a seguir regras como colocar * no início e final da senha ou terminar uma senha com 1, portanto, não são apenas as transições que contam, mas também a localização.
Marcin
ok, eu não pensei nesse caso, você tem certeza de que a cadeia de Markov é a melhor maneira de fazer o que você quer fazer? Se você pensa assim, qual é o seu estado (cada personagem é um estado)? E como você planeja calcular a transição? Como você planeja usar a cadeia markov?
Mickaël S
1

a função markovchainFit do pacote markovchain lida com o seu problema.

Giorgio Spedicato
fonte