φυβλαςのβλογ
บล็อกของ phyblas



ความน่าจะเป็นเบื้องต้นสำหรับเขียนโปรแกรม บทที่ ๑๙: การคาดการณ์ค่าที่พารามิเตอร์การแจกแจงมีความไม่แน่นอน
เขียนเมื่อ 2020/09/10 22:38
แก้ไขล่าสุด 2023/08/26 13:18

ต่อจาก บทที่ ๑๘

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




ค่าที่พารามิเตอร์การแจกแจงมีความไม่แน่นอน

ถ้าค่าตัวแปรสุ่ม x ที่พิจารณาอยู่มีการแจกแจกแจงความน่าจะเป็น P(x) ซึ่งขึ้นกับพารามิเตอร์ p แต่ว่าค่า p นั้นเองก็มีความไม่แน่นอนอยู่ โดยมีการแจกแจงความน่าจะเป็นของค่า p เป็น P(p)

ในกรณีแบบนี้การจะหาความน่าจะเป็น P(x) ได้นั้นจะต้องหาความน่าจะเป็นของทุกกรณีที่ p จะเป็นได้ แล้วเอามารวมกันโดยถ่วงน้ำหนักความน่าจะเป็นของกรณีนั้นๆ

หาก p เป็นค่าแบบไม่ต่อเนื่องก็คือหาผลรวม

🧹(19.1)

แต่พารามิเตอร์ p ที่พิจารณานั้นส่วนใหญ่เป็นค่าแบบต่อเนื่องซึ่งกรณีนี้จะคำนวณได้โดยหาปริพันธ์ของฟังก์ชันแจกแจงความหนาแน่น

🧹(19.2)

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

อย่างไรก็ตาม นอกจากนั้นแล้วหากรู้อยู่แล้วว่าการแจกแจงที่ได้นั้นควรจะมีลักษณะอย่างไรก็มีอีกวิธีซึ่งถือเป็นวิธีลัดที่ง่ายกว่านั้นอยู่ ซึ่งในบทนี้จะใช้วิธีนั้นเป็นหลัก

ในบทที่ ๑๕ ได้พูดถึงการหาพารามิเตอร์ของการแจกแจงในกรณีที่พารามิเตอร์ของการแจกแจงมีความไม่แน่นอนมีการแจกแจงความน่าจะเป็นก่อนหน้ากำหนดไว้อยู่ โดยใช้การแจกแจงเป็นความน่าจะเป็นก่อนหน้าสังยุค (共轭先验, conjugate prior) ของการแจกแจงนั้น

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

การแจกแจงค่าเมื่อกำหนดพารามิเตอร์
พารามิเตอร์
การแจกแจงของพารามิเตอร์
การแจกแจงโดยรวมของค่าตัวแปรที่ได้
การแจกแจงทวินามpการแจกแจงเบตาการแจกแจงเบตา-ทวินาม
การแจกแจงทวินามเชิงลบpการแจกแจงเบตาการแจกแจงเบตา-ทวินามเชิงลบ
การแจกแจงอเนกนามpการแจกแจงดีริคเลการแจกแจงดีริคเล-อเนกนาม
การแจกแจงปัวซงλการแจกแจงแกมมาการแจกแจงทวินามเชิงลบ
การแจกแจงแบบเลขชี้กำลังλการแจกแจงแกมมาการแจกแจงโลแม็กซ์
การแจกแจงแบบปกติμการแจกแจงแบบปกติการแจกแจงแบบปกติ
α (=1/σ2)การแจกแจงแกมมาการแจกแจงสติวเดนต์ที
การแจกแจงแบบปกติหลายตัวแปรμการแจกแจงแบบปกติหลายตัวแปรการแจกแจงแบบปกติหลายตัวแปร
Λ (=Σ-1)การแจกแจงวิชาร์ตการแจกแจงสติวเดนต์ทีหลายตัวแปร

ที่จริงนี่คือตารางเดิมจากบทที่ ๑๕ แต่แค่เพิ่มส่วนของการแจกแจงโดยรวมที่จะได้ในแต่ละกรณีลงไป

จะเห็นว่าบางส่วนจะได้เป็นการแจกแจงชนิดเดิม แต่ก็มีที่ได้เป็นการแจกแจงชนิดใหม่ (บางส่วนก็แค่เอาชื่อมาต่อกัน)

หากเรารู้อยู่แล้วว่าการแจกแจงที่ได้นั้นควรจะเป็นการแจกแจงแบบไหน สามารถใช้วิธีการพิจารณาสมการทฤษฎีบทของเบย์ โดยมองแค่ส่วนที่เกี่ยวข้องกับ x แล้วให้ส่วนที่ไม่เกี่ยวข้องไปรวมอยู่กับค่าคงที่

