φυβλαςのβλογ
phyblasのブログ



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

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

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




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

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

การแจกแจงแบบทวินามนั้นเป็นการแจกแจงของผลลัพธ์ที่มีแค่ 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
-- opencv
-- pytorch
機械学習
-- ニューラル
     ネットワーク
maya
javascript
確率論
日本での日記
中国での日記
-- 北京での日記
-- 香港での日記
-- 澳門での日記
台灣での日記
北欧での日記
他の国での日記
qiita
その他の記事

記事の類別



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

  記事を検索

  おすすめの記事

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

月別記事

2021年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2020年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2019年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2018年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2017年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

もっと前の記事

ไทย

日本語

中文