คุณสามารถคำนวณพลังของการทดสอบ Kolmogorov-Smirnov ใน R ได้หรือไม่?


10

เป็นไปได้ไหมที่จะทำการวิเคราะห์พลังงานสำหรับการทดสอบ Kolmogorov Smirnov แบบ 2 ด้านใน R?

ฉันกำลังทดสอบว่าการแจกแจงเชิงประจักษ์สองแบบนั้นแตกต่างกันหรือไม่โดยใช้ ks.test () และต้องการเพิ่มการวิเคราะห์พลังงาน

ฉันไม่พบการวิเคราะห์พลังงานในตัวสำหรับการทดสอบ KS ใน R. คำแนะนำใด ๆ

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

set.seed(100)
x <- rexp(64, rate=0.34)
y <- rexp(54,rate=0.37)

#K-S test: Do x and y come from same distribution?
ks.test(x,y)

ข้อมูลเหล่านี้เป็นการวัดขนาดร่างกายในสองกลุ่มที่แตกต่างกัน ฉันต้องการแสดงให้เห็นว่าทั้งสองกลุ่มมีการกระจายตัวเหมือนกันเป็นหลัก แต่ถูกถามโดยผู้ทำงานร่วมกันว่าฉันมีอำนาจที่จะพูดแบบนั้นตามขนาดตัวอย่างหรือไม่ ฉันสุ่มมาจากการแจกแจงเอ็กซ์โพเนนเชียลที่นี่ แต่สิ่งเหล่านี้ใกล้เคียงกับข้อมูลจริง

จนถึงตอนนี้ฉันได้บอกว่าไม่มีความแตกต่างอย่างมีนัยสำคัญในการแจกแจงเหล่านี้ตามการทดสอบ KS แบบสองด้าน ฉันได้วางแผนการแจกแจงสองแบบด้วย ฉันจะแสดงให้เห็นได้อย่างไรว่าฉันมีอำนาจในการสร้างคำสั่งดังกล่าวโดยพิจารณาจากขนาดตัวอย่างและอัตราการสลายตัวของ x และ y


4
พลังงานจะขึ้นอยู่กับหลาย ๆ สิ่งซึ่งเป็นสาเหตุที่ไม่มีการทดสอบในตัวสำหรับสองตัวอย่าง คุณสามารถจำลองสถานการณ์ที่กำหนด ดังนั้น: พลังงานให้ข้อสมมติฐานเกี่ยวกับสถานการณ์ ทางเลือกหรือลำดับของทางเลือกใด? ตัวอย่างเช่นคุณสามารถคำนวณ (จำลอง) เส้นโค้งพลังงานสำหรับข้อมูลการแจกแจงแบบเอ็กซ์โพเนนเชียลเทียบกับชุดตัวเลือกการเลื่อนระดับ หรือคุณสามารถคำนวณพลังงานสำหรับปกติกับการเปลี่ยนตำแหน่ง หรือคุณสามารถคำนวณพลังงานใน Weibull ในขณะที่คุณเปลี่ยนแปลงพารามิเตอร์รูปร่าง คุณมีรายละเอียดเพิ่มเติมไหม?
Glen_b -Reinstate Monica

ในการคำนวณพลังงานจริงคุณต้องมีขนาดตัวอย่างด้วย หากคุณกำลังพยายามระบุขนาดตัวอย่างที่ให้พลังงานที่ระบุกับทางเลือกเฉพาะซึ่งสามารถทำได้ผ่านการค้นหารูท แต่บ่อยครั้งที่คุณสามารถค้นหาจุดด้วยวิธีการง่ายๆ )
Glen_b -Reinstate Monica

ตัวแปรอะไรถูกวัด? เวลาเหล่านี้หรือไม่
Glen_b -Reinstate Monica

@Glen_b นี่ไม่ใช่ครั้ง เป็นการวัดขนาดร่างกายในสองกลุ่มที่แตกต่างกัน ฉันต้องการแสดงให้เห็นว่าทั้งสองกลุ่มมีการกระจายตัวเหมือนกันเป็นหลัก แต่ถูกถามว่าฉันมีอำนาจที่จะบอกได้หรือไม่ว่าขึ้นอยู่กับขนาดของกลุ่มตัวอย่าง
ซาร่าห์

1
อา! นั่นเป็นบริบทที่มีประโยชน์สองอย่างที่อาจช่วยได้ในคำถามของคุณ ดังนั้นความคิดก็คือถ้าคุณแสดงให้เห็นว่าอำนาจในการระบุความแตกต่างเล็กน้อยบางอย่างที่สมเหตุสมผลนั้นอาจสมเหตุสมผล ใช่การวิเคราะห์พลังงานก่อนหน้าสามารถช่วยในการโต้แย้ง หลังจากความจริงแล้วฉันอาจจะมุ่งเน้นไปที่สิ่งที่ต้องการประมาณ (และช่วงความมั่นใจ) ของการเปลี่ยนแปลงมาตราส่วนเป็นตัวบ่งชี้ว่าความแตกต่างนั้นมีขนาดเล็กจริง ๆ
Glen_b -Reinstate Monica

