สร้างการแจกแจงแบบ null จากค่า pvalues
ฉันมีชุดการทดลองที่ฉันใช้การทดสอบที่แน่นอนของฟิชเชอร์เพื่อสรุปการเปลี่ยนแปลงของประชากรเซลล์ในเชิงสถิติ ข้อมูลบางส่วนเป็นการทดลองจำลองที่จำลองการทดลองควบคุมของเราซึ่งอธิบายถึงโมเดลว่าง (คอลัมน์ประเภท)
นี่คือลักษณะของข้อมูล ( ลิงค์ ):
ฉันกำลังใช้การทดสอบที่แน่นอนของฟิชเชอร์กับประชากรภายใต้ 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
ความคิดหนึ่งที่ฉันมี:
- เลือกเงื่อนไข ctrl และปล่อยให้ $ X = -ln(p_{val}) $ ซึ่งจะแจกจ่ายข้อมูลที่แปลงแล้วเป็นการแจกแจงเลขชี้กำลัง
- ใช้ MLE เพื่อค้นหาไฟล์ $\lambda$พารามิเตอร์ของการแจกแจงเลขชี้กำลัง นี่จะเป็นการแจกแจงโมฆะของฉัน
- ใช้การเปลี่ยนแปลงเดียวกันกับส่วนที่เหลือของไฟล์ $p_{val}$ ที่สอดคล้องกับเงื่อนไขการทดสอบ
- ใช้ cdf ของการแจกแจงค่า null เพื่อรับ "ค่าตอบแทนที่ปรับแล้ว" ใหม่
สิ่งนี้จะให้ไฟล์ $\alpha$เกณฑ์สำหรับ pvalues เดิมและแปลงผลลัพธ์ตามโดยใช้ cdf การแจกแจงของ null ขั้นตอนเหล่านี้ถูกต้องหรือไม่ ใช้ MLE เพื่อหาอัตราที่ถูกต้องหรือละเมิดสมมติฐานบางประการเพื่อให้บรรลุเป้าหมายสุดท้ายของฉันหรือไม่ วิธีอื่นที่ฉันสามารถลองได้หรือไม่?
คำตอบ
ตามที่ระบุไว้ในความคิดเห็นอาจเป็นการดีที่สุดที่จะใช้วิธีนี้โดยใช้แบบจำลองการถดถอยโลจิสติกหลายระดับตามแนวของ
glmer(cbind(Population_Pos, Population_Neg) ~ Condition * Type + (1|ID)
แต่เนื่องจากนั่นไม่ใช่คำถามของคุณฉันจะไม่ลงลึกในเรื่องนี้
ในแนวทางที่คุณทำฉันไม่คิดว่าไอเดียของคุณกับค่า p ที่เปลี่ยนไปใช้ได้ผล แต่มีวิธีแก้ปัญหาที่ง่ายกว่านี้ สิ่งนี้จะถือว่าคุณมีการทดลองควบคุมจำนวนมาก
- สำหรับการทดสอบแต่ละครั้งให้คำนวณการวัดขนาดเอฟเฟกต์ นี่อาจเป็นสถิติ Chi-squared (คำนวณสำหรับการทดสอบที่แน่นอนของฟิชเชอร์) แต่อาจเหมาะสมกว่าที่จะใช้อัตราต่อรอง:$\frac{\text{Pos}_{\text{Treated}}}{\text{Neg}_{\text{Treated}}} \div \frac{\text{Pos}_{\text{Untreated}}}{\text{Neg}_{\text{Untreated}}} $.
- พล็อตการกระจายของขนาดเอฟเฟกต์สำหรับการทดลองที่ใช้งานอยู่และการทดลองควบคุม คุณควรเห็นเอฟเฟกต์ขนาดใหญ่สำหรับการทดลองที่ใช้งานอยู่
- สำหรับการทดสอบที่ทำงานอยู่คุณสามารถตรวจสอบจำนวนการทดสอบควบคุมที่มีขนาดผลกระทบที่ใหญ่กว่า ตัวอย่างเช่นหากการทดสอบที่ใช้งานอยู่มีขนาดเอฟเฟกต์มากกว่าใน 99% ของการทดลองควบคุม p-value ด้านเดียวสำหรับสมมติฐานว่างที่ขนาดเอฟเฟกต์สำหรับการทดสอบนี้มาจากการแจกแจงแบบเดียวกับขนาดเอฟเฟกต์ควบคุมคือ$p < .01$.
อย่างไรก็ตามนี่เป็นการประมาณที่ใช้ได้เฉพาะเมื่อคุณมีการทดลองควบคุมจำนวนมากเท่านั้น หากในความเป็นจริงคุณมีการทดลองควบคุมเพียง 8 รายการการประมาณนี้ไม่มีประโยชน์เลย!
-
เพื่ออธิบายรายละเอียดว่าเหตุใดจึงแตกต่างจากสิ่งที่คุณเสนอก่อนอื่นโปรดทราบว่าค่า p ไม่ได้เป็นตัววัดขนาดเอฟเฟกต์และขึ้นอยู่กับขนาดของกลุ่มตัวอย่างดังนั้นคุณจะไม่ตอบคำถามเดียวกันหากคุณใช้ค่า p ที่นี่. ประการที่สองเราไม่สามารถสรุปการแจกแจงสำหรับค่า p (หรือขนาดผล) จากการทดลองควบคุมได้เนื่องจากดูเหมือนว่าสมมติฐานว่างจะไม่เป็นจริงสำหรับพวกเขา (ถ้าค่าว่างเป็นจริงค่า p จะเป็น การแจกแจงแบบไม่เป็นทางการระหว่าง 0 ถึง 1) นั่นเป็นเหตุผลที่ฉันแนะนำการประมาณที่ไม่ใช่พารามิเตอร์แทน