φυβλαςのβλογ
phyblas的博客



ความน่าจะเป็นเบื้องต้นสำหรับเขียนโปรแกรม บทที่ ๒๑: การแจกแจงอเนกนามและการแจกแจงแบบหมวดหมู่
เขียนเมื่อ 2020/09/11 16:05
แก้ไขล่าสุด 2023/08/26 13:15

ต่อจาก บทที่ ๒๐

ในบทนี้จะเป็นเรื่องของการแจกแจงอเนกนามและการแจกแจงแบบหมวดหมู่




การแจกแจงความน่าจะเป็นของผลลัพธ์แบบต่างๆ

ในบทที่ ๕ ได้เขียนถึงการแจกแจงทวินามไปแล้ว

การแจกแจงแบบทวินามนั้นเป็นการแจกแจงของผลลัพธ์ที่มีแค่ 2 แบบ ซึ่งมักจะหมายถึงสำเร็จกับล้มเหลว

แต่ว่าบ่อยครั้งที่ผลลัพธ์ไม่ได้มีอยู่แค่ 2 แบบ แต่มีหลายแบบกว่านั้น ในกรณีแบบนี้การแจกแจงจะซับซ้อนกว่าเดิมไปอีกขั้น กลายเป็นการแจกแจงที่เรียกว่าการแจกแจงอเนกนาม (多项分布, multinomial distribution)

"ทวิ" แปลว่า "สอง" ส่วน "อเนก" แปลว่า "หลายๆ" ฉะนั้นการแจกแจงแบบอเนกนามก็เป็นการขยายผลจากการแจกแจงทวินามซึ่งมีอยู่แค่ 2 มาเป็นหลายๆ

อาจเทียบได้กับความสัมพันธ์ระหว่างการแจกแจงแบบปกติตัวแปรเดียวกับการแจกแจงแบบปกติหลายตัวแปร

ในที่นี้จะขอเรียกรูปแบบของผลลัพธ์ต่างๆว่า "หมวดหมู่" (类别, category)

ถ้ามีหมวดหมู่ทั้งหมด m หมวดหมู่ ให้ เป็นจำนวนผลลัพธ์ที่ได้ในแต่ละหมวดหมู่


ความน่าจะเป็นร่วมที่จำนวนครั้งที่ออกจะได้เป็น จะเป็นการแจกแจงแบบอเนกนาม คือ


พารามิเตอร์มี 2 ตัว คือ
  • : ความน่าจะเป็นของแต่ละหมวดหมู่
  • n: จำนวนครั้งที่ทำการทดลองทั้งหมด

จำนวนรวมทั้งหมดต้องเท่ากับ n พอดี


และความน่าจะเป็นทั้งหมดต้องรวมกันได้เท่ากับ 1 พอดี


และเมื่อเป็นค่าความน่าจะเป็นก็แน่นอนว่าต้องอยู่ระหว่าง 0 ถึง 1


ยกตัวอย่างเช่นทอยลูกเต๋าซึ่งมี 6 หน้าทั้งหมด 100 ครั้ง แล้วนับจำนวนที่ออกแต่ละหน้า ผลลัพธ์ก็จะมี 6 หมวดหมู่ นั่นคือ m=6 ในที่นี้ความน่าจะเป็นแต่ละตัวคือ p1,p2,...p6=1/6 จำนวนครั้งที่ทดลองคือ n=100 จำนวนที่ออกในแต่ละหน้าอาจเขียนแทนด้วย k1,k2,...,k6 เป็นต้น

ลองเขียนเป็นโค้ดสุ่มดูจริงๆในไพธอน
import random,math

m = 6 # จำนวนหน้าลูกเต๋า
n = 100 # จำนวนที่โยน
# สุ่มผลโยน n ครั้ง
x = []
for i in range(n):
    x += [random.randint(1,m)]
# นับจำนวนที่ออกแต่ละหน้า
for i in range(1,m+1):
    ki = x.count(i)
    print(f'k{i} = {ki}')

ผลที่ได้
k1 = 14
k2 = 23
k3 = 15
k4 = 14
k5 = 15
k6 = 19

โดยเฉลี่ยแล้วแต่ละหน้าน่าจะได้สัก 16-17 ครั้ง แต่การทดลองงวดนี้ 2 ดูจะออกมาเยอะเป็นพิเศษ ซึ่งก็เป็นเรื่องที่มีโอกาสเกิดขึ้นได้




ค่าคาดหมายและความแปรปรวนของการแจกแจงอเนกนาม

