เฮลโหลลลลลลลลล สวัสดีผู้อ่าน แฟนเพจของเราทุกคน ยินดีต้อนรับสู่ซีรี่ล่าสุดของเรา
Statistics Mondee (อ่านว่า มันส์ดี!) เป็นซีรี่บทความเกี่ยวกับเรื่องสถิติและความน่าจะเป็นเวอร์ชั่นเข้าใจง่าย บทความใหม่ออกทุกวันจันทร์ อ่านได้ทุกเพศทุกวัยโดยเฉพาะผู้อ่านที่สนใจด้าน data science
โดย EP แรกของซีรี่จะอธิบายเรื่อง inverse probability หรืออีกชื่อที่หลายคนน่าจะผ่านหูผ่านตามาบ้างคือ Bayesian probability ซึ่งความรู้เรื่องนี้มีประโยชน์ต่อชีวิตอย่างมาก ประมาณว่าถ้าเรารู้ความน่าจะเป็นของ A|B เราสามารถหาความน่าจะเป็นของ B|A ได้เช่นกัน (ที่มาของคำว่า inverse)
Probability 101

ถ้าคณิตศาสตร์คือศาสตร์แห่งความแน่นอน ในทางตรงกันข้าม ความน่าจะเป็นคือศาสตร์แห่งความไม่แน่นอน (uncertainty) เช่น ฝนจะตกหรือเปล่า? โอกาสที่จะได้เลื่อนตำแหน่ง? ความน่าจะเป็นที่เราจะได้เลือกตั้งในปี 2019? Trump จะได้เป็น ปธน. ต่อหรือเปล่า? คำถามพวกนี้ตอบได้ด้วยทฤษฏีความน่าจะเป็นทั้งหมดเลย
โดยนิยามของความน่าจะเป็นที่ง่ายที่สุดคือ จำนวนเหตุการณ์ที่เราสนใจ / จำนวนเหตุการณ์ทั้งหมดที่เป็นไปได้ ลองดูตัวอย่างการโยนลูกเต๋า และการจั่วไพ่ด้านล่าง
สมมติเราโยนลูกเต๋าแบบหกหน้าปกติ (a fair die) จงหาความน่าจะเป็นที่จะได้เลขคู่ {2, 4, 6} ก็แค่นับจำนวนเหตุการณ์แบบนี้ {2, 4, 6} / {1, 2, 3, 4, 5, 6} = 3 / 6 = 0.5
หรือความน่าเป็นของการจั่วได้ไพ่ {Jack, Queen, King, A} จากสำหรับไพ่ 52 ใบ เท่ากับ 16 / 52 = 0.3076 ส่วนความน่าจะเป็นที่จั่วได้การ์ดอื่นๆนอกเหนือจาก set นี้คือ 1 – 0.3076 = 0.6924
กฏแรกที่เราต้องรู้คือ (เราเรียกว่า probability axioms) ความน่าจะเป็นจะมีค่าอยู่ระหว่าง 0 – 1 หรือเขียนแบบนี้ 0 <= P(A) <= 1 โดย P(A) คือความน่าจะเป็นของเหตุการณ์ A
It’s Subjective
ถ้าเพื่อนเราส่งเหรียญให้เราหนึ่งเหรียญ {head, tail} แล้วถามเราว่า “แกคิดว่าเหรียญนี้มีความน่าจะเป็นที่จะเป็น fair coin เท่าไร?” เราจะตอบคำถามนี้ยังไงดี
ก่อนที่เราจะโยนเหรียญเพื่อหาคำตอบ เราอาจจะลองพิจารณาเหรียญในมุมต่างๆเพื่อหาความน่าจะเป็นที่เหรียญนี้เป็น fair coin ความน่าจะเป็นที่เราคิดขึ้นมาก่อนจะโยนเหรียญ เป็น quantity ที่ขึ้นอยู่กับตัวเราเองที่ถูกเรียกว่า subjective probability
ถ้ายื่นเหรียญนี้ให้กับคน 10 คน ความน่าจะเป็นที่ทั้งสิบคนคิดอาจจะไม่เท่ากันเลย บางคนอาจจะคิดว่า P(fair) = 0.5 บางคนอาจจะคิดว่า P(fair) = 0.7 หรือ 0.8, 0.9 ก็อาจเป็นไปได้
Conditional
ถ้าความน่าจะเป็นของเหตุการณ์ A ขึ้นอยู่กับเหตุการณ์ B เราเรียกความน่าจะเป็นนี้ว่า conditional probability มาลองดูตัวอย่างนี้
P(สอบผ่าน | อ่านหนังสือ)
อ่านว่า ความน่าจะเป็นที่จะสอบผ่านถ้าอ่านหนังสือ สัญลักษณ์ | ภาษาอังกฤษอ่านว่า given แปลภาษาไทยง่ายๆว่า ถ้า
ทฤษฏีความน่าจะเป็น ช่วยให้เราอธิบายความน่าจะเป็น P(สอบผ่าน) ได้แบบนี้
P(สอบผ่าน) = P(สอบผ่าน | อ่านหนังสือ) * P(อ่านหนังสือ) + P(สอบผ่าน | ไม่อ่านหนังสือ) * P(ไม่อ่านหนังสือ)
ทำไมถึงเขียน P(สอบผ่าน) ได้ตามสมการด้านบน? เพราะว่าคนๆหนึ่งมีโอกาสสอบผ่านแบบอ่านหนังสือ หรือสอบผ่านแบบไม่ต้องอ่านหนังสือก็ได้ ในทางคณิตศาสาตร์เราสามารถเขียน ~อ่านหนังสือ โดยสัญลักษณ์ ~ อ่านว่า NOT แปลว่า ไม่
Bayes Theorem
P(B|A) = P(A|B) * P(B) / P(A)
สมการนี้มีชื่อว่า Bayes Theorem ตั้งชื่อตาม Thomas Bayes (1701-1761) ผู้ริเริ่มไอเดียการทำ inverse probability ถ้าเรารู้ P(A|B), P(B) และ P(A) เราก็สามารถแทนค่าลงไปในสมการเพื่อหา P(B|A) ได้เลยง่ายๆ
Inverse Probability

