了解如何构建高阶马尔可夫链

understanding how to construct a higher order markov chain

假设我想预测一个人是 class1=healthy 还是 class2= fever。我有一个包含以下域的数据集:{normal,cold,dizzy}

转换矩阵将包含从我们的训练数据集生成的转换概率,而初始向量将包含一个人从域 {normal,cold,dizzy} 的状态 x 开始(第 1 天)的概率,这又是也是从我们的训练集中生成的。

如果我想构建一阶马尔可夫链,我会为每个 class 生成一个 3x3 转换矩阵和一个 1x3 初始向量,如下所示:

> TransitionMatrix
       normal cold dizzy
normal     NA   NA    NA
cold       NA   NA    NA
dizzy      NA   NA    NA

>Initial Vector
     normal cold dizzy
[1,]     NA   NA    NA

NA会被填充相应的概率

1-我的问题是关于高阶链中的转移矩阵。例如,在二阶 MC 中,我们会有一个大小为 domain²xdomain² 的转移矩阵,如下所示:

               normal->normal normal->cold normal->dizzy cold->normal cold->cold cold->dizzy dizzy->normal dizzy->cold dizzy->dizzy
normal->normal             NA           NA            NA           NA         NA          NA            NA          NA           NA
normal->cold               NA           NA            NA           NA         NA          NA            NA          NA           NA
normal->dizzy              NA           NA            NA           NA         NA          NA            NA          NA           NA
cold->normal               NA           NA            NA           NA         NA          NA            NA          NA           NA
cold->cold                 NA           NA            NA           NA         NA          NA            NA          NA           NA
cold->dizzy                NA           NA            NA           NA         NA          NA            NA          NA           NA
dizzy->normal              NA           NA            NA           NA         NA          NA            NA          NA           NA
dizzy->cold                NA           NA            NA           NA         NA          NA            NA          NA           NA
dizzy->dizzy               NA           NA            NA           NA         NA          NA            NA          NA           NA

此处单元格 (1,1) 表示以下序列:normal->normal->normal->normal

或者它会变成 domain²xdomain 像这样:

               normal cold dizzy
normal->normal     NA   NA    NA
normal->cold       NA   NA    NA
normal->dizzy      NA   NA    NA
cold->normal       NA   NA    NA
cold->cold         NA   NA    NA
cold->dizzy        NA   NA    NA
dizzy->normal      NA   NA    NA
dizzy->cold        NA   NA    NA
dizzy->dizzy       NA   NA    NA

这里的单元格(1,1)表示normal->normal->normal,与之前的表示不同

2-2 阶 MC 的初始向量如何?我们是否需要两个大小为 1xdomain 的初始向量,如下所示:

     normal cold dizzy
[1,]     NA   NA    NA

每个 class 产生两个初始向量。第一个给出 healthy/fever class 在第一天出现 {normal,cold,dizzy} 的概率,而第二个给出 healthy/fever 在第二天出现的概率。这将给出 4 个初始向量。

或者我们是否只需要一个大小为 1xdomain² 的初始向量,就像这样:

    normal->normal normal->cold normal->dizzy cold->normal cold->cold cold->dizzy dizzy->normal dizzy->cold dizzy->dizzy
[1,]             NA           NA            NA           NA         NA          NA            NA          NA           NA

如果我们想class只用一个状态来验证观察结果,我可以看出第二种表示初始向量的方法会有问题。

假设空格集是S。通常,在第n个顺序中,

  1. 转换矩阵的维度为 |S|n X |S|。这是因为给定当前 n 个状态历史,我们需要单个下一个状态的概率。的确,这个单一的下一个状态引发了历史的另一个复合状态 n,但过渡本身是到单一的下一个状态。参见 this example in Wikipedia,例如

  2. 初始分布是 |S|n 个元素的分布(您的第二个选项)。