veuillez consulter le script Python suivant pour Python2.
La réponse est inspirée de la réponse de David C.
Ma réponse finale serait, la probabilité de trouver au moins cinq Jacobs dans une classe, Jacob étant le nom le plus probable selon les données de https://www.ssa.gov/oact/babynames/limits.html "National Data "à partir de 2006.
La probabilité est calculée selon une distribution binomiale avec Jacob-Probability étant la probabilité de succès.
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]))
Max. probabilité d'au moins cinq enfants portant le même nom sur 25: 4.7e-07 pour le nom Jacob
Max. probabilité pour au moins cinq enfants portant le même nom sur 50: 1,6e-05 pour le nom Jacob, bien sûr.
Max. probabilité pour au moins cinq enfants portant le même nom sur 100: 0,00045 pour le nom Jacob, bien sûr.
Par un facteur de 10 même résultat que celui de David C. Merci. (Ma réponse ne résume pas tous les noms, devrait être discutée)