आर में "हाथ से" AIC की गणना


16

मैंने R में एक रेखीय प्रतिगमन के AIC की गणना करने की कोशिश की है, लेकिन AICइस तरह से फ़ंक्शन का उपयोग किए बिना :

lm_mtcars <- lm(mpg ~ drat, mtcars)

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

हालाँकि, AICएक अलग मूल्य देता है:

AIC(lm_mtcars)
[1] 190.7999

क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं?


5
(अभी तक आपके उत्तर की जाँच के बिना): आप जरूरी कुछ गलत नहीं कर रहे हैं, क्योंकि संभावना वास्तव में केवल एक गुणक स्थिरांक तक परिभाषित है; दो लोग लॉग-लाइबिलिटी की गणना कर सकते हैं और अलग-अलग संख्या प्राप्त कर सकते हैं (लेकिन लॉग-लाइबिलिटी में अंतर समान है)।
— Glen_b -Reinstate मोनिका

1
हाँग ओइस जवाब इस सवाल से संबंधित है, मुझे लगता है। फ़ंक्शन AICका उपयोग करने वाला सूत्र है -2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1)।
— COSSerdash

लुसियानो: उस सूत्र @COOLSerdash में "+1" विचरण पैरामीटर शब्द से उत्पन्न होता है। यह भी ध्यान दें कि फ़ंक्शन का logLikकहना है कि lmमॉडलों के लिए इसमें 'सभी स्थिरांक' शामिल हैं ... इसलिए log(2*pi)वहां कहीं एक होगा
— Glen_b -Reinstate Monica

1
@Glen_b: यह क्यों कहते हैं कि संभावना केवल एक गुणक स्थिरांक तक परिभाषित है? आखिरकार, जब वितरण के विभिन्न परिवारों (जैसे कि एआईसी, या कॉक्स परीक्षण के साथ) से गैर-नेस्टेड मॉडल की तुलना करते हैं, तो आपको उस निरंतर को याद रखना होगा।
— Scortchi - को पुनः स्थापित मोनिका

@Scortchi परिभाषा मेरी नहीं है! आपको इसे RAFisher के साथ लेना होगा। यह शुरू से ही ऐसा रहा है, मुझे लगता है (1921)। यह अभी भी उस तरह से परिभाषित है, कम से कम निरंतर मामले में, उदाहरण के लिए, 'अधिक सटीक रूप से' वाक्य की शुरुआत में यहां देखें ।
— Glen_b -Reinstate मोनिका

जवाबों:


19

ध्यान दें कि logLikR में फ़ंक्शन पर सहायता lmयह कहती है कि मॉडल में 'सभी स्थिरांक' शामिल हैं ... इसलिए log(2*pi)कहीं न कहीं वहाँ होगा, साथ ही संभावना में घातांक के लिए एक और निरंतर शब्द। इसके अलावा, आप तथ्य यह है कि गिनती करने के लिए नहीं भूल सकता एक पैरामीटर है।σ2

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

−2log⁡L=nlog⁡(2π)+nlog⁡sn2+∑i(ei2/sn2)

=n[log⁡(2π)+log⁡sn2+1]

AIC=2p−2log⁡L

लेकिन ध्यान दें 1 स्वतंत्र चर के साथ एक मॉडल, पी = 3 के लिए (और एक्स-गुणांक, लगातार कि )σ2

इसका मतलब यह है कि आप उनका जवाब कैसे प्राप्त करें:

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

s2nn−p

1
−2log⁡L(θ^)+2पीθθ^nσ^2σ2
— Glen_b -Reinstate Monica

−2log⁡L=nlog⁡(2π)+nlog⁡sn+∑i(ei2/sn2)2πsn2

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.