1 function log_likelihood = total_model_log_likelihood(X, model)
\r
3 log_likelihood_vect = zeros(n, 1);
\r
4 for i=1:size(X.obs, 2)
\r
5 log_likelihood_vect(i) = log(model_likelihood(X.obs(i).obs, model));
\r
7 log_likelihood = sum(log_likelihood_vect);
\r
9 % To compute the model likelihood for a single observation, we add together
\r
10 % the probabilities of each of the underlying Markov Chains multiplied by
\r
12 %function likelihood = model_likelihood(observation, model)
\r
14 %likelihood_vect = zeros(model.num_mcs, 1);
\r
15 %for i=1:model.num_mcs
\r
16 % likelihood_vect(i) = model.priors(i) * chain_likelihood(observation, model.chain(i));
\r
19 %likelihood = sum(likelihood_vect);
\r
21 % The likelihood of the observation for a single Markov Chain
\r
22 %function likelihood = chain_likelihood(observation, mc)
\r
23 %likelihood = mc.t(observation(1));
\r
24 %for i=2:size(observation, 2)
\r
25 % likelihood = likelihood * mc.T(observation(i-1), observation(i));
\r