全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
16385 7
2011-09-17
近来看了一些toolbox的代码,发现AIC BIC的计算在不同的toolbox计算不一样?
例如:MFE 中AICBIC函数是这么算的
aic = log(seregression^2) + 2*K/T;
sbic = log(seregression^2) + log(T)*K/T;
这跟教科书的定义是一致的

MS_Regress toolbox中则是这么算的
Spec_Output.AIC=2*numel(param)-2*Spec_Output.LL;
Spec_Output.BIC=-2*Spec_Output.LL+numel(param)*log(Spec_Output.nObs*nEq);


output.LL是Log L的值
这两种算法的结果似乎差别很大
ARMA和MS_regime都是用MLE估计的,为什么会有这样的差别?该以哪个为准?请高手解答?



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-9-17 22:01:06
等待最佳答案。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-9-18 20:09:06
为什么没人回答
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-9-19 08:48:22
应该是一致的。
MS_regress 这个工具箱的参数传递比较复杂。
虽然对于编写这个程序的作者来说,在后续的持续修改方面会很方便。
不过对于阅读它代码参数传递的其他人,确实的不够清晰明了。

前不久做MS模型时,也参阅它的代码,发现一些函数的调用和现在MATLAB官方推荐的是很不一致的。也就是说如果你有一个好的编程序的习惯后,发现阅读后者的程序调用,会有点吃力。

你只是对这个参数的含义不太理解,我想这里的AIC和BIC其实还是一样的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-9-19 14:54:07
tulipsliu 发表于 2011-9-19 08:48
应该是一致的。
MS_regress 这个工具箱的参数传递比较复杂。
虽然对于编写这个程序的作者来说,在后续的持 ...
MS_regress这个工具箱的调用确实不好理解,例如S{ieq}(end),这样是不是S是一个cell,cell里面的元素是向量,否则怎么可以这么调用?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-9-19 17:45:37
kerrydu 发表于 2011-9-19 14:54
MS_regress这个工具箱的调用确实不好理解,例如S{ieq}(end),这样是不是S是一个cell,cell里面的元素是向量 ...
应该是吧。
你打开它的主要估计程序,有VAR的,也有一般的MS估计主程序。开始的几句就是没参数的程序调用。也没返回值。
那个看起来才叫郁闷。
其中初始化的几个,主要是构建一些结构,然后后续调用好使用。
不过这样做,给其他阅读程序的人造成不必要的麻烦,是很郁闷的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群