ค่าคาดหมายของแต่ละหมวดหมู่คำนวณได้เป็น


ความแปรปรวนของแต่ละหมวดหมู่เป็น


ความแปรปรวนร่วมเกี่ยวระหว่างต่างหมวดหมู่เป็น


เมื่อ i≠j

และจะได้เมทริกซ์ความแปรปรวนร่วมเกี่ยวเป็น





ความสัมพันธ์ระหว่างการแจกแจงอเนกนามกับการแจกแจงทวินามและแบร์นุลลี

ถ้าหาก m=2 ซึ่งก็หมายถึงว่ามีแค่ 2 หมวดหมู่แล้ว การแจกแจงความน่าจะเป็นก็จะได้เป็น


ความน่าจะเป็นรวมต้องเป็น 1 และผลรวมของ k ต้องเป็น n ดังนั้น


จึงเขียนใหม่ได้เป็น


ซึ่งก็จะกลายเป็นการแจกแจงทวินาม (แค่เอาเลข 1 ที่ห้อยอยู่ออกไป)

และถ้า m=2 อีกทั้งยัง n=1 ก็จะกลายเป็นการแจกแจงแบร์นุลลี


ดังนั้นการแจกแจงทวินามก็ถือได้ว่าเป็นกรณีเฉพาะแบบหนึ่งของการแจกแจงอเนกนาม ในกรณีที่หมวดหมู่มีเพียง 2




การแจกแจงแบบหมวดหมู่

การแจกแจงอเนกนามในกรณีที่ n=1 จะเป็นกรณีเฉพาะที่เรียกว่าการแจกแจงแบบหมวดหมู่ (类别分布, categorical distribution)


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

อาจถือได้ว่าทั้งการแจกแจงแบร์นุลลี, การแจกแจงทวินาม, การแจกแจงแบบหมวดหมู่ ล้วนเป็นกรณีพิเศษของการแจกแจงอเนกนาม





ตัวอย่างกรณีสามหมวดหมู่

ลองดูตัวอย่างกรณีที่ง่ายรองลงมาจากกรณี 2 หมวดหมู่ (ซึ่งก็คือการแจกแจงทวินาม) นั่นคือกรณีที่ผลลัพธ์มี 3 หมวดหมู่

ถ้ามี 3 หมวดหมู่ ผลลัพธ์คือจำนวนครั้งที่ได้ในแต่ละหมู่ก็จะมี 3 ค่า เป็น

เพียงแต่ว่าถ้าทำการทดลอง n ครั้ง จำนวนรวมทั้งหมดก็ย่อมเป็น n แบบนั้นบอกแค่ค่า 2 ตัวแรกก็ย่อมรู้ค่าตัวที่ 3 แน่ชัดอยู่แล้ว


ดังนั้นในที่นี้จะแสดงการแจกแจง 2 มิติ ระหว่าง k1 กับ k2

ตัวอย่างเช่นให้จำนวนครั้งที่ลองเป็น n=10 แล้วให้ ผลการแจกแจงจะออกมาแบบนี้



จะเห็นว่าค่าสูงสุดอยู่ที่ k1=5,k2=2 (ซึ่งแน่นอนว่า k3 ก็จะเป็น 3) ซึ่งเป็นจำนวนที่ตรงตามสัดส่วนความน่าจะเป็น และค่าอื่นก็จะมีความน่าจะเป็นน้อยลงลดหลั่นไป

ลองทำเป็นภาพเคลื่อนไหว แสดงกรณีที่ให้ แล้วเพิ่มจำนวน n ไปเรื่อยๆ




หรือลองดูกรณีที่ให้ n คงที่ที่ 50 แล้วเปลี่ยนค่า ไปเรื่อยๆ






ตัวอย่างกรณีมากกว่าสามหมวดหมู่

ต่อไปลองมาดูกรณีที่เพิ่มมาอีกหมวด เป็น 4 หมวด ดูการแจกแจงของ k1,k2 เหมือนเดิม แต่ให้ k3 เปลี่ยนไปเรื่อยๆ โดยคงจำนวนค่า n (ส่วน k4 ก็เป็น n-k1-k2-k3 ไปโดยปริยาย) เทียบดูผลลัพธ์แต่ละกรณี



