我怀疑观察到的一系列序列是马尔可夫链...
但是,如何检查它们是否确实尊重的无记忆属性
或者至少证明他们本质上是马尔可夫?注意,这些是根据经验观察到的序列。有什么想法吗?
编辑
只是补充,目的是从观察到的序列中比较预测的序列集。因此,我们希望您能对如何最好地进行比较提出意见。
一阶转换矩阵
M E的特征值
M V的特征向量
我怀疑观察到的一系列序列是马尔可夫链...
但是,如何检查它们是否确实尊重的无记忆属性
或者至少证明他们本质上是马尔可夫?注意,这些是根据经验观察到的序列。有什么想法吗?
编辑
只是补充,目的是从观察到的序列中比较预测的序列集。因此,我们希望您能对如何最好地进行比较提出意见。
一阶转换矩阵
M E的特征值
M V的特征向量
Answers:
我不知道以下内容是否可以对比例进行有效的Pearson检验,如下所示。
我很容易想到每个,所以总。但是,我对此并不完全确定,希望您对此表示感谢。同样,对于是否需要对独立性抱有偏执的想法,我也不愿一概而论,而是想将样本分成两半来估算和。
为了具体化上一个答复的建议,您首先要估计马尔可夫概率-假设是马尔可夫。在此处查看答复估计马尔可夫链概率
你应该根据跃的状态,从A到A,比例,A到B等调用此矩阵得到一个4×4矩阵。应该是两步过渡矩阵:两步从A到A,依此类推。然后,您可以测试观察到的2步过渡矩阵是否类似于。
由于您拥有许多用于状态数的数据,因此可以从数据的一半估算,然后使用另一半测试M 2-您正在针对多项式的理论概率测试观察到的频率。那应该让您知道您还有多远。
另一种可能性是查看基本状态比例:在A中花费的时间比例,在B中花费的时间比例是否与M的单位特征值的特征向量相匹配。如果您的序列已达到某种稳态,则每个状态中的时间比例状态应该趋于那个极限。
除了马尔可夫性质(MP)之外,另一个性质是时间同质性(TH):可以是马尔可夫,但其转换矩阵 P(t )取决于时间t。例如,它可以在依赖于平日吨如果意见是每日,然后依赖性 X 吨上X 吨- 7有条件的X 吨- 1如果TH被不适当地假定可以被诊断。
假设TH成立,那么对MP的可能检查就是测试独立于X t − 2在X t − 1的条件,正如迈克尔·切尔尼克(Michael Chernick)和StasK建议的那样。这可以通过使用列联表测试来完成。我们可以 根据{ X t − 1 = x j }的n个可能值x j建立X t和X t − 2的n个列联表。,并测试其独立性。这也可以用做 与ℓ > 1代替X 吨- 2。
在R中,由于因子功能和函数apply
,
很容易生成列联表或数组sweep
。上面的想法也可以以图形方式加以利用。包ggplot2或点阵很容易提供条件图以比较条件分布。例如将i设置为行索引,将j设置为 因为网格下的列索引应该在MP下导致列内相似的分布。
小伙子。该书的第 5部分,由JK Lindsey 进行的对随机过程的及时统计分析包含了其他检查假设的想法。
[## 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")
]
我认为placida和mpiktas都提供了非常周到且出色的方法。
我之所以回答是因为我只想补充一点,即可以构建一个测试以查看是否不同于P (X i = x | X i − 1 = y 和 X i − 2 = z )。
我会选择,y和z的值,在这些情况下,从z到y到x的过渡很多发生。计算两个概率的样本估计。然后测试比例差异。困难的方面是在假设比例相等,链条平稳和马尔可夫不变的原假设下获得两个估计的方差。在原假设的情况下,如果我们仅查看所有两个阶段的过渡并将它们与相应的三个阶段的过渡进行比较,但仅包括结对结果集之间至少相隔两个时间点的结果,则联合结果的顺序如下:成功定义为从到y到x的过渡,以及所有其他两个阶段的过渡到x因为失败代表了原假设下的一组独立的伯努利试验。将所有到x的过渡都定义为成功,将其他一个阶段的x定义为失败也一样。
然后,检验统计量将是这些估计比例之间的差异。伯努利序列的标准比较的复杂之处在于它们是相关的。但是在这种情况下,您可以对二项式比例进行引导测试。
另一种可能性是通过两个表来构造两个两个阶段和三个阶段配对的结果,其中是失败和1是成功和小区频率是用于对计数(0 ,0 ),(0 ,1 ),(1 ,0 )和(1 ,1 ),其中所述第一组件是两分阶段的结果,第二个是相应的三级结果。然后,您可以将McNemar的测试应用于表格。
You could bin the data into evenly spaced intervals, then compute the unbiased sample variances of subsets . By the law of total variance,
The LHS, if it is almost zero, provides evidence that the transition probabilities do not depend on , though it is clearly a weaker statement: e.g., let . 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.