สมการทฤษฎีบทของเบย์เมื่อพิจารณาตัวแปร x และพารามิเตอร์ p คือ

🧹(19.3)

ดังนั้นการแจกแจงความน่าจะเป็นโดยรวมของ x ก็สามารถคำนวณได้จากสมการนี้

🧹(19.4)

ในที่นี้จะพิจารณาเอาส่วนที่ไม่เกี่ยวกับ x มารวมไว้เป็นค่าคงที่ ซึ่งการแจกแจงความน่าจะเป็นก่อนหน้าไม่เกี่ยวข้องกับ x จึงสามารถให้เป็นค่าคงที่ จึงได้ว่า

🧹(19.5)

ดังนั้นการแจกแจงของ x ที่หาอยู่ก็ขึ้นอยู่กับรูปแบบการแจกแจงเดิมของ x นั้นเอง และการแจกแจงของพารามิเตอร์ p นั้น

ในบทนี้ส่วนที่เหลือจะยกตัวอย่างกรณีการแจกแจงบางส่วนที่สำคัญ ได้แก่กรณีของการแจกแจงปัวซง และกรณีของการแจกแจงแบบปกติเมื่อพารามิเตอร์ที่พิจารณาเป็น μ

ส่วนการแจกแจงแบบปกติในกรณีที่พิจารณา α นั้นจะได้การแจกแจงสติวเดนต์ที ซึ่งยังไม่เคยกล่าวถึง และค่อนข้างมีความสำคัญและมีรายละเอียดมาก จึงขอยกไปกล่าวถึงเป็นบทหน้าโดยเฉพาะ




การแจกแจงแบบปกติที่ μ มีความไม่แน่นอน

ขอเริ่มยกตัวอย่างจากกรณีการแจกแจงแบบปกติที่พิจารณาค่าพารามิเตอร์ μ ซึ่งดูจะเข้าใจง่ายที่สุด เพราะทั้งการแจกแจงของ μ เองก็เป็นการแจกแจงแบบปกติ และการแจกแจงของ x ที่ได้สุดท้ายก็จะเป็นการแจกแจงแบบปกติอีกเช่นกัน

การแจกแจงความน่าจะเป็นโดยรวมของ x ในที่นี้จะคำนวณได้จาก

🧹(19.6)

การแจกแจงความน่าจะเป็นของ x (หรือก็คือฟังก์ชันควรจะเป็น) ก็คือการแจกแจงแบบปกติ ที่มีใจกลางที่ μ และความแปรปรวน σ2

🧹(19.7)

ดึงค่าที่ไม่เกี่ยวกับ x มาไว้ใน

🧹(19.8)

สำหรับการแจกแจงความน่าจะเป็นของ μ ในที่นี้ก็จะตรงกับการแจกแจงความน่าจะเป็นภายหลังนั้นซึ่งได้แสดงวิธีหาไปในบทที่ ๑๕ ในที่นี้จึงขอยกผลจากบทนั้นมาใช้เลย

🧹(19.9)

จากนั้นก็จัดรูป ดึงส่วนที่ไม่เกี่ยวข้องกับ x มาไว้ในค่าคงที่

🧹(19.10)

แทนผลจากสมการ 19.8 และ 19.10 ลงในสมการ 19.6 แล้วจัดรูปต่อ ได้

🧹(19.11)

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

ส่วนค่าความแปรปรวน σ2 จะได้เป็นผลรวมระหว่างความแปรปรวนของ x ซึ่งทราบค่าอยู่แล้ว กับความแปรปรวนของ μ จากการแจกแจงซึ่งคาดการณ์ไว้ตอนแรก

ต่อไปเป็นโค้ดตัวอย่างการจำลองให้เห็นจริง โดยจะเริ่มจากสุ่มค่า μ ก่อน แล้วใช้ค่า μ ที่สุ่มได้นั้นมาเป็นพารามิเตอร์ในการสุ่มของ x อีกที ซึ่งค่า x ที่ได้ก็ควรจะเป็นการแจกแจงแบบปกติที่มีความแปรปรวนเป็นผลรวมของความแปรปรวนของการแจกแจงทั้งสองนั้น ในที่นี้จะแสดงฮิสโทแกรมของผลการแจกแจง และวาดกราฟที่ได้จากการคำนวณลงไปด้วย
import numpy as np
import random,math

# ฟังก์ชันการแจกแจงแบบปกติ
def pakati(x,μ,σ):
    return (2*np.pi)**(-0.5)/σ*np.exp(-(x-μ)**2/(2*σ**2))

μ_μ = 8 # จุดกึ่งกลางของ μ
σ_μ = 3 # ส่วนเบี่ยงเบนมาตรฐานของ μ
σ = 4 # ส่วนเบี่ยงเบนมาตรฐานของ x

