ตรวจสอบคุณสมบัติความจำของลูกโซ่มาร์คอฟ


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=(1.0000000000.2283000000.1344000000.11360.0430i000000.1136+0.0430i)

eigenvectors ของ 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)

คอลัมน์มีชุดและแถวองค์ประกอบของลำดับหรือไม่ จำนวนแถวและคอลัมน์ที่สังเกตคืออะไร
mpiktas

2
สำเนาซ้ำที่เป็นไปได้: stats.stackexchange.com/questions/29490/…
mpiktas

@mpiktas แถวแสดงลำดับการสังเกตที่เป็นอิสระของการเปลี่ยนผ่านสถานะ AD มี 400 ลำดับ ... จำไว้ว่าลำดับที่สังเกตไม่ได้มีความยาวเท่ากันทั้งหมด ในความเป็นจริงเมทริกซ์ข้างต้นในหลายกรณีถูกเติมด้วยศูนย์ ขอบคุณสำหรับลิงค์ข้างทาง ดูเหมือนว่ายังมีพื้นที่เหลือเฟือสำหรับการทำงานในสาขานี้ คุณมีความคิดอื่น ๆ อีกหรือไม่? ขอแสดงความนับถือ
HCAI

1
การถดถอยเชิงเส้นเป็นตัวอย่างเพื่อเสริมจุดของการโต้แย้งของฉัน นั่นคือคุณอาจไม่จำเป็นต้องทดสอบคุณสมบัติมาร์คอฟโดยตรงคุณเพียงแค่ต้องติดตั้งโมเด็มที่ถือว่าคุณสมบัติมาร์คอฟแล้วตรวจสอบความถูกต้องของแบบจำลอง
mpiktas

1
ฉันจำได้ว่าฉันได้เห็นการทดสอบสมมติฐานสำหรับ H0 = {Markov} เทียบกับ H1 = {ลำดับ Markov 2} สิ่งนี้จะช่วยได้
Stéphane Laurent

คำตอบ:


5

ฉันสงสัยว่าต่อไปนี้จะให้ถูกต้องเพียร์สันทดสอบสัดส่วนดังต่อไปนี้χ2

  1. ประเมินความน่าจะเป็นในการเปลี่ยนแปลงแบบขั้นตอนเดียว - คุณทำเสร็จแล้ว
  2. ได้รับความน่าจะเป็นรูปแบบขั้นตอนที่สอง: P U , V = P R o [ X ฉัน+ 2 = U | X i = V ] = W { A , B , C , D } P r o b [ X i + 2 = U | X i + 1 = W ] P r
    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. รูปแบบเพียร์สันสถิติทดสอบ
    TV=#{Xi=V}U(p^U,Vp~U,V)2p^U,V,T=TA+TB+TC+TD

มันเป็นที่ดึงดูดสำหรับผมที่จะคิดว่าแต่ละเพื่อให้รวมT ~ χ 2 12 อย่างไรก็ตามฉันไม่แน่ใจอย่างนั้นทั้งหมดและจะขอบคุณความคิดของคุณในเรื่องนี้ ผมไม่ได้เหมือนกันไม่ร่วม sertain เกี่ยวกับว่าหนึ่งจะต้องหวาดระแวงเกี่ยวกับความเป็นอิสระและต้องการที่จะแยกตัวอย่างในครึ่งในการประมาณการPTUχ32Tχ122p^และp¯พี


ความน่าจะเป็นไม่จำเป็นต้องมีการแจกแจงแบบปกติที่มีค่าเฉลี่ย 0 และความแปรปรวน = 1 สำหรับค่านี้หรือไม่ ฉันสนใจมากที่จะรู้ว่ามีใครคิดอย่างไรกับที่นี่
HCAI

นั่นคือสิ่งที่เงื่อนไขในผลรวมที่ควรจะเป็น asymptotically กับการนับจำนวนมาก
StasK

6

