Data Analytics | Insights & Research

PUAY101

หาความสัมพันธ์ของตัวแปร Categorical ด้วย Chi-square test

อย่างที่รู้กันว่าการที่เราอยากจะหาความสัมพันธ์ของ 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

SexY/NOEXX2X2/E
MNo13641172192.13693031
FNo126318-192.136930116
MYes367559-192.13693066
FYes344152192.136930243

จากนั้นก็ 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”

  1. jakkawat sukkasam Avatar

    Fc เลยครับพรี่

Leave a Reply

Comments

One response to “หาความสัมพันธ์ของตัวแปร Categorical ด้วย Chi-square test”

  1. jakkawat sukkasam Avatar

    Fc เลยครับพรี่

Leave a Reply

Discover more from PUAY101

Subscribe now to keep reading and get access to the full archive.

Continue reading