Kiểm tra thuộc tính bộ nhớ của chuỗi Markov


17

Tôi nghi ngờ rằng một loạt các chuỗi được quan sát là một chuỗi Markov ...

X=(ACDDBACBAACADABCADABE)

Tuy nhiên, làm thế nào tôi có thể kiểm tra xem họ thực sự tôn trọng thuộc tính không nhớ của

P(Xi=xi|Xj=xj)?

Hoặc ít nhất là chứng minh rằng họ là Markov trong tự nhiên? Lưu ý đây là những chuỗi quan sát thực nghiệm. Có suy nghĩ gì không?

BIÊN TẬP

Chỉ cần thêm, mục đích là để so sánh một chuỗi trình tự dự đoán từ những chuỗi được quan sát. Vì vậy, chúng tôi đánh giá cao ý kiến ​​về cách tốt nhất để so sánh chúng.

Ma trận chuyển đổi thứ tự đầu tiên

Mij=xijmxik
trong đó m = A..E trạng thái

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)

Giá trị riêng của M

E=(1.0000000000.2283000000.1344000000.11360.0430i000000.1136+0.0430i)

Eigenvector của 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)

Các cột chứa chuỗi, và các hàng các phần tử của chuỗi? Số lượng hàng và cột quan sát là gì?
mpiktas


@mpiktas Các hàng biểu thị các chuỗi được quan sát độc lập của các chuyển tiếp qua các trạng thái AD. Có khoảng 400 trình tự ... Hãy nhớ rằng các trình tự được quan sát không phải là tất cả cùng độ dài. Trong thực tế, ma trận trên trong nhiều trường hợp được tăng thêm bằng số không. Cảm ơn bạn đã liên kết bằng cách này. Dường như vẫn còn nhiều chỗ cho công việc trong lĩnh vực này. Bạn có suy nghĩ gì thêm không? Trân trọng,
HCAI

1
Hồi quy tuyến tính là một ví dụ để củng cố quan điểm của tôi. Tức là bạn có thể không cần kiểm tra trực tiếp thuộc tính Markov, bạn chỉ cần lắp một số modem giả định thuộc tính Markov và sau đó kiểm tra tính hợp lệ của mô hình.
mpiktas

1
Tôi mơ hồ nhớ rằng tôi đã thấy ở đâu đó một bài kiểm tra giả thuyết cho H0 = {Markov} so với H1 = {Markov order 2}. Điều này có thể giúp đỡ.
Stéphane Laurent

Câu trả lời:


5

Tôi tự hỏi nếu sau đây sẽ cho một bài kiểm tra Pearson hợp lệ cho các tỷ lệ như sau.χ2

  1. Ước tính xác suất chuyển tiếp một bước - bạn đã thực hiện điều đó.
  2. Có được xác suất mô hình hai bước:
    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. Có được xác suất theo kinh nghiệm hai bước
    p~U,V=i#Xi=V,Xi+2=Ui#Xi=V
  4. Biểu mẫu thống kê kiểm tra Pearson
    TV=#{Xi=V}U(p^U,Vp~U,V)2p^U,V,T=TA+TB+TC+TD

Thật hấp dẫn đối với tôi khi nghĩ rằng mỗi , sao cho tổng . Tuy nhiên, tôi không hoàn toàn chắc chắn về điều đó, và sẽ đánh giá cao suy nghĩ của bạn về điều này. Tôi cũng không đồng ý về việc liệu người ta có cần phải hoang tưởng về sự độc lập hay không, và muốn chia mẫu thành hai nửa để ước tính và .TUχ32Tχ122p^p¯


Không có xác suất phải có phân phối bình thường với trung bình 0 và phương sai = 1 để giữ điều này? Tôi rất muốn biết những gì mọi người nghĩ ở đây.
HCAI

Đó là những gì các điều khoản trong tổng số được cho là, không có triệu chứng với số lượng lớn.
StasK

6

Tài sản Markov có thể khó kiểm tra trực tiếp. Nhưng nó có thể đủ để phù hợp với một mô hình giả định thuộc tính Markov và sau đó kiểm tra xem mô hình đó có giữ hay không. Nó có thể chỉ ra rằng mô hình được trang bị là một xấp xỉ tốt, rất hữu ích cho bạn trong thực tế và bạn không cần phải quan tâm liệu tài sản của Markov có thực sự nắm giữ hay không.

Các song song có thể được rút ra để hồi quy tuyến tính. Thực tế thông thường không phải là kiểm tra xem tuyến tính có giữ hay không, mà là mô hình tuyến tính có phải là một xấp xỉ hữu ích hay không.


Đây có vẻ là tùy chọn tốt nhất trong thực tế, chỉ có tôi thực sự không thể so sánh một mô hình tuyến tính với bất kỳ dữ liệu thử nghiệm thực tế nào. Hay bạn đã có một cái gì đó khác trong tâm trí?
HCAI

6

Để cụ thể hóa đề xuất của câu trả lời trước, trước tiên bạn muốn ước tính xác suất của Markov - giả sử đó là Markov. Xem trả lời tại đây Ước tính Xác suất Chuỗi Markov

Bạn sẽ nhận được một ma trận 4 x 4 dựa trên tỷ lệ chuyển từ trạng thái A đến A, A đến B vv Gọi ma trận này . M 2 sau đó phải là ma trận chuyển tiếp hai bước: A sang A trong 2 bước, v.v. Sau đó, bạn có thể kiểm tra xem ma trận chuyển tiếp 2 bước quan sát của bạn có giống với M 2 không .MM2M2

