คำเตือนใน R - การประมาณ Chi-squared อาจไม่ถูกต้อง


40

ฉันมีข้อมูลแสดงผลการสอบเข้านักดับเพลิง ฉันกำลังทดสอบสมมติฐานที่ผลการสอบและเชื้อชาติไม่ได้เป็นอิสระร่วมกัน เพื่อทดสอบสิ่งนี้ฉันได้ทำการทดสอบเพียร์สันไคสแควร์ในอาร์ผลลัพธ์แสดงให้เห็นสิ่งที่ฉันคาดหวัง แต่ก็มีคำเตือนว่า " In chisq.test(a) : Chi-squared approximation may be incorrect"

> a
       white black asian hispanic
pass       5     2     2        0
noShow     0     1     0        0
fail       0     2     3        4
> chisq.test(a)

    Pearson's Chi-squared test

data:  a
X-squared = 12.6667, df = 6, p-value = 0.04865

Warning message:
In chisq.test(a) : Chi-squared approximation may be incorrect

ไม่มีใครรู้ว่าทำไมมันจึงมีคำเตือน? เป็นเพราะฉันใช้วิธีที่ผิดหรือเปล่า?


2
อย่าเชื่อถือผลลัพธ์ด้วยการวัดเพียงเล็กน้อย เมื่อคุณมีหลายร้อยคนในแต่ละคอลัมน์คุณอาจมีความมั่นใจในผลลัพธ์ของคุณ ถึงกระนั้นผลที่ได้อาจจะเป็นเพราะพื้นที่ใกล้เคียงหรือความมั่งคั่งมากกว่าการแข่งขัน
Rodrigo

คำตอบ:


41

มันให้คำเตือนเพราะค่าที่คาดหวังจำนวนมากจะมีขนาดเล็กมากดังนั้นการประมาณค่าของ p อาจไม่ถูกต้อง

ในRคุณสามารถใช้chisq.test(a, simulate.p.value = TRUE)เพื่อจำลองค่า p

อย่างไรก็ตามด้วยขนาดของเซลล์ขนาดเล็กการประมาณการทั้งหมดจะไม่ดี อาจเป็นการดีที่จะทดสอบการผ่านและล้มเหลว (การลบ "ไม่แสดง") ด้วยการไคสแควร์หรือการถดถอยโลจิสติก แน่นอนเนื่องจากเป็นที่ชัดเจนว่าคะแนนผ่าน / ไม่ผ่านเป็นตัวแปรตามดังนั้นการถดถอยโลจิสติกอาจดีกว่า


สิ่งที่จริงsimulate.p.value = TRUEไม่เมื่อเข้ามาchisq.test?
Al14

1
มันใช้แบบจำลองเพื่อค้นหาค่า p
Peter Flom - Reinstate Monica

1
โปรดทราบว่าsimulate.p.value = TRUEใช้การจำลองตามเงื่อนไขบนระยะขอบดังนั้นจึงเป็นรุ่นทดสอบฟิชเชอร์ที่แน่นอน
kjetil b halvorsen

23

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

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

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

แต่ในกรณีใด ๆ หากคุณยินดีที่จะสภาพบนขอบ (ตามที่คุณทำเมื่อทำงานทดสอบที่แน่นอนฟิชเชอร์) คุณสามารถจัดการกับปัญหาที่เกิดขึ้นมากได้อย่างง่ายดายใน R; ตั้งค่าsimulate.p.valueอาร์กิวเมนต์เป็นTRUE; จากนั้นคุณจะไม่พึ่งพาการประมาณไคสแควร์กับการแจกแจงสถิติการทดสอบ


คุณช่วยอธิบายให้ฉันฟังหน่อยได้ไหมว่าทำไม .. "การประมาณค่าไคสแควร์กับการแจกแจงสถิติการทดสอบขึ้นอยู่กับจำนวนที่มีการแจกแจงแบบปกติ" ฉันไม่เข้าใจว่าสิ่งนี้จะเป็นจริงได้อย่างไรหากตัวอย่างหนึ่งมีตารางฉุกเฉิน 2x2 การนับสามารถกระจายได้อย่างไร (โดยประมาณ) ปกติ? การนับจำนวนขาว, ขาว, สเปนและเอเชียสามารถกระจายได้อย่างไร? คุณหมายถึงว่าเท่ากันเล็กน้อย? และสิ่งนี้เกี่ยวข้องกับคำถามนี้อย่างไร : stats.stackexchange.com/questions/141407/…
Erosennin

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

