สร้างการแจกแจงแบบ null จากค่า pvalues

Oct 06 2020

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

นี่คือลักษณะของข้อมูล ( ลิงค์ ):

ฉันกำลังใช้การทดสอบที่แน่นอนของฟิชเชอร์กับประชากรภายใต้ 2 เงื่อนไข (ไม่ได้รับการรักษา, ได้รับการรักษา) ภายใต้รหัสเดียวกัน

data.merged = merge(x=subset(df,condition == 'UNTREATED'), y= subset(df, condition =='TREATED')), by ='ID')

อย่างไรก็ตามเนื่องจากรูปแบบการทดลองบางอย่างการทดลองที่ควบคุมส่วนใหญ่ปฏิเสธสมมติฐานว่างที่ a $ p_{val} <0.05$. สมมติฐานว่างบางส่วนของเงื่อนไขการทดลองจริงจะถูกปฏิเสธที่ a$ p_{val} <0.05 $. อย่างไรก็ตามค่าเหล่านี้มีขนาดต่ำกว่าเงื่อนไขการควบคุมของฉัน สิ่งนี้บ่งบอกถึงผลกระทบที่รุนแรงขึ้นของเงื่อนไขการทดลองเหล่านี้ อย่างไรก็ตามฉันไม่ทราบวิธีการที่เหมาะสมในการหาปริมาณการเปลี่ยนแปลงเหล่านี้และสรุปได้ในเชิงสถิติ

ตัวอย่างลักษณะของข้อมูล:

ID      Pval            Condition
B0_W1   2.890032e-16    DUMMY 
B0_W10  7.969311e-38    DUMMY
B0_W11  8.078795e-25    DUMMY   
B0_W2   3.149525e-30    Gene_A
B1_W1   3.767914e-287   Gene_B
B1_W10  3.489684e-56    Gene_X
B1_W10  3.489684e-56    Gene_Y

ความคิดหนึ่งที่ฉันมี:

  1. เลือกเงื่อนไข ctrl และปล่อยให้ $ X = -ln(p_{val}) $ ซึ่งจะแจกจ่ายข้อมูลที่แปลงแล้วเป็นการแจกแจงเลขชี้กำลัง
  2. ใช้ MLE เพื่อค้นหาไฟล์ $\lambda$พารามิเตอร์ของการแจกแจงเลขชี้กำลัง นี่จะเป็นการแจกแจงโมฆะของฉัน
  3. ใช้การเปลี่ยนแปลงเดียวกันกับส่วนที่เหลือของไฟล์ $p_{val}$ ที่สอดคล้องกับเงื่อนไขการทดสอบ
  4. ใช้ cdf ของการแจกแจงค่า null เพื่อรับ "ค่าตอบแทนที่ปรับแล้ว" ใหม่

สิ่งนี้จะให้ไฟล์ $\alpha$เกณฑ์สำหรับ pvalues ​​เดิมและแปลงผลลัพธ์ตามโดยใช้ cdf การแจกแจงของ null ขั้นตอนเหล่านี้ถูกต้องหรือไม่ ใช้ MLE เพื่อหาอัตราที่ถูกต้องหรือละเมิดสมมติฐานบางประการเพื่อให้บรรลุเป้าหมายสุดท้ายของฉันหรือไม่ วิธีอื่นที่ฉันสามารถลองได้หรือไม่?

คำตอบ

1 Eoin Oct 13 2020 at 19:53

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

glmer(cbind(Population_Pos, Population_Neg) ~ Condition * Type + (1|ID)

แต่เนื่องจากนั่นไม่ใช่คำถามของคุณฉันจะไม่ลงลึกในเรื่องนี้


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

  1. สำหรับการทดสอบแต่ละครั้งให้คำนวณการวัดขนาดเอฟเฟกต์ นี่อาจเป็นสถิติ Chi-squared (คำนวณสำหรับการทดสอบที่แน่นอนของฟิชเชอร์) แต่อาจเหมาะสมกว่าที่จะใช้อัตราต่อรอง:$\frac{\text{Pos}_{\text{Treated}}}{\text{Neg}_{\text{Treated}}} \div \frac{\text{Pos}_{\text{Untreated}}}{\text{Neg}_{\text{Untreated}}} $.
  2. พล็อตการกระจายของขนาดเอฟเฟกต์สำหรับการทดลองที่ใช้งานอยู่และการทดลองควบคุม คุณควรเห็นเอฟเฟกต์ขนาดใหญ่สำหรับการทดลองที่ใช้งานอยู่
  3. สำหรับการทดสอบที่ทำงานอยู่คุณสามารถตรวจสอบจำนวนการทดสอบควบคุมที่มีขนาดผลกระทบที่ใหญ่กว่า ตัวอย่างเช่นหากการทดสอบที่ใช้งานอยู่มีขนาดเอฟเฟกต์มากกว่าใน 99% ของการทดลองควบคุม p-value ด้านเดียวสำหรับสมมติฐานว่างที่ขนาดเอฟเฟกต์สำหรับการทดสอบนี้มาจากการแจกแจงแบบเดียวกับขนาดเอฟเฟกต์ควบคุมคือ$p < .01$.

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

-

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