Merge git://repo.or.cz/mlfp
[mlfp.git] / matlab / total_model_log_likelihood.m
blob79327cf7f33a43866c9edc31205be6c739595f9f
1 function log_likelihood = total_model_log_likelihood(X, model)\r
2 n = size(X.obs, 2);\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
6 end\r
7 log_likelihood = sum(log_likelihood_vect);\r
8 \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
11 % their priors.\r
12 %function likelihood = model_likelihood(observation, model)\r
13 %likelihood = 0;\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
17 %end\r
18 %likelihood_vect;\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
26 %end