Vì bạn có rất nhiều dữ liệu cho số lượng trạng thái, bạn có thể ước tính từ một nửa dữ liệu và kiểm tra M 2 bằng nửa còn lại - bạn đang kiểm tra tần số quan sát dựa trên xác suất lý thuyết của đa quốc gia. Điều đó sẽ cho bạn một ý tưởng về việc bạn đang ở bao xa.MM2

Một khả năng khác là để xem liệu tỷ lệ trạng thái cơ bản: tỷ lệ thời gian dành cho A, thời gian dành cho B, có khớp với hàm riêng của giá trị riêng của đơn vị M. Nếu chuỗi của bạn đã đạt đến một trạng thái ổn định nào đó, tỷ lệ thời gian trong mỗi nhà nước nên có xu hướng đến giới hạn đó.


Có một chút gì đó để thực hiện. Tôi đã tính toán ma trận chuyển tiếp , nhưng tôi không chắc bạn sẽ tính toán M 2 theo kinh nghiệm như thế nào . Bạn có thể làm rõ điểm đó? Trân trọng,MM2
HCAI

Ngoài ra, nhận xét sau rất thú vị, mặc dù tôi không có thời gian ở mỗi trạng thái của các chuỗi được quan sát. Tôi chỉ có tổng thời gian cho mỗi hàng. Vì vậy, có thể hạn chế khả năng áp dụng của phương pháp đó. Quan điểm của bạn là gì?
HCAI

1
Làm điều đó giống như cách bạn đã làm M, chỉ thay vì nhìn vào các chuyển tiếp lân cận gần nhất, (giả sử, trình tự AB), nhìn vào các cặp cách nhau 2. Vì vậy, nếu một đối tượng đi vào ACB, điều đó sẽ được tính vào số lần chuyển tiếp AB của bạn. ABB cũng vậy. Tạo một ma trận trong đó mục trong hàng i, cột j chứa các chuyển đổi từ i đến j. Sau đó chia cho tổng số cột. Bạn muốn các cột có tổng bằng 1. Trong thuộc tính Markov, ma trận này phải gần với M2
Placidia

RE: cân bằng. Tôi đã giả định rằng các chuyển đổi xảy ra tại các thời điểm đã đặt - giả sử mỗi giây, bạn chuyển từ trạng thái hiện tại sang trạng thái tiếp theo. Bạn có thể lấy tần số của các trạng thái A, B, C và D ở gần cuối của chuỗi hoặc trên các chuỗi để ước tính hành vi giới hạn.
Placidia

Trong R, nếu bạn làm eigen (M), bạn sẽ nhận được giá trị riêng và hàm riêng của M. Một giá trị riêng sẽ là 1. Trình xác định tương ứng phải tỷ lệ thuận với tỷ lệ trạng thái ổn định của bạn .... nếu Markov.
Placidia

2

Ngoài Markov Property (MP), một thuộc tính nữa là Time Homogeneity (TH): có thể là Markov nhưng với ma trận chuyển tiếp P ( t ) tùy thuộc vào thời gian t . Ví dụ, nó có thể phụ thuộc vào các ngày trong tuần tại t nếu quan sát được hàng ngày, và sau đó một sự phụ thuộc X t trên X t - 7 điều kiện trên X t - 1 có thể được chẩn đoán nếu TH là quá mức giả định.XtP(t)ttXtXt7Xt1

Giả sử TH giữ, một kiểm tra khả dĩ cho MP đang kiểm tra xem độc lập với X t - 2 có điều kiện trên X t - 1 , như Michael Chernick và StasK đề xuất. Điều này có thể được thực hiện bằng cách sử dụng một bài kiểm tra cho bảng dự phòng. Chúng ta có thể xây dựng n bảng dự phòng của X tX t - 2 có điều kiện trên { X t - 1 = x j } cho n giá trị có thể x jXtXt2Xt1nXtXt2{Xt1=xj}nxjvà kiểm tra tính độc lập Đây cũng có thể được thực hiện bằng với > 1 ở vị trí của X t - 2 .Xt>1Xt2

Trong R, các bảng hoặc mảng dự phòng dễ dàng được tạo ra nhờ vào cơ sở nhân tố và các hàm apply, sweep. Ý tưởng trên cũng có thể được khai thác bằng đồ họa. Các gói ggplot2 hoặc mạng dễ dàng cung cấp các ô có điều kiện để so sánh các phân phối có điều kiện . Ví dụ, đặt i làm chỉ mục hàng và jp(Xt|Xt1=xj,Xt2=xi)ij vì chỉ mục cột trong lưới mắt cáo nên theo MP dẫn đến các phân phối tương tự trong một cột.

Các chap. 5 của cuốn sách Phân tích thống kê về các quá trình ngẫu nhiên theo thời gian của JK Lindsey chứa các ý tưởng khác để kiểm tra các giả định.

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

Tôi nghĩ rằng placida và mpiktas đều đã đưa ra những cách tiếp cận rất chu đáo và tuyệt vời.

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

xyzzyxzyxxyxx

Sau đó, thống kê kiểm tra sẽ là sự khác biệt giữa các tỷ lệ ước tính này. Sự phức tạp để so sánh tiêu chuẩn của trình tự Bernoulli là chúng có mối tương quan với nhau. Nhưng bạn có thể làm một bài kiểm tra bootstrap về tỷ lệ nhị thức trong trường hợp này.

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])

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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.