To pytanie nie dotyczy konkretnie R
, ale postanowiłem R
to zilustrować.
Rozważ kod do tworzenia pasm ufności wokół (normalnej) linii qq:
library(car)
library(MASS)
b0<-lm(deaths~.,data=road)
qqPlot(b0$resid,pch=16,line="robust")
Szukam wyjaśnienia (lub alternatywnego linku do dokumentu papierowego / internetowego wyjaśniającego), w jaki sposób zbudowane są te przedziały ufności (widziałem odniesienie do Foxa 2002 w plikach pomocy R, ale niestety nie mam tego książka przydatna).
Moje pytanie zostanie uściślone na przykładzie. Oto jak R
oblicza te poszczególne elementy CI (skróciłem / uprościłem używany kod 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")
Pytanie brzmi: jakie jest uzasadnienie wzoru użytego do obliczenia tych SE (np. Linia SE<-(b/dnorm(z))*sqrt(P*(1-P)/n)
).
FWIW ta formuła bardzo różni się od formuły zwykłych pasm ufności stosowanych w regresji liniowej