Vérifier la propriété sans mémoire d'une chaîne de Markov


17

Je soupçonne qu'une série de séquences observées est une chaîne de Markov ...

X=(ACDDBACBAACADABCADABE)

Mais comment vérifier qu'ils respectent bien la propriété sans mémoire de

P(Xi=xi|Xj=xj)?

Ou au moins prouver qu'ils sont de nature Markov? Notez que ce sont des séquences observées empiriquement. Des pensées?

ÉDITER

Juste pour ajouter, le but est de comparer un ensemble de séquences prévu à partir de celles observées. Nous aimerions donc recevoir des commentaires sur la meilleure façon de les comparer.

Matrice de transition du premier ordre

Mij=xijmxik
où m = A..E indique

M=(0.18340.30770.07690.14790.28400.46970.11360.00760.25000.15910.18270.24040.22120.19230.16350.23780.18180.06290.33570.18180.24580.17880.11730.17880.2793)

Valeurs propres de M

E=(1.0000000000.2283000000.1344000000.11360.0430i000000.1136+0.0430i)

Vecteurs propres de M

V=(0.44720.58520.42190.23430.0421i0.2343+0.0421i0.44720.78380.42110.44790.2723i0.4479+0.2723i0.44720.20060.37250.63230.63230.44720.00100.70890.21230.0908i0.2123+0.0908i0.44720.05400.05890.2546+0.3881i0.25460.3881i)

Les colonnes contiennent la série et les lignes les éléments des séquences? Quel est le nombre de lignes et de colonnes observé?
mpiktas


@mpiktas Les lignes représentent les séquences de transitions observées indépendantes à travers les états AD. Il y a environ 400 séquences ... Gardez à l'esprit que les séquences observées ne sont pas toutes de la même longueur. En fait, la matrice ci-dessus dans de nombreux cas est augmentée par des zéros. Merci pour le lien au fait. Il semble qu'il reste encore beaucoup de place pour travailler dans ce domaine. Avez-vous d'autres réflexions? Cordialement,
HCAI

1
La régression linéaire était un exemple pour renforcer le point de mon argument. C'est-à-dire que vous n'aurez peut-être pas besoin de tester directement la propriété Markov, il vous suffit d'adapter un modem qui suppose la propriété Markov, puis de vérifier la validité du modèle.
mpiktas

1
Je me souviens vaguement d'avoir vu quelque part un test d'hypothèse pour H0 = {Markov} vs H1 = {Markov order 2}. Cela pourrait aider.
Stéphane Laurent

Réponses:


5

Je me demande si ce qui suit donnerait un test Pearson valide pour les proportions comme suit.χ2

  1. Estimez les probabilités de transition en une étape - vous l'avez fait.
  2. Obtenez les probabilités du modèle en deux étapes:
    p^U,V=Prob[Xi+2=U|Xi=V]=W{A,B,C,D}Prob[Xi+2=U|Xi+1=W]Prob[Xi+1=W|Xi=V]
  3. Obtenez les probabilités empiriques en deux étapes
    p~U,V=i#Xi=V,Xi+2=Ui#Xi=V
  4. Formulaire statistique de test Pearson
    TV=#{Xi=V}U(p^U,Vp~U,V)2p^U,V,T=TA+TB+TC+TD

Il est tentant pour moi de penser que chaque , de sorte que le total . Cependant, je ne suis pas tout à fait sûr de cela et apprécierais vos réflexions à ce sujet. Je ne suis pas non plus sûr de savoir si l'on doit être paranoïaque à propos de l'indépendance, et je voudrais diviser l'échantillon en deux pour estimer et . T ~ χ 2 12 p ˉ pTUχ32Tχ122p^p¯


Les probabilités ne doivent-elles pas avoir une distribution normale avec une moyenne de 0 et une variance = 1 pour que cela se vérifie? Je serais très intéressé de savoir ce que quelqu'un pense ici.
HCAI

C'est ce que les termes de la somme sont censés être, asymptotiquement avec de grands nombres.
StasK

6