ก่อนอื่นขอบคุณที่สละเวลา! ดังนั้นคุณกำลังบอกว่าค่านับ "ลง" ตารางฉุกเฉินควรเป็นหลายตัวแปร (แย่ลง) ปกติถ้าเราดูข้อสังเกตหลาย ๆ สิ่งนี้จะไม่ได้หมายความว่าการนับจำนวนของแต่ละเซลล์ควรเป็นปกติเช่นกันและยังนับ "ด้านข้าง" ในตารางฉุกเฉิน (ฉันคิดว่านี่คือสิ่งที่คุณหมายถึง 'ข้าม') ถ้ามีเซลล์ที่มีค่าที่คาดไว้ 5 ควรกระจายตามปกติประมาณ 5 จริงไหม? ดังนั้นหากเซลล์ที่อยู่ตรงข้ามมีค่า 40 คาดว่าเซลล์นี้ควรกระจายตามปกติประมาณ 40 และรวมกันหลายตัวแปรปกติที่มีค่าเฉลี่ย 5 และ 40 ไม่ใช่?
Erosennin

1
ในกรณีทั่วไปมีระยะขอบคงที่ (ซึ่งเป็นสิ่งที่ฉันมีอยู่ในใจ) เราจะรวมตัวแปรทั้งหมดในตารางลงในเวกเตอร์ที่มีความยาวแต่มันอยู่ในมิติไฮเปอร์เพลนของมิติ - นั่นคือความเสื่อม ในกรณี 2x2 นั่นคือ 1 ดีกรีอิสระและ 4 เซลล์นับอยู่ตามแนวเส้นในพื้นที่ 4D แต่ไม่มีที่ว่างพอที่จะให้รายละเอียดที่เหมาะสม คุณยังไม่ได้รับมันมากนัก (แม้ว่าคุณจะใกล้ชิดกว่า) คุณอาจต้องการที่จะโพสต์สิ่งใหม่เช่นคำถามแรกของคุณ (เกี่ยวกับความรู้สึกที่ค่าเป็นปกติประมาณ) เป็นคำถาม r c ( r - 1 ) ( c - 1 )r×crc(r1)(c1)
Glen_b

นี่มันหนักและ intereseting มาก หากคุณเคยมีเวลาที่ฉันโพสต์ซ้ำคำถามแรกของฉันที่นี่: stats.stackexchange.com/questions/142429/...
Erosennin

12

สำหรับการนับจำนวนเล็กน้อยคุณสามารถใช้การทดสอบที่แน่นอนของ Fisher:

> fisher.test(a)

        Fisher's Exact Test for Count Data

data:  a 
p-value = 0.02618
alternative hypothesis: two.sided 

3

โปรดดูส่วน "ข้อสมมติฐาน" ของบทความทดสอบ Chi-squaredของPearson

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


6
มีปัญหาสองข้อเกี่ยวกับกฎการนับนิ้วโป้งน้อยกว่าห้าของคุณ ข้อแรกคือคำสั่งที่ถูกต้องอ้างถึงจำนวนที่คาดหวังมากกว่าจำนวนจริง ประการที่สองคือมันรุนแรงเกินไป การประมาณมักจะทำงานได้ดีแม้เมื่อสัดส่วนของการนับที่คาดหวังน้อยกว่าห้า ในกรณีนี้ที่ระยะขอบของคอลัมน์ทั้งหมดห้าหรือน้อยกว่าจะเห็นได้ชัดว่าการนับที่คาดหวังทุกครั้งมีขนาดเล็กและดังนั้นเราจึงควรระมัดระวัง นอกจากนี้การแก้ไขที่กล่าวถึงในบทความ Wikipedia จะใช้เฉพาะในกรณี DF หนึ่งกรณีเท่านั้น กรณีนี้มี 6 DF χ2
whuber

0

คำถามหลักของคุณพูดถึงขนาดตัวอย่าง แต่ฉันเห็นว่ามีการเปรียบเทียบมากกว่าสองกลุ่ม หากค่า p จากการทดสอบมีค่าน้อยกว่า 0.05 จะเป็นการยากที่จะตีความผลลัพธ์ ดังนั้นฉันกำลังแบ่งปันสคริปต์สั้น ๆ ที่ฉันใช้ในสถานการณ์เช่นนี้:

# Load the required packages:
library(MASS) # for chisq
library(descr) # for crosstable

CrossTable(a$exam_result, a$ethnicity
       fisher = T, chisq = T, expected = T,
       prop.c = F, prop.t = F, prop.chisq = F, 
       sresid = T, format = 'SPSS')

รหัสนี้จะสร้างทั้ง Chi-square ของ Pearson และ Chi's Fisher มันก่อให้เกิดการนับเช่นเดียวกับสัดส่วนของแต่ละรายการในตาราง ยึดตามค่ามาตรฐานที่เหลืออยู่หรือคะแนนค่า z คือ

sresid

หากอยู่นอกช่วง | 1.96 | เช่นน้อยกว่า -1.96 หรือมากกว่า 1.96 ดังนั้นจึงมีนัยสำคัญ p <0.05 สัญญาณจะบ่งบอกว่ามีความสัมพันธ์เชิงบวกหรือเชิงลบ

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