สามารถใช้ไคสแควร์เพื่อเปรียบเทียบสัดส่วนได้หรือไม่?


13

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

ตัวอย่างเช่นนี่คือตารางผลการสำรวจเกี่ยวกับสีโปรดของผู้คน (n = 15 + 13 + 10 + 17 = 55 ผู้ตอบแบบสอบถามทั้งหมด):

red,blue,green,yellow

15,13,10,17

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

คำถาม: สามารถทำการทดสอบตามสัดส่วนของผู้ตอบแบบสอบถามทั้งหมดที่ชอบสีที่ต้องการได้หรือไม่? ชอบด้านล่าง:

red,blue,green,yellow

0.273,0.236,0.182,0.309

แน่นอนที่ 0.273 + 0.236 + 0.182 + 0.309 = 1

หากการทดสอบไคสแควร์ไม่เหมาะในกรณีนี้การทดสอบแบบใดจะเป็นอย่างไร ขอบคุณ!

แก้ไข: ฉันลอง @Roman Luštrikคำตอบด้านล่างและได้ผลลัพธ์ต่อไปนี้เหตุใดฉันจึงไม่ได้รับค่า p และทำไม R บอกว่า "การประมาณ Chi-squared อาจไม่ถูกต้อง"?

> chisq.test(c(0,0,0,8,6,2,0,0),p = c(0.406197174,0.088746395,0.025193306,0.42041479,0.03192905,0.018328576,0.009190708,0))

    Chi-squared test for given probabilities

data:  c(0, 0, 0, 8, 6, 2, 0, 0) 
X-squared = NaN, df = 7, p-value = NA

Warning message:
In chisq.test(c(0, 0, 0, 8, 6, 2, 0, 0), p = c(0.406197174, 0.088746395,  :
  Chi-squared approximation may be incorrect

1
ในกรณีที่สองคุณสมมติว่าคุณรู้ขนาดตัวอย่างทั้งหมดหรือไม่ หรือไม่?
พระคาร์ดินัล

@ cardinal: ใช่ฉันรู้ขนาดตัวอย่างทั้งหมดแล้ว
hpy

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

ฉันสงสัยว่าคุณกำลังถามเกี่ยวกับการทดสอบ "คุณงามความพอดี" (โดยใช้ไคสแควร์) การใช้ซึ่งถูกอธิบายร้อง ไชโย, Tal
Tal Galili

คำตอบ:


7

แก้ไขฉันถ้าฉันผิด แต่ฉันคิดว่าสิ่งนี้สามารถทำได้ใน R โดยใช้คำสั่งนี้

> chisq.test(c(15,13,10,17))

    Chi-squared test for given probabilities

data:  c(15, 13, 10, 17) 
X-squared = 1.9455, df = 3, p-value = 0.5838

นี่จะถือว่าสัดส่วน 1/4 แต่ละอัน pคุณสามารถปรับเปลี่ยนค่าคาดว่าผ่านการโต้แย้ง ตัวอย่างเช่นคุณคิดว่าผู้คนอาจชอบสีใดสีหนึ่งมากกว่าสีอื่น

> chisq.test(c(15,13,10,17), p = c(0.5, 0.3, 0.1, 0.1))

    Chi-squared test for given probabilities

data:  c(15, 13, 10, 17) 
X-squared = 34.1515, df = 3, p-value = 1.841e-07

2
ฉันสงสัยว่าคุณเห็นสิ่งนี้เพราะมีจำนวนเซลล์น้อย (หนังสือบางเล่มที่ฉันอ่านแนะนำให้ใช้เวลา 5 นาทีต่อเซลล์) อาจมีคนที่มีความรู้ในเรื่องสามารถชิปใน
Roman Luštrik

1
นอกจากนี้โปรดสังเกตว่าคุณสามารถรับค่า ap ถ้าคุณทำให้ความน่าจะเป็นสุดท้ายของคุณมากกว่าศูนย์ (แต่คำเตือนยังคงอยู่)
Roman Luštrik

1
Ott & Longnecker (แนะนำวิธีการทางสถิติและการวิเคราะห์ข้อมูลรุ่นที่ 5) ในหน้า 504 ว่าแต่ละเซลล์ควรมีอย่างน้อยห้าเซลล์เพื่อใช้การประมาณค่าอย่างสะดวกสบาย
Roman Luštrik

1
@ ปากกาหยวน: คุณควรจะพูดถึงว่าคุณมีจำนวนที่ค่อนข้างเป็นศูนย์ โรมันถูกต้องการใช้ Chi-square ในกรณีนี้ใช้ไม่ได้กับเหตุผลที่เขาพูดถึง
Joris Meys

1
@ ปากกาหยวน: ฉันได้เพิ่มคำตอบเพื่อให้ตัวเลือกแก่คุณ
Joris Meys

6

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

  • ในคำตอบของ Henry คือ 0 สำหรับอย่างน้อยหนึ่ง iei
  • ในคำตอบของความน่าจะเป็นคือ 0 สำหรับอย่างน้อยหนึ่ง inpi

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

ให้:

X <- c(0,0,0,8,6,2,0,0)
p <- c(0.406197174,0.088746395,0.025193306,0.42041479,0.03192905,0.018328576,0.009190708,0)

คุณสามารถทำได้:

> p2 <- p + 1e-6
> chisq.test(X,p2)

        Pearson's Chi-squared test

data:  X and p2 
X-squared = 24, df = 21, p-value = 0.2931

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

ในรหัส R อาจเป็น (ทีละขั้นตอน):

# The function to calculate the adapted statistic.
# We add 0.5 to the expected value to avoid dividing by 0
Statistic <- function(o,e){
    e <- e+0.5
    sum(((o-e)^2)/e)
}

# Set up the bootstraps, based on the multinomial distribution
n <- 10000
bootstraps <- rmultinom(n,size=sum(X),p=p)

# calculate the expected values
expected <- p*sum(X)

# calculate the statistic for the sample and the bootstrap
ChisqSamp <- Statistic(X,expected)
ChisqDist <- apply(bootstraps,2,Statistic,expected)

# calculate the p-value
p.value <- sum(ChisqSamp < sort(ChisqDist))/n
p.value

สิ่งนี้ให้ค่า p เป็น 0 ซึ่งมากขึ้นสอดคล้องกับความแตกต่างระหว่างการสังเกตและการคาดหวัง โปรดทราบว่าวิธีการนี้ถือว่าข้อมูลของคุณมาจากการกระจายแบบหลายส่วน หากสมมติฐานนี้ไม่เก็บค่า p-value ก็จะไม่ถือเช่นกัน


1
pi=0iipi=0pi=1/6i61,,10

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

pi=0

4

1E(xi)

ψ=ixilog(xinpi)

xiii{red, blue, green, yellow}n55pipi=pj

χ2=i(xinpi)2npi2ψ

fi=xin

ψ=nifilog(fipi)
χ2=ni(fipi)2pi

ψψpi1piψ

H1H2piψ1ψ2exp(ψ1ψ2)H2H1exp(12χ1212χ22)

H2ψ2=χ22=0

χ22npi<10ψ


1
ฉันค่อนข้างมั่นใจว่าความถี่ที่คาดหวังจะไม่สามารถมีขนาดใหญ่กว่า 10 ได้ :) :)
พระคาร์ดินัล

