อย่างที่รู้กันว่าการที่เราอยากจะหาความสัมพันธ์ของ Quantitative variable (เช่น: รายได้ กับ IQ มีความสัมพันธ์เป็นยังไงกัน) เราสามารถใช้ Pearson-correlation เพื่อหาความสัมพันธ์ได้
แต่ถ้าข้อมูลของเราเป็น Categorical ที่ไม่ใช่ตัวเลขจะหาความสัมพันธ์ได้ไหม
คำตอบคือได้ครับ แต่ก่อนอื่นต้องทำความเข้าใจก่อนว่าข้อมูลประเภท Categorical คืออะไร

คำจำกัดความ: ตัวแปรเชิงหมวดหมู่ (categorical variable) คือ ตัวแปรที่ใช้ชนิดของข้อมูลที่แบ่งแยกเป็นกลุ่มหรือหมวดหมู่ โดยไม่สามารถแสดงเป็นค่าตัวเลขที่มีความสัมพันธ์เชิงปริมาณ
Categorical variable แบ่งออกแป็น 2 แบบ
- Ordinal
- Norminal
Ordinal คือ ตัวแปรที่มีมีลำดับชนชั้นต่อกันอย่างเช่น ประสบการณ์การทำงาน, อายุ, ระดับการศึกษา,ระดับความพึงพอใจ
Norminal คือตัวแปรที่มีความเป็นอิสระ ไม่มีลำดับชนชั้นแบบ Ordinal ยกตัวอย่างเช่น คำตอบ(ใช่ หรือ ไม่), สีที่ชอบ, ประเทศ, จังหวัด
ในบทความนี้จะเน้นไปที่การหาความสัมพันธ์ของ Norminal variable
.
.
.
“เพศมีผลต่ออัตราการรอดตายไหม! ในสถานการณ์เรือไททานิคล่ม”

เพื่อหาคำตอบ เราจะใช้เครื่องมือทางสถิติที่เรียกว่า ตารางการพิจารณาร่วม (Contingency Table) ซึ่งช่วยให้เราเห็นภาพรวมว่าคนแต่ละกลุ่ม (เช่น หญิงกับชาย) มีผลลัพธ์ที่ต่างกันอย่างไร เช่น รอดหรือไม่รอด โดยใช้โปรแกรม R ในการวิเคราะห์
Contingency Table คืออะไร
เวลาที่เรามี Categorical อย่างเช่น ชาย-หญิง หรือ เด็ก-ผู้ใหญ่,รอด-ไม่รอด)เป็นตารางความถี่ อย่างในรูปนี้

เราสนใจตัวแปร Sex กับ Survived ซึ่งเป็น Nominal ทั้งคู่
แปลงเป็นตารางความถี่

จะเห็นว่า จำนวนผู้ชายเสียชีวิตมากกว่าผู้หญิง
แต่ การที่มีผู้ชายเสียชีวิตมากกว่าผู้หญิงบอกอะไรได้บ้าง
แสดงว่าผู้หญิงจะมีโอกาศรอดตายมากกว่าผู้ชาย ?
จะบอกแบบนี้ก็ยังไม่ถูกครับ..เราจะมาดูกันว่า 2 ตัวแปรนี้มีความสัมพันธ์กันจริงๆไหม โดยใช้ Chi-square test กันครับ
ถามว่าผู้ชายกับผู้หญิง มีความสัมพันธ์ กับการรอดชีวิตหรือป่าว
อย่างแรกเราก็ต้องทำให้สิ่งที่เราสนใจออกมาเป็นรูปแบบตารางไขว้ หรือ contingency table กันก่อน ถ้าเป็นใน R ใช้ table() หรือ xtab()
xtabs(Freq~Sex+Survived,df)
Expected Value
สิ่งที่ได้หลังจากเราสร้าง Contingency ก็คือความถี่ของทั้ง 2 ตัวแปรที่ไขว้กันอยู่ ดั่งในรูป

โดยที่ คนบนเรือทั้งหมด N= 2201
จำนวนผู้ชายทั้งหมด n(Male)=1731
และ ผู้หญิง n(Famale)= 470
คนรอดชีวิตn(Yes) =711
ไม่รอดชีวิต n(No)=1490

*** มาคำนวน Expected Value ของแต่ละตัวกัน Expected Value ต่อไปนี้จะใช้ ตัวย่อว่า E(X)แทนนะครับ
E(Male and No) = n(Male) * n(No)/N = 1731 * 1490 /2201 = 1171.826
E(Male and Yes) = n(Male) * n(Yes)/N = 1731 * 711 /2201 = 559.1736
E(Female and No) = n(Female) * n(No)/N = 470 * 1490 /2201 = 318.1736
E(Female and Yes) = n(Female) * n(Yes)/N = 470 * 711 /2201 = 151.8264

