当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R AIC 赤池的信息准则


R语言 AIC 位于 stats 包(package)。

说明

根据公式 计算一个或多个拟合模型对象的 Akaike 的“信息准则”,以获得对数似然值,其中 表示拟合模型中的参数数量,并且 用于通常的 AIC,或 ( 是观测值的数量)用于所谓的 BIC 或 SBC(施瓦茨贝叶斯准则)。

用法

AIC(object, ..., k = 2)

BIC(object, ...)

参数

object

存在 logLik 方法来提取相应对数似然的拟合模型对象,或从类 logLik 继承的对象。

...

可选地更多适合的模型对象。

k

数字,要使用的每个参数的惩罚;默认的 k = 2 是经典的 AIC。

细节

将最大似然拟合的模型与相同数据进行比较时,AIC 或 BIC 越小,拟合越好。

AIC 的理论要求对数似然已最大化:虽然可以计算未通过最大似然拟合的模型的 AIC,但不应比较它们的 AIC 值。

未“拟合相同数据”的模型示例是响应被转换的地方(accelerated-life 模型适合 log-times)以及使用列联表来汇总数据的地方。

这些是通用函数(在包 stats4 中定义了 S4 泛型)。然而,应该为对数似然函数 logLik 而不是这些函数定义方法:它们的默认方法的操作是在所有提供的对象上调用 logLik 并组装结果。请注意,在几种常见情况下,logLik 不会返回 MLE 处的值:请参阅其帮助页面。

对数似然以及 AIC/BIC 仅定义为加性常数。不同的常量通常用于不同的目的,因此 extractAICAIC 可能会给出不同的值(对于 "lm" 类的模型也是如此:请参阅 extractAIC 的帮助)。比较不同类别的拟合时需要特别小心(例如,泊松和伽马 GLM 的比较毫无意义,因为一个具有离散响应,另一个具有连续响应)。

BIC 定义为 AIC(object, ..., k = log(nobs(object))) 。这需要知道观察的数量:默认方法首先在 logLik 方法的返回值上查找 "nobs" 属性,然后尝试 nobs 泛型,如果两者都不成功,则返回 BIC 作为 NA

如果仅提供一个对象,则为具有相应 AIC(或 BIC,或...,取决于 k )的数值。

如果提供了多个对象,则为 data.frame,其中行对应于对象,列表示模型 ( df ) 和 AIC 或 BIC 中的参数数量。

例子

lm1 <- lm(Fertility ~ . , data = swiss)
AIC(lm1)
stopifnot(all.equal(AIC(lm1),
                    AIC(logLik(lm1))))
BIC(lm1)

lm2 <- update(lm1, . ~ . -Examination)
AIC(lm1, lm2)
BIC(lm1, lm2)

作者

Originally by José Pinheiro and Douglas Bates, more recent revisions by R-core.

参考

Sakamoto, Y., Ishiguro, M., and Kitagawa G. (1986). Akaike Information Criterion Statistics. D. Reidel Publishing Company.

也可以看看

extractAIClogLiknobs

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Akaike's An Information Criterion。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。