R'de AIC “elle” hesaplanıyor


16

R doğrusal bir regresyon AIC hesaplamak denedim, ancak AICböyle bir işlevi kullanmadan :

lm_mtcars <- lm(mpg ~ drat, mtcars)

nrow(mtcars)*(log((sum(lm_mtcars$residuals^2)/nrow(mtcars))))+(length(lm_mtcars$coefficients)*2)
[1] 97.98786

Ancak, AICfarklı bir değer verir:

AIC(lm_mtcars)
[1] 190.7999

Biri bana neyi yanlış yaptığımı söyleyebilir mi?


5
(henüz cevabınızı kontrol etmeden): Yanlış bir şey yapmanıza gerek yok çünkü olasılık sadece çarpımsal bir sabite kadar tanımlanmış; iki kişi günlük olasılığını hesaplayabilir ve farklı sayılar alabilir (ancak günlük olabilirlikteki farklar aynıdır).
Glen_b-Monica'yı

1
Hong Oois'in cevabı bu soru ile ilgili, sanırım. İşlevin AICkullandığı formül -2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1).
COOLSerdash

luciano: @COOLSerdash formülündeki "+1" varyans parametresi teriminden kaynaklanır. Ayrıca, fonksiyonun modeller için 'tüm sabitleri' içerdiğini logLiksöylediğini unutmayın lm... bu yüzden orada bir log(2*pi)yerde olacak
Glen_b -Restate Monica

1
@Glen_b: Neden olasılık sadece çarpımsal bir sabite kadar tanımlanmış ? Sonuçta, farklı dağıtım ailelerinden (örneğin AIC veya Cox testi ile) iç içe geçmiş modelleri karşılaştırırken, bu sabiti hatırlamanız gerekir.
Scortchi - Monica'yı eski durumuna döndürün

@Scortchi tanımı benim değil! RAFisher ile uğraşmanız gerekecek. En başından beri böyleydi (1921). Hâlâ bu şekilde tanımlandığını, en azından sürekli olarak, buraya bakınız , örneğin, 'Daha kesin olarak' başlayan cümle.
Glen_b

Yanıtlar:


19

logLikR'deki işleve ilişkin yardımın, lmmodeller için 'tüm sabitleri' içerdiğini söylediğini unutmayın ... bu yüzden orada bir log(2*pi)yerde bir ve aynı zamanda üs için olası başka bir sabit terim olacaktır. Ayrıca, bir parametre olduğu gerçeğini saymayı unutamazsınız .σ2

L(μ^,σ^)=(12πsn2)nexp(12i(ei2/sn2))

2logL=nlog(2π)+nlogsn2+i(ei2/sn2)

=n[log(2π)+logsn2+1]

AIC=2p2logL

ancak 1 bağımsız değişkeni olan bir model için p = 3 (x katsayısı, sabit ve )σ2

Bu da onların cevabını şu şekilde alırsınız:

nrow(mtcars)*(log(2*pi)+1+log((sum(lm_mtcars$residuals^2)/nrow(mtcars))))
       +((length(lm_mtcars$coefficients)+1)*2)

Neden sizin hesaplamasında Yalnızca bölünmesi edilir n ve n - p ? s2nnp
Luke Thorburn

1
AIC tanımına bakınız: parametrelerinin vektörü θ (yani tüm unsurları en değerlendirilir İçeride ISTV melerin RWMAIWi'nin Mles vardır); ör. Wikipedia Akaike bilgi kriteri: Tanım . Eğer bölme değilseniz n hesaplamasında orada σ 2 , size MLE hesaplama değiliz σ 2 ve böylece gerçekten AIC bilgisayar değil - Eğer uydurma parametrelerinin etkisi iki kez ayar olurdum yürürlükte. (Evet, birçok insan yanlış yapıyor)2logL(θ^)+2pθθ^nσ^2σ2
Glen_b -Monsica Monica

2logL=nlog(2π)+nlogsn+i(ei2/sn2)2πsn2

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.