วิธีการคำนวณค่าที่คาดหวังใน python (พร้อมตัวอย่าง)


การแจกแจงความน่าจะเป็นบอกเราถึงความน่าจะ เป็นที่ตัวแปร สุ่มใช้กับค่าบางค่า

ตัวอย่างเช่น การแจกแจงความน่าจะเป็นต่อไปนี้บอกเราถึงความน่าจะเป็นที่ทีมฟุตบอลบางทีมจะยิงประตูได้จำนวนหนึ่งในการแข่งขันที่กำหนด:

ในการค้นหา ค่าคาดหวัง ของการแจกแจงความน่าจะเป็น เราสามารถใช้สูตรต่อไปนี้:

µ = Σx * P(x)

ทอง:

  • x: ค่าข้อมูล
  • P(x): ความน่าจะเป็นของมูลค่า

ตัวอย่างเช่น จำนวนประตูที่คาดหวังของทีมฟุตบอลจะคำนวณดังนี้:

μ = 0*0.18 + 1*0.34 + 2*0.35 + 3*0.11 + 4*0.02 = 1.45 ประตู

ในการคำนวณค่าคาดหวังของการแจกแจงความน่าจะเป็นใน Python เราสามารถกำหนดฟังก์ชันง่ายๆ ได้:

 import numpy as np

def expected_value(values, weights):
    values = np. asarray (values)
    weights = np. asarray (weights)
    return (values * weights). sum ()/weights. sum ()

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ตัวอย่าง: การคำนวณค่าที่คาดหวังใน Python

รหัสต่อไปนี้แสดงวิธีคำนวณค่าที่คาดหวังของการแจกแจงความน่าจะเป็นโดยใช้ฟังก์ชัน Expected_value() ที่เรากำหนดไว้ก่อนหน้านี้:

 #define values
values = [0, 1, 2, 3, 4]

#define probabilities
probs = [.18, .34, .35, .11, .02]

#calculate expected value
expected_value(values, probs)

1.450000

ค่าคาดหวังคือ 1.45 ซึ่งตรงกับค่าที่เราคำนวณด้วยตนเองก่อนหน้านี้

โปรดทราบว่าฟังก์ชันนี้จะส่งกลับข้อผิดพลาดหากความยาวของอาร์เรย์ค่าและอาร์เรย์ความน่าจะเป็นไม่เท่ากัน

ตัวอย่างเช่น:

 #define values
values = [0, 1, 2, 3, 4]

#define probabilities
probs = [.18, .34, .35, .11, .02, .05, .11]

#attempt to calculate expected value
expected_value(values, probs)

ValueError : operands could not be broadcast together with shapes (5,) (7,) 

เราได้รับข้อผิดพลาดเนื่องจากความยาวของอาร์เรย์แรกคือ 5 ในขณะที่ความยาวของอาร์เรย์ที่สองคือ 7

เพื่อให้ฟังก์ชันค่าที่คาดหวังนี้ทำงานได้ ความยาวของอาร์เรย์ทั้งสองจะต้องเท่ากัน

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีคำนวณหน่วยวัดอื่นๆ ใน Python:

วิธีการคำนวณค่าเฉลี่ยแบบเล็มใน Python
วิธีการคำนวณค่าเฉลี่ยเรขาคณิตใน Python
วิธีการคำนวณค่าคลาดเคลื่อนมาตรฐานของค่าเฉลี่ยใน Python

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

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