Lưu ý rằng Shapiro-Wilk là một bài kiểm tra mạnh mẽ về tính bình thường.
Cách tiếp cận tốt nhất là thực sự có một ý tưởng tốt về mức độ nhạy cảm của bất kỳ thủ tục nào bạn muốn sử dụng là đối với các loại phi quy tắc khác nhau (nó không bình thường đến mức nào để nó ảnh hưởng đến suy luận của bạn nhiều hơn bạn có thể chấp nhận).
Một cách tiếp cận không chính thức để xem xét các ô sẽ là tạo ra một số bộ dữ liệu thực sự bình thường có cùng cỡ mẫu với mẫu bạn có - (ví dụ: 24 trong số chúng). Vẽ dữ liệu thực của bạn trong một lưới các ô như vậy (5x5 trong trường hợp 24 bộ ngẫu nhiên). Nếu nó không đặc biệt trông có vẻ khác thường (nói xấu nhất), thì nó hợp lý với sự bình thường.
Trước mắt tôi, tập dữ liệu "Z" ở trung tâm trông gần ngang tầm với "o" và "v" và thậm chí có thể là "h", trong khi "d" và "f" trông hơi tệ hơn. "Z" là dữ liệu thực. Mặc dù tôi không tin rằng nó thực sự bình thường, nhưng nó không đặc biệt khác thường khi bạn so sánh nó với dữ liệu bình thường.
[Chỉnh sửa: Tôi chỉ thực hiện một cuộc thăm dò ngẫu nhiên - tốt, tôi đã hỏi con gái mình, nhưng tại một thời điểm khá ngẫu nhiên - và sự lựa chọn của cô ấy cho một đường thẳng giống như "d". Vì vậy, 100% những người được khảo sát nghĩ rằng "d" là số lẻ nhất.]
Cách tiếp cận chính thức hơn sẽ là thực hiện thử nghiệm Shapiro-Francia (dựa trên hiệu quả tương quan trong cốt truyện QQ), nhưng (a) nó thậm chí không mạnh bằng thử nghiệm Shapiro Wilk và (b) thử nghiệm chính thức trả lời câu hỏi (đôi khi) mà bạn nên biết câu trả lời dù sao (phân phối dữ liệu của bạn được rút ra từ không chính xác bình thường), thay vì câu hỏi bạn cần trả lời (vấn đề đó tệ đến mức nào?).
Theo yêu cầu, mã cho màn hình trên. Không có gì lạ mắt liên quan:
z = lm(dist~speed,cars)$residual
n = length(z)
xz = cbind(matrix(rnorm(12*n),nr=n),z,matrix(rnorm(12*n),nr=n))
colnames(xz) = c(letters[1:12],"Z",letters[13:24])
opar = par()
par(mfrow=c(5,5));
par(mar=c(0.5,0.5,0.5,0.5))
par(oma=c(1,1,1,1));
ytpos = (apply(xz,2,min)+3*apply(xz,2,max))/4
cn = colnames(xz)
for(i in 1:25) {
qqnorm(xz[,i],axes=FALSE,ylab= colnames(xz)[i],xlab="",main="")
qqline(xz[,i],col=2,lty=2)
box("figure", col="darkgreen")
text(-1.5,ytpos[i],cn[i])
}
par(opar)
x
(Tôi đã tạo ra các lô như thế này từ giữa những năm 80. Làm thế nào bạn có thể diễn giải các âm mưu nếu bạn không quen với cách chúng hành xử khi các giả định nắm giữ - và khi chúng không hoạt động?)
Xem thêm:
Buja, A., Cook, D. Hofmann, H., Lawrence, M. Lee, E.-K., Swayne, DF và Wickham, H. (2009) Suy luận thống kê để phân tích dữ liệu khám phá và chẩn đoán mô hình Phil. Xuyên. R. Sóc. A 2009 367, 4361-4383 doi: 10.1098 / rsta.2009.0120