Câu hỏi này không liên quan cụ thể R
, nhưng tôi đã chọn sử dụng R
để minh họa nó.
Xem xét mã để sản xuất các dải tin cậy quanh một qq-line (bình thường):
library(car)
library(MASS)
b0<-lm(deaths~.,data=road)
qqPlot(b0$resid,pch=16,line="robust")
Tôi đang tìm kiếm một lời giải thích (hoặc thay thế một liên kết đến một tài liệu trực tuyến / tài liệu giải thích) cách thức các dải tin cậy này được xây dựng (Tôi đã thấy một tài liệu tham khảo về Fox 2002 trong các tệp trợ giúp của R nhưng thật đáng buồn là tôi không có điều này sách tiện dụng).
Câu hỏi của tôi sẽ được thực hiện chính xác hơn với một ví dụ. Dưới đây là cách R
tính các CI cụ thể này (Tôi đã rút ngắn / đơn giản hóa mã được sử dụng trong car::qqPlot
)
x<-b0$resid
good<-!is.na(x)
ord<-order(x[good])
ord.x<-x[good][ord]
n<-length(ord.x)
P<-ppoints(n)
z<-qnorm(P)
plot(z,ord.x,type="n")
coef<-coef(rlm(ord.x~z))
a<-coef[1]
b<-coef[2]
abline(a,b,col="red",lwd=2)
conf<-0.95
zz<-qnorm(1-(1-conf)/2)
SE<-(b/dnorm(z))*sqrt(P*(1-P)/n) #[WHY?]
fit.value<-a+b*z
upper<-fit.value+zz*SE
lower<-fit.value-zz*SE
lines(z,upper,lty=2,lwd=2,col="red")
lines(z,lower,lty=2,lwd=2,col="red")
Câu hỏi là: sự biện minh cho công thức được sử dụng để tính các SE này là gì (ví dụ: dòng SE<-(b/dnorm(z))*sqrt(P*(1-P)/n)
).
FWIW công thức này rất khác với công thức của các dải tin cậy thông thường được sử dụng trong hồi quy tuyến tính