x = []
for i in range(2345):
    μ = random.gauss(μ_μ,σ_μ)
    x += [random.gauss(μ,σ)]

# วาดฮิสโทแกรมแสดงความหนาแน่น
plt.hist(x,50,fc='#b5c92f',ec='w',density=True)
# วาดเส้นแสดงค่าจริงที่ได้จากการคำนวณ
x_ = np.linspace(min(x),max(x),201)
Px_ = pakati(x_,μ_μ,(σ**2+σ_μ**2)**0.5)
plt.plot(x_,Px_,'#953a25')
plt.show()

ผลที่ได้



ในที่นี้ให้จุดกึ่งกลางการแจกแจงอยู่ที่ μμ=8 ให้ความแปรปรวนของ x เป็น σ=42 ความแปรปรวนของ μ เป็น σμ=32 ดังนั้นการแจกแจงสุดท้ายของ x ควรมีความแปรปรวนเป็น 32+42=52

เส้นกราฟคือค่าที่ได้จากการคำนวณ และฮิสโทแกรมแสดงการแจกแจงที่ได้จริงๆ ผลที่ได้จะเห็นว่ากราฟกับฮิสโทแกรมสอดคล้องกันดี




การแจกแจงปัวซงที่ λ มีความไม่แน่นอน

ต่อมาดูการแจกแจงปัวซง ซึ่งค่า λ มีความน่าจะเป็นก่อนหน้าสังยุคเป็นการแจกแจงแกมมา ซึ่งเมื่อ λ มีการแจกแจงตามนั้นแล้ว ผลการแจกแจงที่ได้ก็จะออกมาเป็นการแจกแจงทวินามเชิงลบ

ให้ตัวแปรสุ่ม k เป็นผลจากการแจกแจงปัวซงซึ่งมีพารามิเตอร์ λ ซึ่งมีความไม่แน่นอนอยู่ การแจกแจงของ k ที่จะได้ในท้ายที่สุดอาจหาได้จากทฤษฎีบทของเบย์ดังนี้

🧹(19.12)

ซึ่งการแจกแจงก่อนหน้า P(λ) ไม่ได้เกี่ยวกับค่าตัวแปร k ที่พิจารณา จึงให้เป็นค่าคงที่

🧹(19.13)

พิจารณาการแจกแจงของค่า k ซึ่งเป็นการแจกแจงปัวซงเป็น

🧹(19.14)

สำหรับการแจกแจงของพารามิเตอร์ λ ก็คือการแจกแจงความน่าจะเป็นภายหลัง ดังที่ได้แสดงไว้ในบทที่ ๑๖ จากนั้นก็จัดรูป ดึงส่วนที่ไม่เกี่ยวข้องกับ x มาไว้ในค่าคงที่

🧹(19.15)

จากนั้นแทนสมการ 19.14 และ 19.15 ลงในสมการ 19.13

🧹(19.16)

ซึ่งจะเห็นว่าได้ลักษณะที่สามารถเขียนออกมาเป็นการแจกแจงทวินามเชิงลบได้

การแจกแจงทวินามเชิงลบได้เขียนถึงไปในบทที่ ๖ ขอยกสมการจากตรงนั้นมา

🧹(19.17)

เมื่อเทียบสมการ 19.16 กับ 19.17 แล้วจะได้ว่าในที่นี้

🧹(19.18)

แล้วค่าคงที่ด้านหน้าก็คือ

🧹(19.19)

ดังนั้นสุดท้ายแล้วได้การแจกแจงของค่า k คือ

🧹(19.20)



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



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

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

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

หมวดหมู่

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

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

สารบัญ

รวมคำแปลวลีเด็ดจากญี่ปุ่น
มอดูลต่างๆ
-- numpy
-- matplotlib

-- pandas
-- manim
-- opencv
-- pyqt
-- pytorch
การเรียนรู้ของเครื่อง
-- โครงข่าย
     ประสาทเทียม
ภาษา javascript
ภาษา mongol
ภาษาศาสตร์
maya
ความน่าจะเป็น
บันทึกในญี่ปุ่น
บันทึกในจีน
-- บันทึกในปักกิ่ง
-- บันทึกในฮ่องกง
-- บันทึกในมาเก๊า
บันทึกในไต้หวัน
บันทึกในยุโรปเหนือ
บันทึกในประเทศอื่นๆ
qiita
บทความอื่นๆ

บทความแบ่งตามหมวด



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

  ค้นหาบทความ

  บทความแนะนำ

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

บทความแต่ละเดือน

2024年

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

2023年

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

2022年

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

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月

ค้นบทความเก่ากว่านั้น

ไทย

日本語

中文