ในฐานะที่ @whuber ถามในความคิดเห็นการตรวจสอบสำหรับเด็ดขาดของฉันไม่มี แก้ไข: ด้วยการทดสอบ shapiro เนื่องจากการทดสอบ ks หนึ่งตัวอย่างถูกนำไปใช้อย่างผิด ๆ Whuber ถูกต้อง: สำหรับการใช้การทดสอบ Kolmogorov-Smirnov อย่างถูกต้องคุณต้องระบุพารามิเตอร์การกระจายและไม่แยกข้อมูลออกจากข้อมูล อย่างไรก็ตามนี่คือสิ่งที่ทำในแพ็คเกจทางสถิติเช่น SPSS สำหรับการทดสอบ KS-one ตัวอย่าง
คุณพยายามพูดบางอย่างเกี่ยวกับการกระจายและคุณต้องการตรวจสอบว่าคุณสามารถใช้การทดสอบ t ดังนั้นการทดสอบนี้ทำขึ้นเพื่อยืนยันว่าข้อมูลไม่ได้ออกจากภาวะปกติอย่างมีนัยสำคัญเพียงพอที่จะทำให้สมมติฐานพื้นฐานของการวิเคราะห์ไม่ถูกต้อง ดังนั้นคุณไม่สนใจข้อผิดพลาดประเภท I แต่อยู่ในข้อผิดพลาด type II
ตอนนี้ต้องกำหนด "แตกต่างกันอย่างมีนัยสำคัญ" เพื่อให้สามารถคำนวณขั้นต่ำ n สำหรับพลังงานที่ยอมรับได้ (พูด 0.8) ด้วยการแจกแจงนั่นไม่ใช่เรื่องง่ายที่จะนิยาม ดังนั้นฉันไม่ได้ตอบคำถามเพราะฉันไม่สามารถให้คำตอบที่สมเหตุสมผลได้นอกจากกฏของหัวแม่มือที่ฉันใช้: n> 15 และ n <50 ขึ้นอยู่กับอะไร โดยทั่วไปแล้วความรู้สึกนั้นไม่สามารถป้องกันตัวเลือกนั้นนอกเหนือจากประสบการณ์
แต่ฉันรู้ว่ามีเพียง 6 ค่าประเภท II ข้อผิดพลาดของคุณถูกผูกไว้เกือบ 1 ทำให้พลังงานของคุณใกล้กับ 0 ด้วยการสังเกต 6 การทดสอบ Shapiro ไม่สามารถแยกความแตกต่างระหว่างการกระจายปกติปัวซองเครื่องแบบหรือแม้กระทั่งการชี้แจง ด้วยข้อผิดพลาดประเภท II เกือบ 1 ผลการทดสอบของคุณจะไม่มีความหมาย
เพื่อแสดงให้เห็นถึงการทดสอบเชิงบรรทัดฐานด้วยการทดสอบ 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
เฉพาะที่ประมาณครึ่งหนึ่งของค่าน้อยกว่า 0.05 เป็นค่าสุดท้าย ซึ่งเป็นกรณีที่รุนแรงที่สุด
หากคุณต้องการทราบว่า n ขั้นต่ำที่ให้พลังที่คุณชอบด้วยการทดสอบชาปิโรคืออะไรคุณสามารถจำลองสถานการณ์เช่นนี้ได้:
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)
})
ซึ่งให้การวิเคราะห์พลังงานแบบนี้:
จากการที่ฉันสรุปว่าคุณต้องมีค่าต่ำสุดประมาณ 20 ค่าเพื่อแยกความแตกต่างจากการแจกแจงแบบปกติใน 80% ของคดี
พล็อตรหัส:
plot(lowess(results[2,]~results[1,],f=1/6),type="l",col="red",
main="Power simulation for exponential distribution",
xlab="n",
ylab="power"
)