คำตอบ:


16

การหาพลังต่อต้านทางเลือกในการยกระดับแบบเอ็กซ์โปเนนเชียลเป็นสิ่งที่ไม่ซับซ้อน

อย่างไรก็ตามฉันไม่ทราบว่าคุณควรใช้ค่าที่คำนวณได้จากข้อมูลของคุณเพื่อคำนวณว่าพลังงานนั้นอาจเป็นเช่นไร การคำนวณพลังงานแบบโพสต์เฉพาะกิจนั้นมีผลทำให้ข้อสรุปโต้กลับ (และอาจทำให้เข้าใจผิด)

พลังเช่นเดียวกับระดับนัยสำคัญเป็นปรากฏการณ์ที่คุณจัดการก่อนความจริง คุณต้องใช้ความเข้าใจเบื้องต้น (รวมถึงทฤษฎีการใช้เหตุผลหรือการศึกษาก่อนหน้านี้) เพื่อตัดสินใจเลือกชุดที่เหมาะสมในการพิจารณาและขนาดผลที่ต้องการ

นอกจากนี้คุณยังสามารถพิจารณาทางเลือกอื่น ๆ ได้หลากหลาย (เช่นคุณสามารถฝังเลขชี้กำลังภายในตระกูลแกมม่าเพื่อพิจารณาผลกระทบของกรณีที่มีความเบ้มากขึ้นหรือน้อยลง)

คำถามปกติที่คน ๆ หนึ่งอาจพยายามตอบโดยการวิเคราะห์พลังงานคือ:

1) อะไรคือพลังงานสำหรับขนาดตัวอย่างที่กำหนดที่ขนาดเอฟเฟกต์บางอย่างหรือชุดของขนาดเอฟเฟกต์ *

2) เมื่อกำหนดขนาดตัวอย่างและกำลังงานจะตรวจจับเอฟเฟกต์ขนาดใหญ่แค่ไหน?

3) เมื่อได้พลังงานที่ต้องการสำหรับขนาดของเอฟเฟกต์พิเศษขนาดตัวอย่างใดที่จำเป็นต้องใช้?

* (ที่นี่ 'ขนาดของเอฟเฟ็กต์' มีวัตถุประสงค์ทั่วไปและอาจเป็นตัวอย่างเช่นอัตราส่วนเฉพาะของวิธีการหรือความแตกต่างของค่าเฉลี่ยไม่จำเป็นต้องเป็นมาตรฐาน)

เห็นได้ชัดว่าคุณมีขนาดตัวอย่างดังนั้นคุณจึงไม่ได้ในกรณี (3) คุณอาจพิจารณากรณีและเหตุผล (2) หรือกรณี (1)

ฉันขอแนะนำเคส (1) (ซึ่งให้วิธีจัดการกับเคส (2))

ในการแสดงวิธีการกรณีและปัญหา (1) และดูว่าเกี่ยวข้องกับกรณี (2) ลองพิจารณาตัวอย่างที่เฉพาะเจาะจงด้วย:

  • ทางเลือกการเปลี่ยนขนาด

  • ประชากรทวีคูณ

  • ขนาดตัวอย่างในสองตัวอย่าง 64 และ 54

เนื่องจากขนาดตัวอย่างแตกต่างกันเราต้องพิจารณากรณีที่การแพร่กระจายสัมพัทธ์ในตัวอย่างหนึ่งมีขนาดเล็กและใหญ่กว่า 1 (ถ้ามีขนาดเท่ากันการพิจารณาความสมมาตรทำให้สามารถพิจารณาด้านเดียวได้) อย่างไรก็ตามเนื่องจากขนาดค่อนข้างใกล้เคียงกันเอฟเฟกต์จึงมีขนาดเล็กมาก ไม่ว่าในกรณีใดให้แก้ไขพารามิเตอร์สำหรับตัวอย่างใดตัวอย่างหนึ่งและเปลี่ยนอีกตัวอย่าง

ดังนั้นสิ่งหนึ่งที่ทำคือ:

ก่อน:

choose a set of scale multipliers representing different alternatives
select an nsim (say 1000)
set mu1=1

วิธีทำการคำนวณ:

for each possible scale multiplier, kappa 
  repeat nsim times
    generate a sample of size n1 from Exp(mu1) and n2 from Exp(kappa*mu1)
    perform the test
  compute the rejection rate across nsim tests at this kappa

