给定时间序列,估计 MC 转换矩阵的常用方法是什么?
是否有 R 函数可以做到这一点?
给定时间序列,估计 MC 转换矩阵的常用方法是什么?
是否有 R 函数可以做到这一点?
由于时间序列是离散值的,您可以通过样本比例估计转移概率。让成为当时的过程状态,那么是转移矩阵
由于这是一个马尔可夫链,这个概率只取决于,所以可以通过样本比例来估计。让是进程从状态移动的次数到. 然后,
在哪里是可能的状态数(在你的情况下)。分母,, 是离开状态的总次数. 以这种方式估计条目实际上对应于转移矩阵的最大似然估计量,将结果视为多项式,条件为.
编辑:这确实假设您以均匀间隔观察到时间序列。否则,转移概率也将取决于时间滞后(即使它们仍然是马尔可夫)。
假设您的时间序列是固定的,这非常好:
简化宏的优秀答案
在这里,您有 5 个状态的时间序列:A、B、C、D、E
AAAEDDDCBEEEDBADBECADAAAACCCDDE
您只需要先计算转换: - 离开 A:9 个转换在这 9 个转换中,5 个是 A->A,0 个 A->B,1 个 A->C,2 个 A->D,1 个 A->E所以你的转移概率矩阵的第一行是 [5/9 0 1/9 2/9 1/9]
您对每个状态进行计数,然后获得 5x5 矩阵。
markovchain 包中的函数 markovchainFit 处理您的问题。