Như @whuber đã hỏi trong các bình luận, một xác nhận cho số KHÔNG phân loại của tôi. chỉnh sửa: với thử nghiệm shapiro, vì thử nghiệm ks một mẫu trên thực tế được sử dụng sai. Whuber là chính xác: Để sử dụng đúng thử nghiệm Kolmogorov-Smirnov, bạn phải chỉ định các tham số phân phối và không trích xuất chúng từ dữ liệu. Tuy nhiên, đây là những gì được thực hiện trong các gói thống kê như SPSS cho thử nghiệm KS một mẫu.
Bạn cố gắng nói điều gì đó về bản phân phối và bạn muốn kiểm tra xem bạn có thể áp dụng bài kiểm tra t không. Vì vậy, thử nghiệm này được thực hiện để xác nhận rằng dữ liệu không rời khỏi tính quy phạm đủ đáng kể để làm cho các giả định cơ bản của phân tích không hợp lệ. Do đó, Bạn không quan tâm đến lỗi loại I, nhưng trong lỗi loại II.
Bây giờ người ta phải định nghĩa "khác biệt đáng kể" để có thể tính n tối thiểu để có công suất chấp nhận được (giả sử là 0,8). Với các bản phân phối, điều đó không đơn giản để xác định. Do đó, tôi đã không trả lời câu hỏi, vì tôi không thể đưa ra một câu trả lời hợp lý ngoài quy tắc ngón tay cái tôi sử dụng: n> 15 và n <50. Dựa trên cái gì? Về cơ bản cảm giác ruột thịt, vì vậy tôi không thể bảo vệ sự lựa chọn đó ngoài kinh nghiệm.
Nhưng tôi biết rằng chỉ với 6 giá trị, lỗi loại II của bạn bị ràng buộc gần như 1, làm cho công suất của bạn gần bằng 0. Với 6 quan sát, thử nghiệm Shapiro không thể phân biệt giữa phân phối bình thường, phân tích, đồng đều hoặc thậm chí theo cấp số nhân. Với lỗi loại II là gần 1, kết quả kiểm tra của bạn là vô nghĩa.
Để minh họa kiểm tra quy tắc với kiểm tra shapiro:
shapiro.test(rnorm(6)) # test a the normal distribution
shapiro.test(rpois(6,4)) # test a poisson distribution
shapiro.test(runif(6,1,10)) # test a uniform distribution
shapiro.test(rexp(6,2)) # test a exponential distribution
shapiro.test(rlnorm(6)) # test a log-normal distribution
Chỉ có khoảng một nửa giá trị nhỏ hơn 0,05, là giá trị cuối cùng. Đó cũng là trường hợp cực đoan nhất.
nếu bạn muốn tìm ra n tối thiểu mang lại cho bạn sức mạnh như thế nào với bài kiểm tra shapiro, người ta có thể thực hiện một mô phỏng như thế này:
results <- sapply(5:50,function(i){
p.value <- replicate(100,{
y <- rexp(i,2)
shapiro.test(y)$p.value
})
pow <- sum(p.value < 0.05)/100
c(i,pow)
})
cung cấp cho bạn một phân tích sức mạnh như thế này:
từ đó tôi kết luận rằng bạn cần khoảng 20 giá trị tối thiểu để phân biệt hàm mũ với phân phối chuẩn trong 80% trường hợp.
mã cốt truyện:
plot(lowess(results[2,]~results[1,],f=1/6),type="l",col="red",
main="Power simulation for exponential distribution",
xlab="n",
ylab="power"
)