ใน R ฉันทำสิ่งนี้:

alpha = 0.05
n1 = 54
n2 = 64
nsim = 10000
s = c(1.1,1.2,1.5,2,2.5,3) # set up grid for kappa
s = c(1/rev(s),1,s)        #  also below and at 1
rr = array(NA,length(s))   # to hold rejection rates

for(i in seq_along(s)) rr[i]=mean(replicate(nsim,
                                    ks.test(rexp(n1,1),rexp(n2,s[i]))$p.value)<alpha
                                 )

plot(rr~s,log="x",ylim=c(0,1),type="n") #set up plot
points(rr~rev(s),col=3) # plot the reversed case to show the (tiny) asymmetry+noise
points(rr~s,col=1) # plot the "real" case last 
abline(h=alpha,col=8,lty=2) # draw in alpha

ซึ่งให้กำลัง "โค้ง" ต่อไปนี้

ป้อนคำอธิบายรูปภาพที่นี่

แกน x อยู่ในระดับล็อกแกน y คืออัตราการปฏิเสธ

เป็นการยากที่จะบอกที่นี่ แต่จุดสีดำอยู่ทางด้านซ้ายสูงกว่าด้านขวาเล็กน้อย (นั่นคือมีพลังงานมากกว่าเล็กน้อยเมื่อกลุ่มตัวอย่างขนาดใหญ่มีขนาดเล็กกว่า)

การใช้ cdf ผกผันปกติเป็นการแปลงอัตราการปฏิเสธเราสามารถสร้างความสัมพันธ์ระหว่างอัตราการปฏิเสธการแปลงและ log kappa (kappa อยู่sในพล็อต แต่แกน x ถูกบันทึกการปรับขนาด) เกือบเป็นเส้นตรงมาก (ยกเว้นใกล้ 0 ) และจำนวนของการจำลองมีสูงพอที่เสียงรบกวนจะต่ำมาก - เราสามารถเพิกเฉยมันได้เพื่อจุดประสงค์ในปัจจุบัน

เราก็แค่ใช้การประมาณเชิงเส้น ด้านล่างนี้เป็นขนาดเอฟเฟกต์โดยประมาณสำหรับพลังงาน 50% และ 80% สำหรับขนาดตัวอย่างของคุณ:

ป้อนคำอธิบายรูปภาพที่นี่

ขนาดเอฟเฟกต์ในอีกด้านหนึ่ง (กลุ่มที่ใหญ่กว่ามีขนาดเล็กกว่า) จะเปลี่ยนจากเล็กน้อย (สามารถรับเอฟเฟกต์ขนาดเล็กลงเล็กน้อย) แต่มันสร้างความแตกต่างเล็กน้อยดังนั้นฉันจะไม่ใช้แรงงาน

ดังนั้นการทดสอบจะรับความแตกต่างอย่างมีนัยสำคัญ (จากอัตราส่วนของเครื่องชั่ง 1) แต่ไม่ใช่การทดสอบเล็กน้อย


ตอนนี้สำหรับความคิดเห็นบางส่วน: ฉันไม่คิดว่าการทดสอบสมมติฐานมีความเกี่ยวข้องโดยเฉพาะอย่างยิ่งกับคำถามพื้นฐานที่น่าสนใจ ( มันค่อนข้างคล้ายกันหรือไม่ ) และดังนั้นการคำนวณพลังงานเหล่านี้ไม่ได้บอกอะไรเราที่เกี่ยวข้องโดยตรงกับคำถามนั้น

ฉันคิดว่าคุณตอบคำถามที่มีประโยชน์มากขึ้นโดยการกำหนดสิ่งที่คุณคิดว่า "สำคัญเหมือนกัน" จริงหมายถึงการดำเนินการ การติดตามกิจกรรมทางสถิติอย่างมีเหตุผลควรนำไปสู่การวิเคราะห์ข้อมูลที่มีความหมาย


ขอบคุณมาก! สิ่งนี้มีประโยชน์มากชื่นชมมาก
Sarah

0

เนื่องจาก Kolmogorov-Smirnov ไม่ใช่แบบพารามิเตอร์ดังนั้นตามคำนิยามจึงไม่สามารถทำการวิเคราะห์กำลังได้ ในการมีการประมาณค่าบางอย่างคุณต้องสมมติโมเดลแบ็คกราวน์ (และเบี่ยงเบนจากโลกที่ไม่ใช่พารามิเตอร์ ... ) และใช้เพื่อคำนวณหนึ่งในตัวอย่างต่อไปนี้: ตัวอย่างขนาด, MDE หรือพลังงาน (เช่นคุณ แก้ไข / เลือกสองและคำนวณข้อที่สาม)

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