为什么 AIC 和 BIC 显示反向输出?

机器算法验证 广义线性模型 解释 aic 比克
2022-03-15 07:32:23

我正在将三个具有 Gamma 分布的相对简单的 GLM 与 AIC 和 BIC 进行比较。目的是确定肥料(fdung)、年份和地点对特定草种生物量的影响。因此,目的不是预测新值,而只是确定三个因素的影响。

以下是使用的模型:

res1 <-  glm((Biomass..g.m².) ~  fdung * fyear * fblock, family=Gamma(link="identity"))
res2 <-  glm((Biomass..g.m².) ~  fdung * fyear + fblock, family=Gamma(link="identity"))
res3 <-  glm((Biomass..g.m².) ~  fdung + fyear + fblock, family=Gamma(link="identity"))

我希望第三种模型是最简单的模型,并希望通过信息标准来确认这一点。但是,在查看 AIC 和 BIC 时,我得到了这个输出。

AIC(res1,res2,res3)     BIC(result1,res2,res3)
        df      AIC            df      BIC
res1    49 5271.617     res1   49 5465.198
res2    16 5334.234     res2   16 5397.44
res3    10 5331.253     res3   10 5370.760

对于 AIC,最复杂的模型是“最好的”,而对于 BIC,df 最少的模型是最好的。我在想,关于我的目标(确定对生物质的影响),我应该相信 BIC。

我的结论错了吗?

我已经尝试了将 fblock 作为随机因子的混合效应模型,但是具有 Gamma 分布的模型不再起作用,而且我不能再将 fblock 用作固定效应(导致 fblock 的 NA),但这不是一部分我的问题。

2个回答

AIC 和 BIC 都惩罚模型的复杂性,但它们施加不同的惩罚。

  • AIC = 其中是参数的数量,是可能性。2k2log(L)kL

  • BIC =其中是主题数。klog(n)2log(L)n

因此,如果,BIC 会受到更严厉的惩罚;这几乎总是如此,因为并且很少有少于 8 个科目的情况。log(n)>2e2=7.3

至于使用哪个 - 关于它的争论;参见例如 Burnham 和 Anderson,2002 年的模型选择和多模型推理(一本好书);他们还有一篇关于社会学方法和研究中的比较的文章

我在这个主题上的两分钱:如果你真的在测试假设,那么我不会使用信息论方法,而是使用经典的假设测试方法(即,我会使用drop1onres1进行似然比测试)。在生态学中,我个人更喜欢 AIC 而不是 BIC,因为我认为它的逻辑更符合我们对系统的看法:http ://emdbolker.wikidot.com/blog:aic-vs-bic 。但是,如果我发现自己试图选择与具有一些非零参数的“真实”模型最接近的模型,我会改为进行假设检验。