用fit.m结果计算贝叶斯信息准则的MATLAB

时间:2016-07-23 11:52:20

标签: matlab bayesian

我正在尝试使用fit.m计算贝叶斯效应 根据维基百科,可以近似对数似然(当噪声为~N(0,sigma^2))时:

L = -(n/2)*log(2*pi*sigma^2) - (rss(2*sigma^2))

以n作为样本数,k作为自由参数的数量,rss作为残差平方和。 BIC定义为:

-2*L + k*log(n)

但即使对于简单的多项式模型,这与fitglm.m结果略有不同,并且当使用高阶项时,差异似乎会增加。

因为我想要拟合高斯模型并计算它们的BIC,我不能只使用fitglm.m或者,还有其他方法用Wilkinson符号编写高斯模型吗?我不熟悉这种符号,所以我不知道是否可能。

1 个答案:

答案 0 :(得分:0)

我不是百分百肯定这是你的问题,但我认为你对BIC的定义可能会被误解。

贝叶斯信息准则(BIC)是证据的日志的近似值,定义为:

,其中 是数据, 是模型的自适应参数的数量, 是数据大小,最重要的是, <子>    是您的模型/参数集的最大后验估计值。

比较简单明了的 Akaike信息标准(AIK):

依赖于通常更简单的获得最大似然估计 <子>    而不是模型。

只是一个参数,需要进行估算。如果 你在这里使用的是从样本方差得出的,例如,那么它只是对应于 <子>    估计, <子>    之一。

因此,您的差异可能只是来自使用“正确”估算的内置函数,而您在BIC的“手动”计算中使用了错误的函数。