โปรดดูสคริปต์ Python ต่อไปนี้สำหรับ Python2
คำตอบได้แรงบันดาลใจจากคำตอบของ David C
คำตอบสุดท้ายของฉันคือความน่าจะเป็นที่จะหา Jacobs อย่างน้อยห้าตัวในหนึ่งชั้นโดยที่ Jacob เป็นชื่อที่น่าจะเป็นไปได้มากที่สุดตามข้อมูลจากhttps://www.ssa.gov/oact/babynames/limits.html "National Data "จากปี 2549
ความน่าจะเป็นคำนวณตามการแจกแจงทวินามด้วย Jacob-Probability ซึ่งเป็นความน่าจะเป็นของความสำเร็จ
import pandas as pd
from scipy.stats import binom
data = pd.read_csv(r"yob2006.txt", header=None, names=["Name", "Sex", "Count"])
# count of children in the dataset:
sumCount = data.Count.sum()
# do calculation for every name:
for i, row in data.iterrows():
# relative counts of each name being interpreted as probabily of occurrence
data.loc[i, "probability"] = data.loc[i, "Count"]/float(sumCount)
# Probabilites being five or more children with that name in a class of size n=25,50 or 100
data.loc[i, "atleast5_class25"] = 1 - binom.cdf(4,25,data.loc[i, "probability"])
data.loc[i, "atleast5_class50"] = 1 - binom.cdf(4,50,data.loc[i, "probability"])
data.loc[i, "atleast5_class100"] = 1 - binom.cdf(4,100,data.loc[i, "probability"])
maxP25 = data["atleast5_class25"].max()
maxP50 = data["atleast5_class50"].max()
maxP100 = data["atleast5_class100"].max()
print ("""Max. probability for at least five kids with same name out of 25: {:.2} for name {}"""
.format(maxP25, data.loc[data.atleast5_class25==maxP25,"Name"].values[0]))
print
print ("""Max. probability for at least five kids with same name out of 50: {:.2} for name {}, of course."""
.format(maxP50, data.loc[data.atleast5_class50==maxP50,"Name"].values[0]))
print
print ("""Max. probability for at least five kids with same name out of 100: {:.2} for name {}, of course."""
.format(maxP100, data.loc[data.atleast5_class100==maxP100,"Name"].values[0]))
แม็กซ์ ความน่าจะเป็นสำหรับเด็กอย่างน้อยห้าคนที่มีชื่อเดียวกันจาก 25: 4.7e-07 สำหรับชื่อจาค็อบ
แม็กซ์ ความน่าจะเป็นสำหรับเด็กอย่างน้อยห้าคนที่มีชื่อเดียวกันจาก 50: 1.6e-05 สำหรับชื่อจาค็อบแน่นอน
แม็กซ์ ความน่าจะเป็นสำหรับเด็กอย่างน้อยห้าคนที่มีชื่อเดียวกันจาก 100: 0.00045 สำหรับชื่อจาค็อบแน่นอน
โดยปัจจัย 10 เดียวกับผลลัพธ์ของ David C ขอบคุณ (คำตอบของฉันไม่รวมชื่อทั้งหมดอาจจะกล่าวถึง)