當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。