กลับไปที่ตัวอย่างเหรียญของเรา สมมติว่าเราโยนเหรียญ (draw) ทั้งหมด 20 ครั้ง และเหรียญออกหัวทั้งหมด 15 ครั้ง เราอยากรู้ว่าเหรียญนี้มีความน่าจะเป็นที่จะเป็น fair coin เท่าไร? i.e. P(fair | H15) ให้เริ่มจากการเขียนสิ่งที่เรารู้ก่อนแบบนี้
- P(H15 | fair) เด๋วเราจะสอนหา quantity นี้ใน R
- P(fair) สมมติเรานั่งตรวจสอบเหรียญนี้แล้วพบรอยบิ่นนิดหน่อย เลย assign subjective P(fair) = 0.4 ก่อนที่จะโยนเหรียญ
- P(H15) คิดมาจาก P(H15 | fair) P(fair) + P(H15 | ~fair) P(~fair)
นำ quantity ทั้งหมดไปแทนค่าทางด้านขวาของสมการ Bayes Theorem
P(fair|H15) = P(H15|fair) * P(fair) / P(H15)
แทนค่า P(H15) ด้วย P(H15 | fair)P(fair) + P(H15 | ~fair)P(~fair)
P(fair|H15) = P(H15|fair) * P(fair) / (P(H15|fair) * P(fair) + P(H15|~fair) * P(~fair))
แก้สมการเสร็จ เราก็จะได้ quantity ทางฝั่งซ้ายมือ P(fair | H15) ความน่าจะเป็นที่เหรียญเป็น fair coin ถ้าเราโยนเหรียญได้หัว 15 ครั้ง
R Code
เราใช้ฟังชั่น dbinom()
เพื่อหา exact probability ที่เราจะได้หัว 15 ครั้ง จากการโยนเหรียญ 20 ครั้ง สมมติว่าเหรียญเป็น fair coin ด้วยการตั้งค่า prob argument = 0.5 (แปลว่าเหรียญมีโอกาสได้ head .5 และ tail .5 เท่ากัน) ส่วนเหรียญที่เป็น biased coin ใช้ prob = 0.75 (แปลว่า head .75 และ tail .25)
# get 15 head from 20 draws - fair coin | |
p_H15_fair <- dbinom(15, 20, prob = 0.50) | |
# get 15 head from 20 draws - biased coin | |
p_H15_biased <- dbinom(15, 20, prob = 0.75) | |
# subjective probability about the coin | |
p_fair <- 0.4 | |
p_biased <- 1 - p_fair | |
# bayes theorem | |
p_fair_H15 <- p_H15_fair * p_fair / (p_H15_fair * p_fair + p_H15_biased * p_biased) | |
print(p_fair_H15) |
P(fair) = 0.40 เป็น subjective probability ที่เรามีต่อเหรียญนี้ (ก่อนที่จะเห็น 15 heads) ในทฤษฏีของ Bayes เราเรียก quantity นี้ว่า prior probability ส่วน P(fair | H15) ทางด้านซ้ายของ Bayes Theorem ถูกเรียกว่า posterior probability
จบแล้วกับ Statistics Mondee ตอนที่ 1 วันนี้เราสรุป probability theory เบื้องต้นและแตะเบาๆเรื่อง Bayes Theorem พบกันใหม่วันจันทร์หน้า จะเป็นเรื่องอะไร ต้องรออ่านนะคร้าบ!
fair coin คืออะไรอะครับ