-1
我有一个像数据在此如何计算二阶的转移概率矩阵马尔可夫链
Broker.Position的形式
IP BP SP IP IP ..
我想计算这种形式的二阶转换矩阵
BP IP SP
BPBP
SPSP
IPIP
黑花生衣色素
SPBP
IPSP
SPIP
BPIP
IPBP
我有一个像数据在此如何计算二阶的转移概率矩阵马尔可夫链
Broker.Position的形式
IP BP SP IP IP ..
我想计算这种形式的二阶转换矩阵
BP IP SP
BPBP
SPSP
IPIP
黑花生衣色素
SPBP
IPSP
SPIP
BPIP
IPBP
您可以使用embed
生成对连续过渡, table
算来, apply
计算总计和计数转换成概率, dcast
和melt
到数组转换成数据。帧。
# Sample data
states <- sample(LETTERS[1:3], 1e5, replace=TRUE)
# Pairs of transitions
d <- embed(states, 3)
colnames(d) <- c("today", "yesterday", "day before yesterday")
head(d)
# Count the transitions
counts <- table(as.data.frame(d))
# Divide by the total number of transitions, to have probabilities
probabilities <- counts
probabilities[] <- as.vector(counts)/rep(as.vector(apply(counts, 2:3, sum)), each=dim(counts)[1])
# Check that the probabilities sum up to 1
apply(probabilities, 2:3, sum)
# Convert the 3-dimensional array to a data.frame
library(reshape2)
dcast(melt(probabilities), yesterday + `day before yesterday` ~ today)
这可能是有用的链接:http://www.mathworks.com/matlabcentral/fileexchange/37322-multi-order-state-transition-matrix/content//getTransitionMatrix.m – dexterdev 2014-11-10 05:13:07