检查马尔可夫链的无记忆特性


17

我怀疑观察到的一系列序列是马尔可夫链...

X=(ACDDBACBAACADABCADABE)

但是,如何检查它们是否确实尊重的无记忆属性

P(Xi=xi|Xj=xj)?

或者至少证明他们本质上是马尔可夫?注意,这些是根据经验观察到的序列。有什么想法吗?

编辑

只是补充,目的是从观察到的序列中比较预测的序列集。因此,我们希望您能对如何最好地进行比较提出意见。

一阶转换矩阵

Mij=xijmxik
,其中m = A..E状态

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)

M E的特征值

E=(1.0000000000.2283000000.1344000000.11360.0430i000000.1136+0.0430i)

M V的特征向量

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)

列包含序列,行包含序列的元素?观察到的行数和列数是多少?
mpiktas 2012年


@mpiktas这些行表示通过状态AD进行的独立观察到的转换序列。有大约400个序列...请记住,观察到的序列并非都具有相同的长度。实际上,在许多情况下,上述矩阵会增加零。谢谢您的链接。在这一领域似乎仍有很大的工作空间。您还有其他想法吗?问候,
HCAI 2012年

1
线性回归是加强我的观点的一个例子。也就是说,您可能不需要直接测试Markov属性,您只需要安装一个假定Markov属性的调制解调器,然后检查模型的有效性即可。
mpiktas 2012年

1
我隐约记得我曾经在某处见过H0 = {Markov} vs H1 = {Markov order 2}的假设检验。这可能会有所帮助。
斯蒂芬·洛朗

Answers:


5

我不知道以下内容是否可以对比例进行有效的Pearson检验,如下所示。χ2

  1. 估算一步转换的可能性-您已经完成了。
  2. 获得两步模型的概率:
    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. 获得两步经验概率
    p~U,V=i#Xi=V,Xi+2=Ui#Xi=V
  4. 形式Pearson检验统计量
    TV=#{Xi=V}U(p^U,Vp~U,V)2p^U,V,T=TA+TB+TC+TD

我很容易想到每个,所以总。但是,我对此并不完全确定,希望您对此表示感谢。同样,对于是否需要对独立性抱有偏执的想法,我也不愿一概而论,而是想将样本分成两半来估算和。TUχ32Tχ122p^p¯


概率是否必须具有均值0和方差= 1的正态分布才能成立?我很想知道任何人在这里的想法。
HCAI 2012年

这就是总和中的术语,即渐近地具有大量。
StasK 2012年

6

马尔可夫性质可能很难直接测试。但这可能足以拟合具有Markov属性的模型,然后测试该模型是否成立。可能会发现,拟合模型是一个很好的近似值,在实践中对您很有用,并且您不必担心Markov属性是否真正成立。

可以将平行线绘制为线性回归。通常的做法不是测试线性是否成立,而是测试线性模型是否是有用的近似值。


这似乎是现实中的最佳选择,只有我无法实际将线性模型与任何实际实验数据进行比较。还是您还有其他想法?
HCAI

6

为了具体化上一个答复的建议,您首先要估计马尔可夫概率-假设是马尔可夫。在此处查看答复估计马尔可夫链概率

你应该根据跃的状态,从A到A,比例,A到B等调用此矩阵得到一个4×4矩阵。应该是两步过渡矩阵:两步从A到A,依此类推。然后,您可以测试观察到的2步过渡矩阵是否类似于。MM2M2

由于您拥有许多用于状态数的数据,因此可以从数据的一半估算,然后使用另一半测试M 2-您正在针对多项式的理论概率测试观察到的频率。那应该让您知道您还有多远。MM2

另一种可能性是查看基本状态比例:在A中花费的时间比例,在B中花费的时间比例是否与M的单位特征值的特征向量相匹配。如果您的序列已达到某种稳态,则每个状态中的时间比例状态应该趋于那个极限。


我已经计算了转换矩阵,但不确定如何凭经验计算M 2。您能否澄清这一点?问候,MM2
HCAI 2012年

另外,尽管我没有花时间在观察序列的每个状态上,但后一个注释非常有趣。我只有每一行的总时间。因此,这可能会限制该方法的适用性。你怎么看?
HCAI 2012年

1
以与M相同的方式进行操作,只是不要查看最近的邻居转换(例如序列AB),而是查看相距2的对。因此,如果某科目达到ACB,那将计入您的AB转换计数。ABB也是如此。创建一个矩阵,其中第i行第j列中的项包含从i到j的过渡。然后除以列总数。您希望各列的总和为1。在Markov属性下,此矩阵应接近M2
Placidia 2012年