La propriété Markov peut être difficile à tester directement. Mais cela pourrait être suffisant pour ajuster un modèle qui suppose la propriété Markov et tester ensuite si le modèle est valide. Il peut s'avérer que le modèle ajusté est une bonne approximation qui vous est utile dans la pratique, et vous n'avez pas à vous soucier de savoir si la propriété Markov tient vraiment ou non.

Le parallèle peut être établi avec la régression linéaire. La pratique habituelle n'est pas de vérifier si la linéarité est vraie, mais si le modèle linéaire est une approximation utile.


Cela semble être la meilleure option en réalité, mais je ne peux pas réellement comparer un modèle linéaire à des données expérimentales réelles. Ou aviez-vous autre chose en tête?
HCAI

6

Pour concrétiser la suggestion de la réponse précédente, vous voulez d'abord estimer les probabilités de Markov - en supposant que c'est Markov. Voir la réponse ici Estimation des probabilités de la chaîne de Markov

Vous devriez obtenir un 4 x 4 matrice basée sur la proportion des transitions d' un état A à A, A à B, etc. Appelez cette matrice . M 2 devrait alors être la matrice de transition en deux étapes: A à A en 2 étapes, et ainsi de suite. Vous pouvez ensuite tester si votre matrice de transition en 2 étapes observée est similaire à M 2 .MM2M2

Puisque vous avez beaucoup de données pour le nombre d'états, vous pouvez estimer partir de la moitié des données et tester M 2 à l'aide de l'autre moitié - vous testez les fréquences observées par rapport aux probabilités théoriques d'un multinomial. Cela devrait vous donner une idée de votre éloignement.MM2

Une autre possibilité serait de voir si les proportions d'état de base: proportion de temps passé en A, temps passé en B, correspond au vecteur propre de la valeur propre unitaire de M. Si votre série a atteint une sorte d'état stationnaire, la proportion de temps dans chaque l'État devrait tendre vers cette limite.


Il y a un peu à retenir: j'ai calculé la matrice de transition , mais je ne sais pas comment vous calculeriez empiriquement le M 2 . Pourriez-vous clarifier ce point? Cordialement,MM2
HCAI

De plus, ce dernier commentaire est très intéressant, même si je n'ai pas le temps passé dans chaque état de mes séquences observées. Je n'ai que le temps total pour chaque ligne. Cela peut donc limiter l'applicabilité de cette méthode. Quelles sont vos pensées?
HCAI

1
Faites-le de la même manière que vous avez fait M, mais au lieu de regarder les transitions du voisin le plus proche, (disons les séquences AB), regardez les paires qui sont à 2. Donc, si un sujet devient ACB, cela compte pour votre compte de transition AB. ABB aussi. Créez une matrice où l'élément de la ligne i, la colonne j contient les transitions i à j. Divisez ensuite par les totaux des colonnes. Vous voulez que les colonnes totalisent 1. Sous la propriété Markov, cette matrice doit être proche de M2
Placidia

RE: équilibre. Je supposais que les transitions se produisent à des moments définis - disons que chaque seconde, vous passez de l'état actuel à l'état suivant. Vous pouvez prendre la fréquence des états A, B, C et D près de la fin des séquences ou à travers les séquences pour estimer le comportement limite.
Placidia

Dans R, si vous faites des valeurs propres (M), vous devriez obtenir les valeurs propres et les vecteurs propres de M. Une valeur propre sera 1. Le vecteur propre correspondant devrait être proportionnel à vos proportions d'état stationnaire .... si Markov.
Placidia

2

Au-delà de la propriété de Markov (MP), une autre propriété est l' homogénéité temporelle (TH): peut être Markov mais avec sa matrice de transition P ( t ) en fonction du temps t . Par exemple, cela peut dépendre du jour de la semaine à t si les observations sont quotidiennes, puis une dépendance X t à X t - 7 conditionnelle à X t - 1 peut être diagnostiquée si TH est indûment supposé.XtP(t)ttXtXt7Xt1