คุณสมบัติมาร์คอฟอาจทดสอบได้ยาก แต่มันอาจจะเพียงพอที่จะปรับให้เข้ากับแบบจำลองซึ่งถือว่าคุณสมบัติของมาร์คอฟแล้วทดสอบว่าตัวแบบนั้นบรรจุอยู่หรือไม่ มันอาจกลายเป็นว่าโมเดลที่ได้รับการติดตั้งนั้นเป็นการประมาณที่ดีซึ่งมีประโยชน์สำหรับคุณในทางปฏิบัติและคุณไม่จำเป็นต้องกังวลว่าทรัพย์สินของมาร์คอฟนั้นมีอยู่จริงหรือไม่

สามารถวาดเส้นขนานไปที่การถดถอยเชิงเส้น การปฏิบัติตามปกติไม่ได้เป็นการทดสอบว่ามีลิเนียร์ตี้ตี้อยู่หรือไม่ แต่โมเดลเชิงเส้นนั้นมีประโยชน์ในการประมาณค่าหรือไม่


ดูเหมือนว่าตัวเลือกที่ดีที่สุดในความเป็นจริงมีเพียงฉันเท่านั้นที่ไม่สามารถเปรียบเทียบแบบจำลองเชิงเส้นกับข้อมูลการทดลองจริงใด ๆ หรือคุณมีอย่างอื่นในใจ?
HCAI

6

ในการสรุปข้อเสนอแนะของคำตอบก่อนหน้านี้ก่อนอื่นคุณต้องประเมินความน่าจะเป็นของมาร์คอฟ - โดยสมมติว่าเป็นมาร์คอฟ ดูคำตอบที่นี่การประมาณความน่าจะเป็นมาร์คอฟเชน

คุณควรจะได้รับ 4 x 4 เมทริกซ์ขึ้นอยู่กับสัดส่วนของการเปลี่ยนจากรัฐ A ถึง A, A ไป B ฯลฯ โทรเมทริกซ์นี้MM 2ควรเป็นเมทริกซ์การเปลี่ยนแปลงสองขั้นตอน: A ถึง A ใน 2 ขั้นตอนและอื่น ๆ จากนั้นคุณสามารถทดสอบว่าเมทริกซ์การเปลี่ยนแปลง 2 ขั้นตอนที่คุณสังเกตเห็นนั้นคล้ายกับM 2 หรือไม่MM2M2หรือไม่

เนื่องจากคุณมีข้อมูลจำนวนมากสำหรับจำนวนสถานะคุณสามารถประมาณจากครึ่งหนึ่งของข้อมูลและทดสอบMMM2โดยใช้อีกครึ่งหนึ่ง - คุณกำลังทดสอบความถี่ที่สังเกตได้จากความน่าจะเป็นเชิงทฤษฎีของมัลติโนเมียล นั่นควรจะให้ความคิดว่าคุณอยู่ไกลแค่ไหน

ความเป็นไปได้อีกอย่างก็คือดูว่าสัดส่วนสถานะพื้นฐาน: สัดส่วนเวลาที่ใช้ใน A, เวลาที่ใช้ใน B ตรงกับค่าลักษณะเฉพาะของหน่วยค่าลักษณะเฉพาะของ M หากชุดของคุณมีสถานะคงที่บางสัดส่วนสัดส่วนเวลาในแต่ละ รัฐควรมีแนวโน้มที่จะ จำกัด


MM2

นอกจากนี้ความคิดเห็นหลังนั้นน่าสนใจมากแม้ว่าฉันจะไม่ได้ใช้เวลาในแต่ละลำดับการสังเกตของฉัน ฉันมีเวลาทั้งหมดสำหรับแต่ละแถวเท่านั้น ดังนั้นอาจ จำกัด การบังคับใช้ของวิธีการนั้น คุณคิดยังไง?
HCAI

1
ทำแบบเดียวกับที่คุณทำใน M แทนที่จะมองดูการเปลี่ยนเพื่อนบ้านที่ใกล้ที่สุด (พูดลำดับซีบี) ดูคู่ที่ห่างกัน 2 อัน ดังนั้นหากหัวเรื่องไปที่ ACB นั่นจะนับเป็นการนับการเปลี่ยนแปลง AB ของคุณ ABB ก็เช่นกัน สร้างเมทริกซ์โดยที่ไอเท็มในแถว i, คอลัมน์ j มีการเปลี่ยนเป็น i เป็น j จากนั้นหารด้วยผลรวมคอลัมน์ คุณต้องการให้คอลัมน์รวมเป็น 1 ภายใต้คุณสมบัติมาร์คอฟเมทริกซ์นี้ควรอยู่ใกล้M2
Placidia