RE:平衡。我以为转换是在设定的时刻发生的-假设您每秒从当前状态转换到下一个状态。您可以采用序列末尾附近或跨序列的A,B,C和D状态的频率来估计极限行为。
Placidia 2012年

在R中,如果执行特征值(M),则应获得M的特征值和特征向量。一个特征值将为1。如果是马尔可夫,则对应的特征向量应与您的稳态比例成比例。
Placidia 2012年

2

除了马尔可夫性质(MP)之外,另一个性质是时间同质性(TH):可以是马尔可夫,但其转换矩阵 Pt 取决于时间t。例如,它可以在依赖于平日如果意见是每日,然后依赖性 X X - 7有条件的X - 1如果TH被不适当地假定可以被诊断。XtP(t)ttXtXt7Xt1

假设TH成立,那么对MP的可能检查就是测试独立于X t 2X t 1的条件,正如迈克尔·切尔尼克(Michael Chernick)和StasK建议的那样。这可以通过使用列联表测试来完成。我们可以 根据{ X t 1 = x j }n个可能值x j建立X tX t 2n个列联表。XtXt2Xt1nXtXt2{Xt1=xj}nxj,并测试其独立性。这也可以用做> 1代替X - 2Xt>1Xt2

在R中,由于因子功能和函数apply, 很容易生成列联表或数组sweep。上面的想法也可以以图形方式加以利用。包ggplot2点阵很容易提供条件图以比较条件分布。例如将i设置为行索引,将j设置为p(Xt|Xt1=xj,Xt2=xi)ij 因为网格下的列索引应该在MP下导致列内相似的分布。

小伙子。该书的 5部分,由JK Lindsey 进行的对随机过程的及时统计分析包含了其他检查假设的想法。

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

我认为placida和mpiktas都提供了非常周到且出色的方法。

我之所以回答是因为我只想补充一点,即可以构建一个测试以查看是否不同于P X i = x | X i 1 = y  和  X i 2 = z P(Xi=x|Xi1=y)P(Xi=x|Xi1=y and Xi2=z)

我会选择yz的值,在这些情况下,从zyx的过渡很多xyzzyx发生。计算两个概率的样本估计。然后测试比例差异。困难的方面是在假设比例相等,链条平稳和马尔可夫不变的原假设下获得两个估计的方差。在原假设的情况下,如果我们仅查看所有两个阶段的过渡并将它们与相应的三个阶段的过渡进行比较,但仅包括结对结果集之间至少相隔两个时间点的结果,则联合结果的顺序如下:成功定义为从yx的过渡,以及所有其他两个阶段的过渡到xzyxx因为失败代表了原假设下的一组独立的伯努利试验。将所有x的过渡都定义为成功,将其他一个阶段的x定义为失败也一样。yxx

然后,检验统计量将是这些估计比例之间的差异。伯努利序列的标准比较的复杂之处在于它们是相关的。但是在这种情况下,您可以对二项式比例进行引导测试。

另一种可能性是通过两个表来构造两个两个阶段和三个阶段配对的结果,其中是失败和1是成功和小区频率是用于对计数0 0 0 1 1 0 1 1 ,其中所述第一组件是两分阶段的结果,第二个是相应的三级结果。然后,您可以将McNemar的测试应用于表格。01(0,0)(0,1)(1,0)(1,1)


尽管我发现第一段非常简洁,但我看到了您在这里指的是什么。例如“计算样本估计数,然后测试比例差异”。样本估算值是什么意思?当然没有方差,还是我误解了您的思路?
P(Xi|Xi1=y)
HCAI 2012年

@ user1134241您提到“根据经验观察”,我假设您具有此随机序列中的数据。如果要为每个索引i-1 估计P(X i = x | X i - 1 = y),其中X i - 1 = y,请计算X i = x 的次数并将其除以次数X i 1 = y(无论X i等于什么)。这是一个估计,因为观察到的有限序列只是随机过程的一部分序列的样本。ii1i1ii1i
Michael R.

ijiijki

1

You could bin the data into evenly spaced intervals, then compute the unbiased sample variances of subsets {Xn+1:Xn=x1,Xnk=x2}. By the law of total variance,

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

The LHS, if it is almost zero, provides evidence that the transition probabilities do not depend on Xnk, though it is clearly a weaker statement: e.g., let Xn+1N(Xn,Xn1). Taking the expected value of both sides of the above equation, the RHS can be computed from the sample variances (i.e., replacing expected values with averages). If the expected value of the variance is zero then the variance is 0 almost always.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.