Expected value ที่เราเพิ่งคำนวณไปคือค่าที่บอกว่า “ถ้าเหตุการณ์ทั้งสอง เป็นอิสระต่อกัน (Independence) มันควรจะมีค่าเป็นเท่าไหร่ ” นี่คือหัวใจสำคัญของ Chi-Square เลย
สมมติฐานของ Chi-Square Test of Independence บอกไว้ว่า:
- H0: (null hypothesis) The two variables are independent.
- H1: (alternative hypothesis) The two variables are not independent. (i.e. they are associated)
กล่าวคือถ้าเราเทียบค่าจริงกับค่าที่ควรจะเป็น(Expected)แล้วมันไม่ต่างกันมากเราก็สรุปได้ว่า : ตัวแปร 2 ตัวมีความเป็นอิสระต่อกัน
ในทางตรงข้าม ถ้าเกิดมี Diff ระหว่าง Expected กับ ค่าจริงมากเกินไป จะทำให้เราต้องปฏิเสธ สมมติฐานหลัก (Reject null hypothesis) สรุปคือ : ตัวแปร 2 ตัวมีความสัมพันธ์ต่อกัน
.
แล้วเราจะรู้ได้ยังไงว่าต่างกันแค่ไหนถึงเรียกได้ว่าไม่เป็นอิสระ(Dependence) หรือแตกต่างกันน้อยแค่ไหนจึงจะเป็นอิสระ (Independence)
.

หลักการในการวัดของ Chi-square ก็คือ square ตามชื่อเลย (ลืมบอกไปว่า Chi-Square เรียกอีกชื่อคือ X2) :

เห็นสมการนี้แล้วก็อย่างเพิ่งสับสนไปครับ ตารางข้างล่างจะ คำนวณให้ดู Step By Step
O =ค่าจริงที่เรามี
E =ค่า Expected ที่เราคำนวณไว้ก่อนหน้านี้
เขียนอีกแบบคือ

เอาผลต่าง มายกกำลัง 2 แล้วหารด้วย Expected Value
| Sex | Y/N | O | E | X | X2 | X2/E |
|---|
| M | No | 1364 | 1172 | 192.1 | 36930 | 31 |
| F | No | 126 | 318 | -192.1 | 36930 | 116 |
| M | Yes | 367 | 559 | -192.1 | 36930 | 66 |
| F | Yes | 344 | 152 | 192.1 | 36930 | 243 |
จากนั้นก็ Sum Column สุดท้ายเข้าด้วยกัน ก็จะได้ค่า Chi-square นั้นเอง
31+116+66+243 =456
X2 = 456
จำเลข 456 นี้ไว้
แล้วเปิดตาราง Chi-square เพื่อหา Critical Region
ตัวอย่างตาราง Chi-square
ก่อนที่เราจะดูตารางเราต้องรู้ก่อนว่า Parameter แต่ละตัวของ ตารางที่มีอะไรบ้าง
- Alpha (Default ของโปรแกรมสถิติคือ 0.05)
- Degree of freedom = (r – 1) * (c – 1)
- r : จำนวนแถว
- c : จำนวนคอลลั่ม
Table เราเป็น 2×2 matric (2 rows ,2columns)
= (2-1) * (2-1) = 1
ข้อควรระวัง: ให้ดูว่าตารางเป็น Left Hand หรือ Right Hand
ถ้าตารางที่ดูเป็น Left Hand ให้เอา 1-Alpha
ถ้าเป็น Right Hand ให้ใช้ค่า Alpha ได้เลย
คราวนี้เปิดตารางที่ Alpha = 0.05 และ Df = 1
จะได้ Tablealpha=0.05 df=1= 3.841
เอาค่า Critical Value ที่ได้ ไปเทียบกับค่าที่คำนวนได้ก่อนหน้านี้

จะเห็นได้ว่า ค่า X^2 >= Critical Value (แถบสีดำ)
หมายความว่า ตัวแปร Categorical 2 ตัว Sex กับ Survived มีความสัมพันธ์กันอย่างมีนัยยะสำคัญทางสถิติ
.
ทุกคนที่อ่านจนมาถึงตรงนี้คงคิดว่า”ทำไมมันดูยุ่งยากจังใช่ไหมครับ”
แต่จริงๆเราไม่ต้องมานั่งคำนวณอะไรแบบนี้เลย เพราะ ในโปรแกรม R
มีฟังก์ชั่น Chisq.test แค่ใส่ Cotingency table ก็ได้การคำนวณที่เราคำนวณไว้ก่อนหน้านี้แล้วว
m <- xtabs(Freq~Survived+Sex,Titanic)
chisq.test(m)
Result:
Pearson's Chi-squared test with Yates' continuity correction
data: m
X-squared = 454.5, df = 1, p-value < 2.2e-16
ค่า X-squared = 454.5 ใกล้เคียงกับที่คำนวนมาเลย ง่ายมากกก!!
มีอีก1 วิธีดูคือ:
ดูที่ค่า p-value ถ้าน้อยกว่าค่าalpha (0.05) แสดงว่าตัวแปร2ตัวมีความสัมพันธ์กัน
ขอบคุณทุกๆคนที่สละเวลามาอ่านบทความนี้นะครับ 🙏🏻
.
.
.
ใครสนใจอ่านต่อผมแนะนำเว็ปนี้เลยคร้าบ Statistics by Jim – Statistics By Jim อธิบาย Basic Statistic ได้ดีมากๆ
References
Using Contingency Tables to Calculate Probabilities – Statistics By Jim
Joint Probability: Definition, Formula & Examples – Statistics By Jim
One response to “หาความสัมพันธ์ของตัวแปร Categorical ด้วย Chi-square test”
-
Fc เลยครับพรี่

Leave a Reply