RE: equilibrium. I was assuming that the transitions occur at set moments - say every second, you transition from current state to next state. You could take the frequency of A, B, C, and D states near the ends of the sequences, or across sequences to estimate the limit behaviour.
Placidia

In R, if you do eigen(M), you should get the eigenvalues and eigenvectors of M. One eigenvalue will be 1. The corresponding eigenvector should be proportional to your steady state proportions .... if Markov.
Placidia

2

Beyond Markov Property (MP), a further property is Time Homogeneity (TH): Xt can be Markov but with its transition matrix P(t) depending on time t. E.g., it may depend on the weekday at t if observations are daily, and then a dependence Xt on Xt7 conditional on Xt1 may be diagnosed if TH is unduly assumed.

Assuming TH holds, a possible check for MP is testing that Xt is independent from Xt2 conditional on Xt1, as Michael Chernick and StasK suggested. This can be done by using a test for contingency table. We can build the n contingency tables of Xt and Xt2 conditional on {Xt1=xj} for the n possible values xj, and test for independence. This can also be done using Xt with >1 in place of Xt2.

In R, contingency tables or arrays are easily produced thanks to the factor facility and the functions apply, sweep. The idea above can also be exploited graphically. Packages ggplot2 or lattice easily provide conditional plots to compare conditional distributions p(Xt|Xt1=xj,Xt2=xi). For instance setting i as row index and j as column index in trellis should under MP lead to similar distributions within a column.

The chap. 5 of the book The statistical analysis of stochastic processes in time by J.K Lindsey contains other ideas for checking assumptions.

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

I think placida and mpiktas have both given very thoughtful and excellent approaches.

I am answering because I just want to add that one could construct a test to see if P(Xi=x|Xi1=y) is different from P(Xi=x|Xi1=y and Xi2=z).

I would pick values for x, y and z for which there are a large number of cases where the transition from z to y to x occurs. Compute sample estimates for both probabilities. Then test for difference in proportions. The difficult aspect of this is to get the variances of the two estimates under the null hypothesis that say the proportions are equal and the chain is stationary and Markov. In that case under the null hypothesis if we just look at all 2 stage transitions and compare them to their corresponding three stage transitions but only include outcomes where these sets of paired outcomes are separate by at least 2 time points then the sequence of joint outcomes where success is defined as a z to y to x transition and all other two stage transitions to x as failures represent a set of independent Bernoulli trials under the null hypothesis. The same would work for defining all y to x transitions as successes and other one stage transitions to x as failures.

Then the test statistic would be the difference between these estimated proportions. The complication to the standard comparison of the Bernoulli sequences is that they are correlated. But you could do a bootstrap test of binomial proportions in this case.

The other possibility is to construct a two by two table of the two stage and three stage paired outcomes where 0 is failure and 1 is success and the cell frequencies are counts for the pairs (0,0), (0,1), (1,0) and (1,1) where the first component is the two stage outcome and the second is the corresponding three stage outcome. You can then apply McNemar's test to the table.


I see what you are referring to here although I'm finding the first paragraph very terse however. For example "Compute sample estimates[...], then test for difference in proportions". What do you mean by sample estimates? Surely there would be no variance in
P(Xi|Xi1=y)
or am I misunderstanding your train of thought?
HCAI

@user1134241 You mentioned "empirically observed", I assumed that you have data from this stochastic sequence. If you want to estimate P(Xi=x|Xi1=y) for each index i-1 where Xi1=y, count the number of times Xi = x and divide it by the number of times Xi1 = y (regardless of what Xi equals). That is an estimate because the observed finite sequence is just a sample of a portion of a sequence of the stochastic process.
Michael R. Chernick

In your last paragraph, let me ask what constitute a success and exactly? In the case where you say a two-step transition: are you saying iji and a 3-step would be ijki?
HCAI

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.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.