| 1 | classdef mexLaplaceBM < mexBM |
|---|
| 2 | % Approximate Bayesian estimator of parameters of Laplace distributed observation. |
|---|
| 3 | % Maximum likelihood approximation of the Bayes rule is used, posterior is in the form of dirac. |
|---|
| 4 | properties |
|---|
| 5 | max_window_length = 10; % max window length (default = 10) |
|---|
| 6 | data_window =[]; % sliding window of data |
|---|
| 7 | end |
|---|
| 8 | methods |
|---|
| 9 | function obj=validate(obj) % prepare all internal objects for use |
|---|
| 10 | obj.apost_pdf = mexDirac; |
|---|
| 11 | obj.apost_pdf.point = [0;0]; |
|---|
| 12 | obj.log_evidence = 0; % evidence is not computed! |
|---|
| 13 | end |
|---|
| 14 | |
|---|
| 15 | function dims=dimensions(obj) |
|---|
| 16 | %please fill: dims = [size_of_posterior size_of_data size_of_condition] |
|---|
| 17 | dims = [2,1,0] % we have: [2d parameters, 1d observations, 0d condition] |
|---|
| 18 | end |
|---|
| 19 | function obj=bayes(obj,dt,cond) % approximate bayes rule |
|---|
| 20 | if size(obj.data_window,2)>=obj.max_window_length |
|---|
| 21 | obj.data_window = [dt obj.data_window(1:end-1)]; |
|---|
| 22 | else |
|---|
| 23 | obj.data_window = [dt obj.data_window]; |
|---|
| 24 | end |
|---|
| 25 | % transform old estimate into new estimate |
|---|
| 26 | m_hat = mean(obj.data_window); |
|---|
| 27 | b_hat = sum(abs(obj.data_window-m_hat))/ size(obj.data_window,2); |
|---|
| 28 | obj.apost_pdf.point = [m_hat; b_hat]; % store result in psoterior pdf |
|---|
| 29 | end |
|---|
| 30 | function p=epredictor(obj,cond) % when predictive density is needed approximate it by Laplace with point estimates |
|---|
| 31 | % return predictive density (max likelihood) |
|---|
| 32 | p = mexLaplace; |
|---|
| 33 | p.mu = obj.apost_pdf.point(1); |
|---|
| 34 | p.b = obj.apost_pdf.point(2); |
|---|
| 35 | % do not forget to validate |
|---|
| 36 | p=p.validate; |
|---|
| 37 | % assign descriptions |
|---|
| 38 | p.rv = yrv; |
|---|
| 39 | % rvc is empty be default |
|---|
| 40 | end |
|---|
| 41 | end |
|---|
| 42 | |
|---|
| 43 | end |
|---|