Sử dụng lệnh drop1 trong R và AIC


7

Trong khi sử dụng lệnh drop1 trong R để xây dựng mô hình, người ta nói rằng biến có giá trị AIC thấp nhất phải được loại bỏ. Điều gì có thể là lý do cho cùng? Tôi biết AIC nói về mất thông tin và giá trị AIC thấp hơn là tốt hơn, nhưng việc bỏ một biến có AIC thấp dường như phản tác dụng trực quan. Ai đó có thể vui lòng giải thích lý do để làm như vậy?


Câu trả lời:


8

AIC đã cho từ drop1liên quan đến toàn bộ mô hình - không phải là một biến, do đó, đầu ra cho bạn biết biến nào cần loại bỏ để mang lại mô hình có AIC thấp nhất. Ví dụ: với bộ dữ liệu tích hợpswiss

lm1 <- lm(Fertility ~ ., data = swiss)
drop1(lm1, test = "F")  # So called 'type II' anova

Single term deletions

Model:
Fertility ~ Agriculture + Examination + Education + Catholic + 
    Infant.Mortality
                 Df Sum of Sq    RSS    AIC F value    Pr(>F)    
<none>                        2105.0 190.69                      
Agriculture       1    307.72 2412.8 195.10  5.9934  0.018727 *  
Examination       1     53.03 2158.1 189.86  1.0328  0.315462    
Education         1   1162.56 3267.6 209.36 22.6432 2.431e-05 ***
Catholic          1    447.71 2552.8 197.75  8.7200  0.005190 ** 
Infant.Mortality  1    408.75 2513.8 197.03  7.9612  0.007336 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Ở đây, việc loại bỏ Examinationsẽ mang lại mô hình với AIC thấp nhất

Trên một lưu ý liên quan, mặc dù có thể sử dụng AIC tốt hơn giá trị p, nhưng việc sử dụng bất kỳ thuật toán chọn mô hình tự động nào được coi là thực hành xấu: Thuật toán để chọn mô hình tự động


1
Trong thực tế nếu bạn đang xem xét một biến số tại một thời điểm, sử dụng AIC tương ứng với việc thiết lập mức cắt giảm giá trị p là 15,7%
Glen_b -Reinstate Monica

@Glen_b Thú vị! Tôi cho rằng đó là một kết quả tiệm cận dựa trên đuôi phân phối chi bình phương? Sau đó, sử dụng giá trị p và AIC đều tệ như nhau, đối với các mẫu lớn! ?
Robert Long

1
Có, một kết quả chi bình phương không có triệu chứng (nếu bạn sử dụng R, thì nó pchisq(2,1,lower.tail=FALSE)); nó sẽ tương ứng với giá trị p-test z (test pnorm(sqrt(2),lower.tail=FALSE)*2) hai đuôi , và vì vậy trừ khi df khá nhỏ, nó cũng sẽ gần đúng với giá trị p-test t-test hoặc F-test bị cắt (trên 40 df là 16% đến toàn bộ phần trăm gần nhất cho bất kỳ df nào)
Glen_b -Reinstate Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.