I have a vector of observations Y. I do not know the state sequence of the latents. I wish to find the the transistion and emission matrices hence I want Baum-Welch.
My Min Working example is here:
T = 1000; % Number of timestepsY= 1000+cumsum(randn(T,1));K = 200; %number of statesbeta = 0.5;TRGUESS = get_stateTransitionMatrix(K, beta); %flat start modelN = 2;EMITGUESS = (1/N) .* ones(K,N);[TRANS,EMIS] = hmmtrain(Y,TRGUESS,EMITGUESS);function TRGUESS = get_stateTransitionMatrix(K, beta)TRGUESS = beta.*eye(K,K);for i=1:Kfor j=1:Kif (TRGUESS(i,j)==0)TRGUESS(i,j) = (1-beta)/(K-1);endendendend
On running this I get:
Error using hmmdecode (line 100)SEQ must consist of integers between 1 and 1.Error in hmmtrain (line 213)[~,logPseq,fs,bs,scale] = hmmdecode(seq,guessTR,guessE);
I fear I have misunderstood the hmmtrain documentation. Can anyone help?
(using 2012A and all the toolboxes)