我正试图在脑电信号上运行Baum-Welch。我对值进行了舍入,因此我可以假装它是一个离散信号,只是为了简化。所以我有一个圆形eeg柱和一个医生评分睡眠阶段。 像这样:
医生eeg1 Wake 10
2 Wake 13
3 Wake 16
4 Wake 18
我的代码在这里:
y = data$eeg
states = c("NonREM1", "NonREM2", "NonREM3", "REM", "Wake")
start_p = c(NonREM1 = 0,NonREM2 = 0,NonREM3 = 0, REM = 0, Wake = 1)
library(markovchain)
trans_p <- markovchainFit(data$doctor)$estimate
sleep.values <- unique(data[2])
hmm = initHMM(states, Symbols = sleep.values, startProbs=start_p,
transProbs=trans_p)
baumWelch(hmm, observation = y, maxIterations=100, delta=1E-9,
pseudoCount=0)
我似乎也未能输入排放概率矩阵,因此我将其留空。当我填写它时,我得到
E [,]&lt; - emissionProbs [,]中的错误: 要替换的项目数量不是替换长度的倍数
有人可以向我解释有什么问题吗?整个下午我都被困在这里。 :\