ฉันได้ลองคำนวณ AIC ของการถดถอยเชิงเส้นใน R แต่ไม่ได้ใช้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 Monica
คำตอบ Hong Ooisเกี่ยวข้องกับคำถามนี้ฉันคิดว่า สูตรที่ฟังก์ชั่นใช้เป็น
—
COOLSerdash
AIC
-2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1)
luciano: "+1" ในสูตรนั้น @COOLSerdash ชี้ว่าเกิดจากคำพารามิเตอร์แปรปรวน โปรดทราบว่าฟังก์ชั่น
—
Glen_b
logLik
บอกว่าสำหรับlm
รุ่นที่มี 'ค่าคงที่ทั้งหมด' ... ดังนั้นจะlog(2*pi)
มีที่ใดที่หนึ่ง
@Glen_b: ทำไมพูดถึงความน่าจะเป็นของการกำหนดค่าคงที่ทวีคูณเท่านั้น? ท้ายที่สุดเมื่อเปรียบเทียบโมเดลที่ไม่ซ้อนกันจากตระกูลการกระจายที่แตกต่างกัน (เช่นกับ AIC หรือกับการทดสอบ Cox) คุณต้องจำค่าคงที่นั้น
—
Scortchi - Reinstate Monica
@Scortchi ความหมายไม่ใช่ของฉัน! คุณจะต้องใช้มันกับ RAFisher มันเป็นอย่างนั้นตั้งแต่เริ่มต้นฉันคิดว่า (1921) อย่างน้อยก็ในกรณีต่อเนื่องดูที่นี่ตัวอย่างเช่นในประโยคที่เริ่มต้นว่า 'แม่นยำยิ่งขึ้น'
—
Glen_b -Reinstate Monica