CommencerCommencez gratuitement

Si vous avez une histoire, vous pouvez la simuler !

Parfois, l’histoire qui décrit notre loi de probabilité n’a pas de nom connu. Dans ces cas-là, pas d’inquiétude ! Vous pouvez toujours la simuler. C’est ce que nous allons faire dans cet exercice et le suivant.

Dans des exercices précédents, nous avons étudié l’événement rare des matchs sans coup sûr (no-hitters) en Ligue majeure de baseball. Hitting the cycle, lorsqu’un batteur frappe les quatre types de coups sûrs dans un même match, est un autre événement rare. Comme les no-hitters, cela peut être modélisé par un processus de Poisson, donc les temps entre deux cycles suivent aussi une loi exponentielle.

Combien de temps devons-nous attendre pour voir un no-hitter puis, ensuite, un batteur réussir le cycle ? L’idée est que nous devons attendre un certain temps pour le no-hitter, puis après celui-ci, attendre le cycle. Autrement dit, quel est le temps d’attente total pour l’arrivée successive de deux processus de Poisson différents ? Le temps d’attente total est la somme du temps attendu pour le no-hitter et du temps attendu pour le cycle.

Vous allez maintenant écrire une fonction qui échantillonne la distribution décrite par cette histoire.

Cet exercice fait partie du cours

<cours>Réflexion statistique en Python (Partie 1)</cours>
Voir le cours

Instructions de l’exercice

  • Définissez une fonction avec la signature d’appel successive_poisson(tau1, tau2, size=1) qui échantillonne le temps d’attente pour un no-hitter et pour un cycle.
    • Prélevez des temps d’attente (size échantillons) pour le no-hitter à partir d’une loi exponentielle paramétrée par tau1 et affectez-les à t1.
    • Prélevez des temps d’attente (size échantillons) pour le cycle à partir d’une loi exponentielle paramétrée par tau2 et affectez-les à t2.
    • La fonction renvoie la somme des temps d’attente pour les deux événements.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

def successive_poisson(tau1, tau2, size=1):
    """Compute time for arrival of 2 successive Poisson processes."""
    # Draw samples out of first exponential distribution: t1
    t1 = ____(____, ____)

    # Draw samples out of second exponential distribution: t2
    t2 = ____(____, ____)

    return t1 + t2
Modifier et exécuter le code