มีรุ่นตัวอย่างหลายตัวหรือเป็นทางเลือกในการทดสอบ Kolmogorov-Smirnov หรือไม่


12

ฉันกำลังเปรียบเทียบการกระจายขนาดของต้นไม้ในหกคู่แปลงที่หนึ่งแปลงได้รับการรักษาและอื่น ๆ ควบคุม โดยใช้การทดสอบ Kolmogorov-Smirnov คู่ของแปลงแต่ละผมพบว่าช่วงที่จะ0.75มีวิธีการที่เหมาะสมในการจัดการกับข้อมูลซ้ำทั้งหมดหรือไม่เช่นการทดสอบหลายตัวอย่างของการทดสอบ KS หรือมีการทดสอบติดตามที่เหมาะสมหรือไม่? หรือฉันควรสรุปบางอย่างเช่น "การกระจายขนาดแตกต่างกันอย่างมีนัยสำคัญ ) ใน 2 คู่ของแปลงและเล็กน้อย ( ) ในหนึ่งคู่ของแปลง"p0.00037070.75(p<0.05p=0.59


2
คุณต้องการเปรียบเทียบอะไรเกี่ยวกับการแจกแจงเหล่านี้ว่าพวกเขาต่างกันในแนวโน้มกลางหรือว่าพวกเขามีรูปร่างที่แตกต่างกันอย่างไร ฉันมักจะคิดว่า KS เป็นเหมือนรูปร่าง / ธรรมชาติของการกระจาย แต่สิ่งที่คล้ายกับการทดสอบของฟรีดแมนสามารถตัดสินได้ว่ากลุ่มตัวอย่างแตกต่างกันในแนวโน้มกลาง
gung - Reinstate Monica

คำตอบ:


13

จริงๆแล้วมีตัวอย่างการทดสอบ KS หลายรายการ ตัวอย่างเช่นKolmogorov-Smirnov-Testกับซึ่งฉันเชื่อว่ามีพลังดี พิมพ์กระดาษที่สวยงามไว้ล่วงหน้าที่นี่ ฉันยังรู้จักK-Sample Analogues ของ Kolmogorov-Smirnov และ Cramer-V ทำการทดสอบ (แต่พวกมันมีพลังน้อยกว่าที่ฉันรู้)r2


5
ข้อเสียของกระดาษ "สวยงาม" โดยBöhmและ Hornik คือว่าไม่มีการใช้งานแบบสาธารณะที่มีอยู่เท่าที่ฉันสามารถบอกได้ คณิตศาสตร์นั้นซับซ้อนพอที่คุณไม่ต้องการนำไปใช้เอง ฉันส่งจดหมายถึงผู้เขียนและถามพวกเขา แต่พวกเขาไม่ได้ตอบกลับ โปรดทราบว่า Hornik เป็นสมาชิกของกลุ่ม R Core Developers ... หากมีคนรู้เกี่ยวกับการใช้งานกรุณาโพสต์ลิงค์ที่นี่!
กล่องเสียง Decidua

8

มีแพ็คเกจ R kSamplesที่ให้คุณทดสอบ k-sample Anderson-Darling สมมติฐานว่างคือว่าตัวอย่าง k ทั้งหมดมาจากการแจกแจงแบบเดียวกันซึ่งไม่จำเป็นต้องระบุ บางทีคุณสามารถใช้สิ่งนี้

ตัวอย่างเล็ก ๆ น้อย ๆ เกี่ยวกับการเปรียบเทียบตัวอย่างแบบปกติและแบบกระจายแกมมาเพื่อให้ได้ขนาดและความแปรปรวนเท่ากัน:

library("kSamples")
set.seed(142)
samp.num <- 100
alpha <- 2.0; theta <- 3.0  # Gamma parameters shape and scale, using Wikipedia notation
gam.mean <- alpha * theta # mean of the Gamma
gam.sd <- sqrt(alpha) * theta # S.D. of the Gamma
norm.data <- rnorm(samp.num, mean=gam.mean, sd=gam.sd)  # Normal with the same mean and SD as the Gamma
gamma.data <- rgamma(samp.num, shape=alpha, scale=theta)
norm.data2 <- rnorm(samp.num, mean=gam.mean, sd=gam.sd)
norm.data3 <- rnorm(samp.num, mean=gam.mean, sd=gam.sd)
ad.same <- ad.test(norm.data,norm.data2,norm.data3) # "not significant, p ~ 0.459"
ad.diff <- ad.test(gamma.data,norm.data2,norm.data3) # "significant, p ~ 0.00066"

4

สองแนวทาง:

ใช้ค่า p-pairwise แต่ปรับค่าเหล่านี้สำหรับการเปรียบเทียบหลาย ๆ อย่างโดยใช้สิ่งที่คล้ายกับการปรับแต่ง Bon Feroni หรือ False Discovery Rate (อันแรกอาจจะค่อนข้างอนุรักษ์นิยมเล็กน้อย) จากนั้นคุณสามารถมั่นใจได้ว่าสิ่งที่ยังคงแตกต่างกันอย่างมีนัยสำคัญอาจไม่ได้เกิดจากการทดสอบหลายครั้ง

คุณสามารถสร้างการทดสอบโดยรวมในรสชาติของ KS โดยการหาระยะห่างที่มากที่สุดระหว่างการแจกแจงใด ๆ นั่นคือพล็อต cdf เชิงประจักษ์ทั้งหมดและหาระยะทางที่ใหญ่ที่สุดจากบรรทัดล่างสุดไปยังเส้นบนสุดหรืออาจเป็นระยะทางเฉลี่ย วัด. จากนั้นคุณจะพบว่าสิ่งนั้นสำคัญหรือไม่โดยทำการทดสอบการเรียงสับเปลี่ยน: จัดกลุ่มข้อมูลทั้งหมดเป็น 1 ถังขยะขนาดใหญ่จากนั้นสุ่มแบ่งเป็นกลุ่มที่มีขนาดตัวอย่างเดียวกับกลุ่มเดิมของคุณคำนวณค่าสถิติบนข้อมูลที่อนุญาตและทำซ้ำกระบวนการ หลายครั้ง (999 หรือมากกว่านั้น) จากนั้นดูการเปรียบเทียบข้อมูลต้นฉบับของคุณกับชุดข้อมูลที่ผ่านการอนุญาต หากสถิติข้อมูลต้นฉบับตกตรงกลางของค่าที่เปลี่ยนแปลงแล้วจะไม่พบความแตกต่างอย่างมีนัยสำคัญ แต่ถ้าอยู่ที่ขอบ หรือเหนือสิ่งอื่นใดที่ได้รับอนุญาตจากนั้นมีบางสิ่งที่สำคัญเกิดขึ้น (แต่นี่ไม่ได้บอกคุณว่าอะไรแตกต่างกัน) คุณอาจลองใช้ข้อมูลจำลองที่คุณรู้ว่ามีความแตกต่างที่ใหญ่พอที่จะน่าสนใจเพียงเพื่อตรวจสอบพลังของการทดสอบนี้เพื่อค้นหาความแตกต่างที่น่าสนใจ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.