22 | | <a name="l00016"></a>00016 <span class="preprocessor">#include <itpp/itbase.h></span> |
23 | | <a name="l00017"></a>00017 <span class="preprocessor">#include "../stat/libFN.h"</span> |
24 | | <a name="l00018"></a>00018 <span class="preprocessor">#include "../stat/libEF.h"</span> |
25 | | <a name="l00019"></a>00019 |
26 | | <a name="l00020"></a>00020 <span class="keyword">namespace </span>bdm{ |
27 | | <a name="l00021"></a>00021 |
28 | | <a name="l00036"></a><a class="code" href="classbdm_1_1ARX.html">00036</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a> { |
29 | | <a name="l00037"></a>00037 <span class="keyword">protected</span>: |
30 | | <a name="l00039"></a><a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026">00039</a> <a class="code" href="classbdm_1_1egiw.html" title="Gauss-inverse-Wishart density stored in LD form.">egiw</a> <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>; |
31 | | <a name="l00041"></a><a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd">00041</a> <a class="code" href="classldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> &<a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a>; |
32 | | <a name="l00043"></a><a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f">00043</a> <span class="keywordtype">double</span> &<a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a>; |
33 | | <a name="l00044"></a>00044 <span class="keyword">public</span>: |
34 | | <a name="l00046"></a><a class="code" href="classbdm_1_1ARX.html#44914d0b259204b3446db82b989bd626">00046</a> <a class="code" href="classbdm_1_1ARX.html#44914d0b259204b3446db82b989bd626" title="Full constructor.">ARX</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &<a class="code" href="classbdm_1_1BM.html#18d6db4af8ee42077741d9e3618153ca" title="Random variable of the posterior.">rv</a>, <span class="keyword">const</span> mat &V0, <span class="keyword">const</span> <span class="keywordtype">double</span> &nu0, <span class="keyword">const</span> <span class="keywordtype">double</span> frg0=1.0 ) : <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a> ( rv,frg0 ),<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a> ( rv,V0,nu0 ), <a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a> ( <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>._V() ), <a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a> ( <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>._nu() ) |
35 | | <a name="l00047"></a>00047 {<a class="code" href="classbdm_1_1BMEF.html#06e7b3ac03e10017d4288c76888e2865" title="cached value of lognc() in the previous step (used in evaluation of ll )">last_lognc</a>=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#41d72ba7b2abc8a9a4209ffa98ed5633" title="logarithm of the normalizing constant, ">lognc</a>();}; |
36 | | <a name="l00048"></a>00048 |
37 | | <a name="l00050"></a><a class="code" href="classbdm_1_1ARX.html#73a55a3d66bfbeeee4df6c2ae40920ed">00050</a> <a class="code" href="classbdm_1_1ARX.html#44914d0b259204b3446db82b989bd626" title="Full constructor.">ARX</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a> &A0 ) : <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a> ( A0),<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a> ( <a class="code" href="classbdm_1_1BM.html#18d6db4af8ee42077741d9e3618153ca" title="Random variable of the posterior.">rv</a>,A0.<a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a>,A0.<a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a> ), <a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a> ( <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>._V() ), <a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a> ( <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>._nu() ) {}; |
38 | | <a name="l00051"></a>00051 |
39 | | <a name="l00053"></a>00053 <a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>* <a class="code" href="classbdm_1_1ARX.html#20ff2de8d862f28de7da83444d65bcdb" title="Auxiliary function.">_copy_</a>(<span class="keywordtype">bool</span> changerv=<span class="keyword">false</span>); |
40 | | <a name="l00054"></a>00054 |
41 | | <a name="l00055"></a>00055 <span class="comment">// //! Set parameters given by moments, \c mu (mean of theta), \c R (mean of R) and \c C (variance of theta)</span> |
42 | | <a name="l00056"></a>00056 <span class="comment">// void set_parameters ( const vec &mu, const mat &R, const mat &C, double dfm){};</span> |
43 | | <a name="l00058"></a><a class="code" href="classbdm_1_1ARX.html#cab0a1de5355b1027d24fd3d4862c9b0">00058</a> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#cab0a1de5355b1027d24fd3d4862c9b0" title="Set sufficient statistics.">set_parameters</a> ( <span class="keyword">const</span> <a class="code" href="classldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> &V0, <span class="keyword">const</span> <span class="keywordtype">double</span> &nu0 ) |
44 | | <a name="l00059"></a>00059 {<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#15792f3112e5cf67d572f491b09324c8" title="returns a pointer to the internal statistics. Use with Care!">_V</a>() =V0;<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#a025ee710274ca142dd0ae978735ad4a" title="returns a pointer to the internal statistics. Use with Care!">_nu</a>() =nu0;<a class="code" href="classbdm_1_1BMEF.html#06e7b3ac03e10017d4288c76888e2865" title="cached value of lognc() in the previous step (used in evaluation of ll )">last_lognc</a>=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#41d72ba7b2abc8a9a4209ffa98ed5633" title="logarithm of the normalizing constant, ">lognc</a>();} |
45 | | <a name="l00060"></a>00060 <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#539f9d0127423c94b912708d390e67b8" title="get statistics from another model">set_statistics</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a>* BM0 ); |
46 | | <a name="l00062"></a><a class="code" href="classbdm_1_1ARX.html#1974409e022ea1efb3404b5c2fde66ad">00062</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#1974409e022ea1efb3404b5c2fde66ad" title="Returns sufficient statistics.">get_parameters</a> ( mat &V0, <span class="keywordtype">double</span> &nu0 ) {V0=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#15792f3112e5cf67d572f491b09324c8" title="returns a pointer to the internal statistics. Use with Care!">_V</a>().<a class="code" href="classldmat.html#2c1ebc071de4bafbba55b80afd8a7e8e" title="Conversion to full matrix.">to_mat</a>(); nu0=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#a025ee710274ca142dd0ae978735ad4a" title="returns a pointer to the internal statistics. Use with Care!">_nu</a>();} |
47 | | <a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#17e7fe14654ab3c449846c3f43e66169" title="Here .">bayes</a> ( <span class="keyword">const</span> vec &dt, <span class="keyword">const</span> <span class="keywordtype">double</span> w ); |
48 | | <a name="l00065"></a><a class="code" href="classbdm_1_1ARX.html#8bdf2974052e8ce74eb0d4f3791c58a3">00065</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#17e7fe14654ab3c449846c3f43e66169" title="Here .">bayes</a> ( <span class="keyword">const</span> vec &dt ) {<a class="code" href="classbdm_1_1ARX.html#17e7fe14654ab3c449846c3f43e66169" title="Here .">bayes</a> ( dt,1.0 );}; |
49 | | <a name="l00066"></a><a class="code" href="classbdm_1_1ARX.html#16797df43f85f1ddbe9d64fd6d82c25d">00066</a> <span class="keyword">const</span> <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>& <a class="code" href="classbdm_1_1ARX.html#16797df43f85f1ddbe9d64fd6d82c25d" title="Returns a reference to the epdf representing posterior density on parameters.">_epdf</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>;} |
50 | | <a name="l00067"></a>00067 <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1ARX.html#080a7e531e3aa06694112863b15bc6a4">logpred</a> ( <span class="keyword">const</span> vec &dt ) <span class="keyword">const</span>; |
51 | | <a name="l00068"></a><a class="code" href="classbdm_1_1ARX.html#e86ab499b116b837d3163ec852961eca">00068</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#e86ab499b116b837d3163ec852961eca" title="Flatten the posterior according to the given BMEF (of the same type!).">flatten</a> (<span class="keyword">const</span> <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a>* B ) { |
52 | | <a name="l00069"></a>00069 <span class="keyword">const</span> <a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>* A=<span class="keyword">dynamic_cast<</span><span class="keyword">const </span><a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>*<span class="keyword">></span>(B); |
53 | | <a name="l00070"></a>00070 <span class="comment">// nu should be equal to B.nu</span> |
54 | | <a name="l00071"></a>00071 <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#8e610e95401a11baf34f65e16ecd87be" title="Power of the density, used e.g. to flatten the density.">pow</a> ( A-><a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a>/<a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a>); |
55 | | <a name="l00072"></a>00072 <span class="keywordflow">if</span>(<a class="code" href="classbdm_1_1BM.html#faff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a>){<a class="code" href="classbdm_1_1BMEF.html#06e7b3ac03e10017d4288c76888e2865" title="cached value of lognc() in the previous step (used in evaluation of ll )">last_lognc</a>=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#41d72ba7b2abc8a9a4209ffa98ed5633" title="logarithm of the normalizing constant, ">lognc</a>();} |
56 | | <a name="l00073"></a>00073 } |
57 | | <a name="l00075"></a>00075 <a class="code" href="classbdm_1_1enorm.html" title="Gaussian density with positive definite (decomposed) covariance matrix.">enorm<ldmat></a>* <a class="code" href="classbdm_1_1ARX.html#7c8d1fe774fe1da50293d50ad8aef43d" title="Conditional version of the predictor.">predictor</a>(<span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv0, <span class="keyword">const</span> vec &rgr) <span class="keyword">const</span>; |
58 | | <a name="l00076"></a><a class="code" href="classbdm_1_1ARX.html#5b73b70457f49ce4ad8660d729172dfd">00076</a> <a class="code" href="classbdm_1_1enorm.html" title="Gaussian density with positive definite (decomposed) covariance matrix.">enorm<ldmat></a>* <a class="code" href="classbdm_1_1ARX.html#7c8d1fe774fe1da50293d50ad8aef43d" title="Conditional version of the predictor.">predictor</a>(<span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv0)<span class="keyword"> const </span>{it_assert_debug(rv0.<a class="code" href="classbdm_1_1RV.html#2174751a00ce19f941edd2c1a861be67" title="Return number of scalars in the RV.">count</a>()==<a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a>.<a class="code" href="group__math.html#g96dfb21865db4f5bd36fa70f9b0b1163" title="access function">rows</a>()-1,<span class="stringliteral">"Regressor is not only 1"</span>);<span class="keywordflow">return</span> <a class="code" href="classbdm_1_1ARX.html#7c8d1fe774fe1da50293d50ad8aef43d" title="Conditional version of the predictor.">predictor</a>(rv0,vec_1(1.0));} |
59 | | <a name="l00077"></a>00077 <a class="code" href="classbdm_1_1mlnorm.html" title="Normal distributed linear function with linear function of mean value;.">mlnorm<ldmat></a>* <a class="code" href="classbdm_1_1ARX.html#7c8d1fe774fe1da50293d50ad8aef43d" title="Conditional version of the predictor.">predictor</a>(<span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv0, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rvc0) <span class="keyword">const</span>; |
| 23 | <a name="l00016"></a>00016 <span class="preprocessor">#include "../stat/libFN.h"</span> |
| 24 | <a name="l00017"></a>00017 <span class="preprocessor">#include "../stat/libEF.h"</span> |
| 25 | <a name="l00018"></a>00018 |
| 26 | <a name="l00019"></a>00019 <span class="keyword">namespace </span>bdm{ |
| 27 | <a name="l00020"></a>00020 |
| 28 | <a name="l00035"></a><a class="code" href="classbdm_1_1ARX.html">00035</a> <span class="keyword">class </span><a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>: <span class="keyword">public</span> <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a> { |
| 29 | <a name="l00036"></a>00036 <span class="keyword">protected</span>: |
| 30 | <a name="l00038"></a><a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026">00038</a> <a class="code" href="classbdm_1_1egiw.html" title="Gauss-inverse-Wishart density stored in LD form.">egiw</a> <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>; |
| 31 | <a name="l00040"></a><a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd">00040</a> <a class="code" href="classldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> &<a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a>; |
| 32 | <a name="l00042"></a><a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f">00042</a> <span class="keywordtype">double</span> &<a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a>; |
| 33 | <a name="l00043"></a>00043 <span class="keyword">public</span>: |
| 34 | <a name="l00045"></a><a class="code" href="classbdm_1_1ARX.html#44914d0b259204b3446db82b989bd626">00045</a> <a class="code" href="classbdm_1_1ARX.html#44914d0b259204b3446db82b989bd626" title="Full constructor.">ARX</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &<a class="code" href="classbdm_1_1BM.html#18d6db4af8ee42077741d9e3618153ca" title="Random variable of the posterior.">rv</a>, <span class="keyword">const</span> mat &V0, <span class="keyword">const</span> <span class="keywordtype">double</span> &nu0, <span class="keyword">const</span> <span class="keywordtype">double</span> frg0=1.0 ) : <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a> ( rv,frg0 ),<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a> ( rv,V0,nu0 ), <a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a> ( <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>._V() ), <a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a> ( <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>._nu() ) |
| 35 | <a name="l00046"></a>00046 {<a class="code" href="classbdm_1_1BMEF.html#06e7b3ac03e10017d4288c76888e2865" title="cached value of lognc() in the previous step (used in evaluation of ll )">last_lognc</a>=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#41d72ba7b2abc8a9a4209ffa98ed5633" title="logarithm of the normalizing constant, ">lognc</a>();}; |
| 36 | <a name="l00047"></a>00047 |
| 37 | <a name="l00049"></a><a class="code" href="classbdm_1_1ARX.html#73a55a3d66bfbeeee4df6c2ae40920ed">00049</a> <a class="code" href="classbdm_1_1ARX.html#44914d0b259204b3446db82b989bd626" title="Full constructor.">ARX</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a> &A0 ) : <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a> ( A0),<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a> ( <a class="code" href="classbdm_1_1BM.html#18d6db4af8ee42077741d9e3618153ca" title="Random variable of the posterior.">rv</a>,A0.<a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a>,A0.<a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a> ), <a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a> ( <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>._V() ), <a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a> ( <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>._nu() ) {}; |
| 38 | <a name="l00050"></a>00050 |
| 39 | <a name="l00052"></a>00052 <a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>* <a class="code" href="classbdm_1_1ARX.html#20ff2de8d862f28de7da83444d65bcdb" title="Auxiliary function.">_copy_</a>(<span class="keywordtype">bool</span> changerv=<span class="keyword">false</span>); |
| 40 | <a name="l00053"></a>00053 |
| 41 | <a name="l00054"></a>00054 <span class="comment">// //! Set parameters given by moments, \c mu (mean of theta), \c R (mean of R) and \c C (variance of theta)</span> |
| 42 | <a name="l00055"></a>00055 <span class="comment">// void set_parameters ( const vec &mu, const mat &R, const mat &C, double dfm){};</span> |
| 43 | <a name="l00057"></a><a class="code" href="classbdm_1_1ARX.html#cab0a1de5355b1027d24fd3d4862c9b0">00057</a> <span class="comment"></span> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#cab0a1de5355b1027d24fd3d4862c9b0" title="Set sufficient statistics.">set_parameters</a> ( <span class="keyword">const</span> <a class="code" href="classldmat.html" title="Matrix stored in LD form, (commonly known as UD).">ldmat</a> &V0, <span class="keyword">const</span> <span class="keywordtype">double</span> &nu0 ) |
| 44 | <a name="l00058"></a>00058 {<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#15792f3112e5cf67d572f491b09324c8" title="returns a pointer to the internal statistics. Use with Care!">_V</a>() =V0;<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#a025ee710274ca142dd0ae978735ad4a" title="returns a pointer to the internal statistics. Use with Care!">_nu</a>() =nu0;<a class="code" href="classbdm_1_1BMEF.html#06e7b3ac03e10017d4288c76888e2865" title="cached value of lognc() in the previous step (used in evaluation of ll )">last_lognc</a>=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#41d72ba7b2abc8a9a4209ffa98ed5633" title="logarithm of the normalizing constant, ">lognc</a>();} |
| 45 | <a name="l00059"></a>00059 <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#539f9d0127423c94b912708d390e67b8" title="get statistics from another model">set_statistics</a> ( <span class="keyword">const</span> <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a>* BM0 ); |
| 46 | <a name="l00061"></a><a class="code" href="classbdm_1_1ARX.html#1974409e022ea1efb3404b5c2fde66ad">00061</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#1974409e022ea1efb3404b5c2fde66ad" title="Returns sufficient statistics.">get_parameters</a> ( mat &V0, <span class="keywordtype">double</span> &nu0 ) {V0=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#15792f3112e5cf67d572f491b09324c8" title="returns a pointer to the internal statistics. Use with Care!">_V</a>().<a class="code" href="classldmat.html#2c1ebc071de4bafbba55b80afd8a7e8e" title="Conversion to full matrix.">to_mat</a>(); nu0=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#a025ee710274ca142dd0ae978735ad4a" title="returns a pointer to the internal statistics. Use with Care!">_nu</a>();} |
| 47 | <a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#17e7fe14654ab3c449846c3f43e66169" title="Here .">bayes</a> ( <span class="keyword">const</span> vec &dt, <span class="keyword">const</span> <span class="keywordtype">double</span> w ); |
| 48 | <a name="l00064"></a><a class="code" href="classbdm_1_1ARX.html#8bdf2974052e8ce74eb0d4f3791c58a3">00064</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#17e7fe14654ab3c449846c3f43e66169" title="Here .">bayes</a> ( <span class="keyword">const</span> vec &dt ) {<a class="code" href="classbdm_1_1ARX.html#17e7fe14654ab3c449846c3f43e66169" title="Here .">bayes</a> ( dt,1.0 );}; |
| 49 | <a name="l00065"></a><a class="code" href="classbdm_1_1ARX.html#16797df43f85f1ddbe9d64fd6d82c25d">00065</a> <span class="keyword">const</span> <a class="code" href="classbdm_1_1epdf.html" title="Probability density function with numerical statistics, e.g. posterior density.">epdf</a>& <a class="code" href="classbdm_1_1ARX.html#16797df43f85f1ddbe9d64fd6d82c25d" title="Returns a reference to the epdf representing posterior density on parameters.">_epdf</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>;} |
| 50 | <a name="l00066"></a>00066 <span class="keywordtype">double</span> <a class="code" href="classbdm_1_1ARX.html#080a7e531e3aa06694112863b15bc6a4">logpred</a> ( <span class="keyword">const</span> vec &dt ) <span class="keyword">const</span>; |
| 51 | <a name="l00067"></a><a class="code" href="classbdm_1_1ARX.html#e86ab499b116b837d3163ec852961eca">00067</a> <span class="keywordtype">void</span> <a class="code" href="classbdm_1_1ARX.html#e86ab499b116b837d3163ec852961eca" title="Flatten the posterior according to the given BMEF (of the same type!).">flatten</a> (<span class="keyword">const</span> <a class="code" href="classbdm_1_1BMEF.html" title="Estimator for Exponential family.">BMEF</a>* B ) { |
| 52 | <a name="l00068"></a>00068 <span class="keyword">const</span> <a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>* A=<span class="keyword">dynamic_cast<</span><span class="keyword">const </span><a class="code" href="classbdm_1_1ARX.html" title="Linear Autoregressive model with Gaussian noise.">ARX</a>*<span class="keyword">></span>(B); |
| 53 | <a name="l00069"></a>00069 <span class="comment">// nu should be equal to B.nu</span> |
| 54 | <a name="l00070"></a>00070 <a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#8e610e95401a11baf34f65e16ecd87be" title="Power of the density, used e.g. to flatten the density.">pow</a> ( A-><a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a>/<a class="code" href="classbdm_1_1ARX.html#740b0582f180ba13cae91d66e9bdb67f" title="cached value of est.nu">nu</a>); |
| 55 | <a name="l00071"></a>00071 <span class="keywordflow">if</span>(<a class="code" href="classbdm_1_1BM.html#faff0ad12556fe7dc0e2807d4fd938ee" title="If true, the filter will compute likelihood of the data record and store it in ll...">evalll</a>){<a class="code" href="classbdm_1_1BMEF.html#06e7b3ac03e10017d4288c76888e2865" title="cached value of lognc() in the previous step (used in evaluation of ll )">last_lognc</a>=<a class="code" href="classbdm_1_1ARX.html#11474a627367f81b76830cb8477cf026" title="Posterior estimate of in the form of Normal-inverse Wishart density.">est</a>.<a class="code" href="classbdm_1_1egiw.html#41d72ba7b2abc8a9a4209ffa98ed5633" title="logarithm of the normalizing constant, ">lognc</a>();} |
| 56 | <a name="l00072"></a>00072 } |
| 57 | <a name="l00074"></a>00074 <a class="code" href="classbdm_1_1enorm.html" title="Gaussian density with positive definite (decomposed) covariance matrix.">enorm<ldmat></a>* <a class="code" href="classbdm_1_1ARX.html#7c8d1fe774fe1da50293d50ad8aef43d" title="Conditioned version of the predictor.">predictor</a>(<span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv0, <span class="keyword">const</span> vec &rgr) <span class="keyword">const</span>; |
| 58 | <a name="l00075"></a><a class="code" href="classbdm_1_1ARX.html#5b73b70457f49ce4ad8660d729172dfd">00075</a> <a class="code" href="classbdm_1_1enorm.html" title="Gaussian density with positive definite (decomposed) covariance matrix.">enorm<ldmat></a>* <a class="code" href="classbdm_1_1ARX.html#7c8d1fe774fe1da50293d50ad8aef43d" title="Conditioned version of the predictor.">predictor</a>(<span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv0)<span class="keyword"> const </span>{it_assert_debug(rv0.<a class="code" href="classbdm_1_1RV.html#2174751a00ce19f941edd2c1a861be67" title="Return number of scalars in the RV.">count</a>()==<a class="code" href="classbdm_1_1ARX.html#de5b7d83ff5d3f5af2f80068db0abdfd" title="cached value of est.V">V</a>.<a class="code" href="group__math.html#g96dfb21865db4f5bd36fa70f9b0b1163" title="access function">rows</a>()-1,<span class="stringliteral">"Regressor is not only 1"</span>);<span class="keywordflow">return</span> <a class="code" href="classbdm_1_1ARX.html#7c8d1fe774fe1da50293d50ad8aef43d" title="Conditioned version of the predictor.">predictor</a>(rv0,vec_1(1.0));} |
| 59 | <a name="l00077"></a>00077 <a class="code" href="classbdm_1_1mlnorm.html" title="Normal distributed linear function with linear function of mean value;.">mlnorm<ldmat></a>* <a class="code" href="classbdm_1_1ARX.html#7c8d1fe774fe1da50293d50ad8aef43d" title="Conditioned version of the predictor.">predictor</a>(<span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rv0, <span class="keyword">const</span> <a class="code" href="classbdm_1_1RV.html" title="Class representing variables, most often random variables.">RV</a> &rvc0) <span class="keyword">const</span>; |