วิธีใช้การแจกแจงแบบทวินามใน python


การแจกแจงแบบทวินาม เป็นหนึ่งในการแจกแจงที่ใช้บ่อยที่สุดในสถิติ อธิบายความน่าจะเป็นที่จะประสบความสำเร็จ k รายการในการทดลองทวินาม n รายการ

หาก ตัวแปรสุ่ม X เป็นไปตามการแจกแจงแบบทวินาม ความน่าจะเป็นที่ X = k สำเร็จจะพบได้จากสูตรต่อไปนี้:

P(X=k) = n C k * p k * (1-p) nk

ทอง:

  • n: จำนวนการทดลอง
  • k: จำนวนความสำเร็จ
  • p: ความน่าจะเป็นที่จะประสบความสำเร็จในการทดลองที่กำหนด
  • n C k : จำนวนวิธีในการได้รับ k ความสำเร็จในการทดลอง n ครั้ง

บทช่วยสอนนี้จะอธิบายวิธีใช้การแจกแจงแบบทวินามใน Python

วิธีสร้างการแจกแจงแบบทวินาม

คุณสามารถสร้างอาร์เรย์ของค่าที่ตามหลังการแจกแจงแบบทวินามได้โดยใช้ฟังก์ชัน Random.binomial ของไลบรารี numpy:

 from numpy import random

#generate an array of 10 values that follows a binomial distribution
random.binomial(n=10, p=.25, size=10)

array([5, 2, 1, 3, 3, 3, 2, 2, 1, 4])

แต่ละตัวเลขในตารางผลลัพธ์แสดงถึงจำนวน “ความสำเร็จ” ที่พบในการทดลอง 10 ครั้ง โดยความน่าจะเป็นที่จะประสบความสำเร็จในการทดลองที่กำหนดคือ 0.25

วิธีคำนวณความน่าจะเป็นโดยใช้การแจกแจงแบบทวินาม

คุณยังสามารถตอบคำถามเกี่ยวกับความน่าจะเป็นแบบทวินามได้โดยใช้ ฟังก์ชันทวินาม ของไลบรารี scipy

คำถามที่ 1: นาธานพยายามโยนโทษ 60% ถ้าเขาโยนโทษ 12 ครั้ง ความน่าจะเป็นที่เขาโยนโทษได้ 10 ครั้งพอดีเป็นเท่าใด?

 from scipy.stats import binom

#calculate binomial probability
binom.pmf(k= 10 , n= 12 , p= 0.6 )

0.0639

ความน่าจะเป็นที่นาธานโยนโทษ 10 ครั้งพอดีคือ 0.0639

คำถามที่ 2: มาร์ตี้โยนเหรียญยุติธรรม 5 ครั้ง ความน่าจะเป็นที่เหรียญจะขึ้นหัว 2 เท่าหรือน้อยกว่านั้นเป็นเท่าใด?

 from scipy.stats import binom

#calculate binomial probability
binom.cdf(k= 2 , n= 5 , p= 0.5 )

0.5

ความน่าจะเป็นที่เหรียญจะขึ้นหัว 2 ครั้งหรือน้อยกว่าคือ 0.5

คำถามที่ 3: เรารู้ว่า 70% ของบุคคลสนับสนุนกฎหมายบางประการ หากสุ่มเลือกบุคคล 10 คน ความน่าจะเป็นที่ระหว่าง 4 ถึง 6 คนในจำนวนนั้นสนับสนุนกฎหมายเป็นเท่าใด

 from scipy.stats import binom

#calculate binomial probability
binom.cdf(k= 6 , n= 10 , p= 0.7 ) - binom.cdf(k= 3 , n= 10 , p= 0.7 )

0.3398

ความน่าจะเป็นที่ผู้สุ่มเลือกระหว่าง 4 ถึง 6 คนสนับสนุนกฎหมายคือ 0.3398

วิธีแสดงภาพการแจกแจงแบบทวินาม

คุณสามารถเห็นภาพการแจกแจงแบบทวินามใน Python โดยใช้ไลบรารี seaborn และ matplotlib :

 from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

x = random.binomial(n= 10 , p= 0.5 , size= 1000 )

sns.distplot(x, hist= True , kde= False )

plt.show()

แผนการกระจายแบบทวินามใน Python

ชา

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *