2012-02-28 20 views

Trả lời

20

Tôi nghĩ bạn đang tìm kiếm các giá trị mũ.

Sử dụng hatvalues(fit). Quy tắc chung là kiểm tra bất kỳ quan sát nào lớn gấp 2-3 lần giá trị mũ trung bình. Tôi không biết một chức năng cụ thể hoặc gói phần mềm trên đầu của tôi cung cấp thông tin này trong một khung dữ liệu đẹp nhưng làm nó cho mình là khá thẳng về phía trước. Dưới đây là một ví dụ:

fit <- lm(hp ~ cyl + mpg, data=mtcars) #a fake model 

hatvalues(fit) 

hv <- as.data.frame(hatvalues(fit)) 
mn <-mean(hatvalues(fit)) 
hv$warn <- ifelse(hv[, 'hatvalues(fit)']>3*mn, 'x3', 
    ifelse(hv[, 'hatvalues(fit)']>2*mn, 'x3', '-')) 

hv 

Đối với dữ liệu lớn đặt bạn có thể sử dụng subset và/hoặc order nhìn vào giá trị chỉ số dao động cho các giá trị mũ:

subset(hv, warn=="x3") 
subset(hv, warn%in%c("x2", "x3")) 
hv[order(hv['hatvalues(fit)']), ] 

Tôi thực sự đi qua một chức năng cốt truyện đẹp thực hiện điều này trong cuốn sách R in Action nhưng vì đây là một cuốn sách có bản quyền, tôi sẽ không hiển thị tài sản trí tuệ của Kabacoff. Nhưng cốt truyện đó sẽ hoạt động tốt hơn cho các tập dữ liệu cỡ trung bình.

Dưới đây là một âm mưu mũ đàng hoàng dù rằng bạn cũng có thể muốn điều tra:

plot(hatvalues(fit), type = "h") 
Các vấn đề liên quan