@cardinal - ดีใจที่นี่เป็นคำคัดค้านของคุณ - เพราะนั่นหมายถึงคำตอบที่เหลือของฉันจะต้องดี :)
ความน่าจะเป็นทาง

ว้าวฉันหวังว่าฉันจะไม่ได้รับชื่อเสียงจากการจู้จี้จุกจิก / ไม่พอใจ
พระคาร์ดินัล

1
ψ2ψχ2χ22ψ0χ22ψχ2
พระคาร์ดินัล

χ22ψ

3

ใช่คุณสามารถทดสอบสมมติฐานว่าง: "H0: prop (แดง) = prop (สีน้ำเงิน) = prop (สีเขียว) = prop (สีเหลือง) = 1/4" โดยใช้การทดสอบไคสแควร์ที่เปรียบเทียบสัดส่วนของการสำรวจ (0.273 , ... ) ตามสัดส่วนที่คาดหวัง (1/4, 1/4, 1/4, 1/4)


เพื่อยืนยันว่ามันจะทำงานกับสัดส่วนที่คาดหวังซึ่งไม่เท่ากันหรือไม่
hpy

4
การทดสอบจะไม่มีความหมายหากคุณไม่ทราบขนาดตัวอย่างเต็มรูปแบบ สัดส่วนของ 1.0 / 0.0 / 0.0 / 0.0 หมายถึงสิ่งที่แตกต่างกันมากถ้าพวกเขามาจากกลุ่มตัวอย่างที่ 1 เมื่อเทียบกับขนาด 100 ตัวอย่าง
Aaron

ใช่ฉันรู้ขนาดตัวอย่างทั้งหมดแล้ว
hpy

2

สถิติการทดสอบสำหรับการทดสอบไคสแควร์ของเพียร์สันคือ

i=1n(OiEi)2Ei

oi=Oinei=Einn=i=1nOii=1nei=1

ni=1n(oiei)2ei

ดังนั้นการทดสอบความสำคัญของสัดส่วนที่สังเกตได้นั้นขึ้นอยู่กับขนาดตัวอย่างให้มากที่สุดเท่าที่จะทำได้

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