Tôi cố gắng để tái tạo những gì các chức năng dfbetas()
làm trong R .
dfbeta()
không phải là một vấn đề ... Đây là một tập các vectơ:
x <- c(0.512, 0.166, -0.142, -0.614, 12.72)
y <- c(0.545, -0.02, -0.137, -0.751, 1.344)
Nếu tôi phù hợp với hai mô hình hồi quy như sau:
fit1 <- lm(y ~ x)
fit2 <- lm(y[-5] ~ x[-5])
Tôi thấy rằng việc loại bỏ điểm cuối cùng dẫn đến độ dốc rất khác (đường màu xanh - dốc hơn):
Điều này được phản ánh trong sự thay đổi về độ dốc:
fit1$coeff[2] - fit2$coeff[2]
-0.9754245
trùng với dfbeta(fit1)
giá trị thứ năm:
(Intercept) x
1 0.182291949 -0.011780253
2 0.020129324 -0.001482465
3 -0.006317008 0.000513419
4 -0.207849024 0.019182219
5 -0.032139356 -0.975424544
Bây giờ nếu tôi muốn tiêu chuẩn hóa sự thay đổi độ dốc này (có được dfbetas ) và tôi dùng đến:
Williams, DA (1987) Chẩn đoán mô hình tuyến tính tổng quát bằng cách sử dụng độ lệch và xóa trường hợp đơn. Thống kê áp dụng 36, 181 Từ1919
mà tôi nghĩ có thể là một trong những tài liệu tham khảo trong tài liệu R theo gói {stats} . Có công thức cho dfbetas là:
Điều này có thể dễ dàng tính được trong R:
(fit1$coef[2] - fit2$coef[2])/summary(fit2)$coef[4]
năng suất: -6.79799
Câu hỏi là tại sao tôi không nhận được giá trị thứ năm cho độ dốc trong:
dfbetas(fit1)
(Intercept) x
1 1.06199661 -0.39123009
2 0.06925319 -0.02907481
3 -0.02165967 0.01003539
4 -1.24491242 0.65495527
5 -0.54223793 -93.81415653!
Phương trình đúng để đi từ dfbeta đến dfbetas là gì?