Probabilités conditionnelles

Les probabilités jouent un grand rôle dans de nombreux domaines :

  • science des données

  • finance

  • médecine

  • industrie

  • météorologie

  • …​

Le langage Python avec son module random peut aider à comprendre et à simuler des situations s’appuyant sur des probabilités.

💻 Travail n° 1 Module random

Le module random de Python nous permet de :

  • Générer des nombres aléatoires (entiers ou réels) selon différentes distributions (gaussiennes, exponentielles, logarithmiques)

  • Simuler des lancers de pièces ou de dés

  • Effectuer des tirages aléatoires dans des listes

🎯 Travail à faire :

  1. S’appuyer sur cet article link pour compléter la fonction simulerLancerDé() du script suivant qui permet de simuler le lancer d’un dé à 6 faces en retournant un nombre aléatoire compris dans l’intervalle [1,6].

    Remplacer l’instruction pass par votre proposition de code

    import random as rnd
    
    # Simuler un lancer de dé
    def simulerLancerDeDe():
        pass
    
    #Point d'entrée du script
    if __name__ == "__main__":
        # Initialise le générateur de nombre aléatoires avec
        # la date
        rnd.seed()
    
        #Lancer de dé
        resultat = simulerLancerDeDe()
    
        #Affichage du résultat
        print(f"Le résultat du lancer de dé est : {resultat}")
  2. De manière intuitive, quelle est la probabilité d’obtenir un 3 lors d’un lancer de dé ?

  3. Modifier le script pour qu’il simule le lancer de dé 10, 100, 10000, 1000000 fois et lui faire afficher la fréquence d’obtention du 3 lors de ces lancers sous forme de pourcentage.

    Que constatez-vous lorsque le nombre de lancers de dé augmente ?

💻 Travail n° 2 Probabilités conditionnelles - 1

Une usine de production de smartphones utilise deux chaînes de montage, A et B. La chaîne A produit 60% des smartphones, tandis que la chaîne B produit les 40% restants. On sait que :

  • 3% des smartphones produits par la chaîne A présentent un défaut d’écran.

  • 2% des smartphones produits par la chaîne B présentent un défaut d’écran.

Un contrôle qualité est effectué sur un smartphone choisi au hasard en fin de production.

🎯 Travail à faire :

  1. Donner la probabilité qu’un smartphone soit produit par la chaîne A

  2. Donner la probabilité qu’un smartphone soit produit par la chaîne B

  3. Donner la probabilité qu’un smartphone ait un défaut d’écran sachant qu’il provient de la chaîne A

  4. Donner la probabilité qu’un smartphone ait un défaut d’écran sachant qu’il provient de la chaîne B

  5. Poser le calcul qui donne la probabilité totale qu’un smartphone présente un défaut d’écran

    Résultat attendu : 2.6%

  6. Si un smartphone présente un défaut d’écran, poser le calcul qui mène à la probabilité qu’il provienne de la chaîne A ?

    Résultat attendu : 69.2%

  7. Exécuter le script Python suivant pour vérifier l’exactitude des réponses aux questions précédentes.

    import random
    
    def production_smartphone():
        # Choix de la chaîne de production (A: 60%, B: 40%)
        if random.random() < 0.60:
            chaine = 'A'
            # 3% de défauts pour la chaîne A
            defaut = random.random() < 0.03
        else:
            chaine = 'B'
            # 2% de défauts pour la chaîne B
            defaut = random.random() < 0.02
        
        return chaine, defaut
    
    def simulation(n_smartphones):
        total_A = 0
        total_B = 0
        defauts_A = 0
        defauts_B = 0
        total_defauts = 0
    
        for i in range(n_smartphones):
            chaine, defaut = production_smartphone()
            if chaine == 'A':
                total_A += 1
                if defaut:
                    defauts_A += 1
                    total_defauts += 1
            else:
                total_B += 1
                if defaut:
                    defauts_B += 1
                    total_defauts += 1
    
        return total_A, total_B, defauts_A, defauts_B, total_defauts
    
    #Point d'entrée du script
    if __name__ == "__main__":
        # Simulation
        n_smartphones = 1000000
        total_A, total_B, defauts_A, defauts_B, total_defauts = simulation(n_smartphones)
    
        # Calcul des probabilités
        prob_A = total_A / n_smartphones
        prob_B = total_B / n_smartphones
        prob_defaut_A = defauts_A / total_A
        prob_defaut_B = defauts_B / total_B
        prob_defaut_total = total_defauts / n_smartphones
        prob_A_sachant_defaut = defauts_A / total_defauts
    
        # Affichage des résultats
        print(f"Probabilité de production par la chaîne A : {prob_A:.4f}")
        print(f"Probabilité de production par la chaîne B : {prob_B:.4f}")
        print(f"Probabilité de défaut pour la chaîne A : {prob_defaut_A:.4f}")
        print(f"Probabilité de défaut pour la chaîne B : {prob_defaut_B:.4f}")
        print(f"Probabilité totale de défaut : {prob_defaut_total:.4f}")
        print(f"Probabilité que le smartphone vienne de la chaîne A sachant qu'il a un défaut : {prob_A_sachant_defaut:.4f}")

💻 Travail n° 3 Probabilités conditionnelles - 2

On vous donne le sujet d’un exercice que vous avez fait en classe avec M. Marchadour.

Une entreprise fabrique des lecteurs MP3, dont 6% sont défectueux. Chaque lecteur MP3 est soumis à une unité de contrôle dont la fiabilité n’est pas parfaite. Cette unité rejette 98% des lecteurs MP3 défectueux et 5% des lecteurs MP3 fonctionnant correctement.

On note les évènements suivants :

  • D : “Le lecteur MP3 est défectueux”

  • R : “Le lecteur MP3 est rejeté”

🎯 Travail à faire :

S’appuyer sur le script Python donné dans l’exercice précédent pour qu’il affiche les réponses aux questions suivantes :

  1. Calculer la probabilité qu’un lecteur MP3 soit défectueux et ne soit pas rejeté

  2. Calculer la probabilité qu’il y ait une erreur de contrôle

  3. Montrer que la probabilité que le lecteur MP3 ne soit pas rejeté est 0.8942

  4. Sachant qu’il y a une erreur de contrôle, quelle est la probabilité que le MP3 soit défectueux.

🞄  🞄  🞄