silakan lihat skrip Python berikut untuk Python2.
Jawaban diilhami oleh jawaban David C.
Jawaban terakhir saya adalah, probabilitas menemukan setidaknya lima Jacobs dalam satu kelas, dengan Jacob menjadi nama yang paling mungkin menurut data dari https://www.ssa.gov/oact/babynames/limits.html "Data Nasional "dari 2006.
Probabilitas dihitung menurut distribusi binomial dengan Jacob-Probability menjadi probabilitas keberhasilan.
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]))
Maks. probabilitas untuk setidaknya lima anak dengan nama yang sama dari 25: 4.7e-07 untuk nama Jacob
Maks. probabilitas untuk setidaknya lima anak dengan nama yang sama dari 50: 1.6e-05 untuk nama Jacob, tentu saja.
Maks. probabilitas untuk setidaknya lima anak dengan nama yang sama dari 100: 0,00045 untuk nama Jacob, tentu saja.
Dengan faktor 10 hasil yang sama dengan David C. Terima kasih. (Jawaban saya tidak menjumlahkan semua nama, harus dibahas)