ในที่นี้พยายามแสดงตัวอย่างการแจกแจงเป็นภาพ ซึ่งก็มักจะแสดงได้แค่สองมิติ หรือใช้การเปลี่ยนแปลงตามเวลาเพื่อช่วยเป็นอีกมิติ แต่พอจำนวนหมวดหมู่เพิ่มขึ้นก็มีตัวแปรมากยิ่งขึ้นจึงยากที่จะเขียนแสดงเป็นภาพ แต่โดยรวมแล้วถ้าเข้าใจความหมายก็น่าจะนึกภาพตามออกได้

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




ความสัมพันธ์กับการแจกแจงชนิดต่างๆ

สุดท้ายลองมาดูสรุปความสัมพันธ์ระหว่างการแจกแจงต่างๆที่เกี่ยวข้องกัน



เริ่มจากการแจกแจงแบบแบร์นุลลีซึ่งเป็นการทดลองที่ง่ายที่สุด คือมีผลลัพธ์แค่ 2 แบบคือสำเร็จกับล้มเหลว และทำแค่ 1 ครั้ง

ถ้าเปลี่ยนเป็นทำหลายครั้งก็จะกลายเป็นการแจกแจงทวินาม

ถ้าผลลัพธ์มีหลายแบบ แต่ยังทำแค่ 1 ครั้งก็จะเป็นการแจกแจงแบบหมวดหมู่

ถ้าผลลัพธ์มีหลายแบบ และทำหลายๆครั้งก็จะเป็นการแจกแจงอเนกนาม

ส่วนการแจกแจงเบตาคือความน่าจะเป็นก่อนหน้าสังยุคของการแจกแจงทวินามและการแจกแจงแบร์นุลลี

และในทำนองเดียวกัน การแจกแจงดีริคเลคือความน่าจะเป็นก่อนหน้าสังยุคของการแจกแจงอเนกนามและการแจกแจงแบบหมวดหมู่

สำหรับเรื่องของการแจกแจงดีริคเลจะเขียนถึงในบทต่อไป



บทถัดไป >> บทที่ ๒๒



-----------------------------------------

囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

ดูสถิติของหน้านี้

หมวดหมู่

-- คณิตศาสตร์ >> ความน่าจะเป็น
-- คอมพิวเตอร์ >> เขียนโปรแกรม >> python

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

目录

从日本来的名言
模块
-- numpy
-- matplotlib

-- pandas
-- manim
-- opencv
-- pyqt
-- pytorch
机器学习
-- 神经网络
javascript
蒙古语
语言学
maya
概率论
与日本相关的日记
与中国相关的日记
-- 与北京相关的日记
-- 与香港相关的日记
-- 与澳门相关的日记
与台湾相关的日记
与北欧相关的日记
与其他国家相关的日记
qiita
其他日志

按类别分日志



ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ

  查看日志

  推荐日志

ตัวอักษรกรีกและเปรียบเทียบการใช้งานในภาษากรีกโบราณและกรีกสมัยใหม่
ที่มาของอักษรไทยและความเกี่ยวพันกับอักษรอื่นๆในตระกูลอักษรพราหมี
การสร้างแบบจำลองสามมิติเป็นไฟล์ .obj วิธีการอย่างง่ายที่ไม่ว่าใครก็ลองทำได้ทันที
รวมรายชื่อนักร้องเพลงกวางตุ้ง
ภาษาจีนแบ่งเป็นสำเนียงอะไรบ้าง มีความแตกต่างกันมากแค่ไหน
ทำความเข้าใจระบอบประชาธิปไตยจากประวัติศาสตร์ความเป็นมา
เรียนรู้วิธีการใช้ regular expression (regex)
การใช้ unix shell เบื้องต้น ใน linux และ mac
g ในภาษาญี่ปุ่นออกเสียง "ก" หรือ "ง" กันแน่
ทำความรู้จักกับปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง
ค้นพบระบบดาวเคราะห์ ๘ ดวง เบื้องหลังความสำเร็จคือปัญญาประดิษฐ์ (AI)
หอดูดาวโบราณปักกิ่ง ตอนที่ ๑: แท่นสังเกตการณ์และสวนดอกไม้
พิพิธภัณฑ์สถาปัตยกรรมโบราณปักกิ่ง
เที่ยวเมืองตานตง ล่องเรือในน่านน้ำเกาหลีเหนือ
ตระเวนเที่ยวตามรอยฉากของอนิเมะในญี่ปุ่น
เที่ยวชมหอดูดาวที่ฐานสังเกตการณ์ซิงหลง
ทำไมจึงไม่ควรเขียนวรรณยุกต์เวลาทับศัพท์ภาษาต่างประเทศ