En supposant que TH se vérifie, une vérification possible de MP teste que est indépendant de X t - 2 conditionnel à X t - 1 , comme Michael Chernick et StasK l'ont suggéré. Cela peut être fait en utilisant un test pour la table de contingence. On peut construire les n tables de contingence de X t et X t - 2 conditionnellement à { X t - 1 = x j } pour les n valeurs possibles x jXtXt2Xt1nXtXt2{Xt1=xj}nxjet tester l'indépendance. Cela peut également être fait en utilisant avec > 1 à la place de X t - 2 .Xt>1Xt2

Dans R, les tableaux de contingence ou les tableaux sont facilement produits grâce au facteur installation et les fonctions apply, sweep. L'idée ci-dessus peut également être exploitée graphiquement. Les packages ggplot2 ou lattice fournissent facilement des tracés conditionnels pour comparer les distributions conditionnelles . Par exemple, définir i comme index de ligne et jp(Xt|Xt1=xj,Xt2=xi)ij comme l'index de colonne dans le treillis devrait sous MP conduire à des distributions similaires dans une colonne.

Le chap. 5 du livre L'analyse statistique des processus stochastiques dans le temps par JK Lindsey contient d'autres idées pour vérifier les hypothèses.

enter image description here

[## simulates a MC with transition matrix in 'trans', starting from 'ini'
simMC <- function(trans, ini = 1, N) {
  X <- rep(NA, N)
  Pcum <- t(apply(trans, 1, cumsum))
  X[1] <- ini 
  for (t in 2:N) {
    U <- runif(1)
    X[t] <- findInterval(U, Pcum[X[t-1], ]) + 1
  }
  X
}
set.seed(1234)
## transition matrix
P <- matrix(c(0.1, 0.1, 0.1, 0.7,
              0.1, 0.1, 0.6, 0.2,
              0.1, 0.3, 0.2, 0.4,
              0.2, 0.2, 0.3, 0.3),
            nrow = 4, ncol = 4, byrow = TRUE)
N <- 2000
X <- simMC(trans = P, ini = 1, N = N)
## it is better to work with factors
X <- as.factor(X)
levels(X) <- LETTERS[1:4]
## table transitions and normalize each row
Phat <- table(X[1:(N-1)], X[2:N])
Phat <- sweep(x = Phat, MARGIN = 1, STATS = apply(Phat, 1, sum), FUN = "/")
## explicit dimnames
dimnames(Phat) <- lapply(list("X(t-1)=" ,"X(t)="),
                         paste, sep = "", levels(as.factor(X)))
## transition 3-fold contingency array
P3 <- table(X[1:(N-2)], X[2:(N-1)], X[3:N])
dimnames(P3) <- lapply(list("X(t-2)=", "X(t-1)=" ,"X(t)="),
                       paste, sep = "", levels(as.factor(X)))
## apply ONE indendence test 
fisher.test(P3[ , 1, ], simulate.p.value = TRUE)
## plot conditional distr.
library(lattice)
X3 <- data.frame(X = X[3:N], lag1X =  X[2:(N-1)], lag2X = X[1:(N-2)])
histogram( ~ X | lag1X + lag2X, data = X3, col = "SteelBlue3")

]


2

Je pense que placida et mpiktas ont tous deux donné des approches très réfléchies et excellentes.

P(Xi=x|Xi1=y)P(Xi=x|Xi1=y and Xi2=z)

xyzzyxzyxxyxx

La statistique de test serait alors la différence entre ces proportions estimées. La complication de la comparaison standard des séquences de Bernoulli est qu'elles sont corrélées. Mais vous pouvez faire un test d'amorçage des proportions binomiales dans ce cas.

01(0,0)(0,1)(1,0)(1,1)


P(Xi|Xi1=y)

ii1i1ii1i

ijiijki

1

{Xn+1:Xn=x1,Xnk=x2}

Var[E(Xn+1|Xn,Xnk)|Xn]=Var[Xn+1|Xn]E(Var[Xn+1|Xn])

XnkXn+1N(Xn,Xn1)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.