2nde 502 Statistiques, Exemples du cours

In [75]:
#import des modules
import matplotlib.pyplot as plt
import numpy as np
import random
% matplotlib inline
In [76]:
#Fonctions statistiques pour une série brute
def moyenne(tab):
    return sum(tab)/len(tab)

def variance(tab):
    return sum(map(lambda x : x**2, tab))/len(tab) - moyenne(tab)**2

def ecart_type(tab):
    return np.sqrt(variance(tab))

#Attention comme les tableaux sont indexés à partir de 0
#il faut translater tous les indices de -1 dans les formules

def mediane(tab):
    tab2 = tab[:]
    tab2.sort()
    n = len(tab2)
    if n%2 == 0:
        return (tab2[n//2-1] + tab2[n//2])/2, 'hors-série'
    return tab2[(n+1)//2-1], (n+1)//2

def decile(tab, q):
    tab2 = tab[:]
    tab2.sort()
    n = len(tab2)
    position = n*q
    if position == int(position):
        return tab[int(position)-1], int(position)
    return tab[int(position)], int(position) + 1    

def cumul(tab):
    cumultab = [tab[0]]
    for e in tab[1:]:
        cumultab.append(e + cumultab[-1])
    return  cumultab
    

#Fonctions statistiques pour une série donnée sous la forme tableau de valeurs, tableau d'effectifs
#En fait on a juste besoin de la fonction serie_brute pour réutiliser les fonctions précédentes
def moyenne_effectif(valeur, effectif):
    return sum([x*n for (x, n) in  zip(valeur, effectif)])/sum(effectif)

def variance_effectif(valeur, effectif):
    return sum([x**2*n for (x, n) in  zip(valeur, effectif)])/sum(effectif) - moyenne_effectif(valeur, effectif)**2

def ecart_type_effectif(valeur, effectif):
    return np.sqrt(variance_effectif(tab))

#Attention comme les tableaux sont indexés à partir de 0
#il faut translater tous les indices de -1 dans les formules

def serie_brute(valeur, effectif):
    """Reconstitution d'une série brute à partir des tableaux de valeurs et d'effectifs"""
    return [x for i, x in enumerate(valeur) for k in range(effectif[i])]

def valeur_effectif(brute):
    """Retourne un tableau de valeurs et un tableau d'effectifs
    à partir d'une série brute"""
    tab2 = brute[:]
    tab2.sort() #tri    
    valeur, effectif = [tab2[0]], [1]
    for e in tab2[1:]:
        if e != valeur[-1]:
            valeur.append(e)
            effectif.append(1)
        else:
            effectif[-1] += 1    
    return valeur, effectif
    
    
        
def affiche_tableau(brute=None, valeur=None, effectif=None, croissant=False, conversion_effectif = lambda x : x):
    """Affiche un tableau Valeurs/ Effectifs"""    
    if brute != None:
        if effectif == None and valeur == None:
            valeur, effectif = valeur_effectif(brute)
    if effectif != None and valeur != None and len(valeur) == len(effectif):
        if croissant:
            effectifcumul = cumul(effectif)
            print('|{:^30s}|{:^30s}|{:^30s}|'.format('Valeur', 'Effectif', 'Effectif cumulé croissant'))
            for val, eff, effcumul in zip(valeur, effectif, effectifcumul):
                print('|{:^30g}|{:^30g}|{:^30g}|'.format(val, conversion_effectif(eff), conversion_effectif(effcumul)))
        else:
            print('|{:^40s}|{:^40s}|'.format('Valeur', 'Effectif'))
            for val, eff in zip(valeur, effectif):
                print('|{:^40g}|{:^40g}|'.format(val, conversion_effectif(eff)))
                
            
def diagramme_circulaire(valeur, effectif):
    # The slices will be ordered and plotted counter-clockwise.
    #plt.clf()
    labels = [str(x) for x in valeur]
    sizes = effectif
    colors = ['#ECE9E9', '#ACAAAA', '#857E7E', '#848484']
    plt.pie(sizes,  labels=labels, 
            autopct='%1.1f%%', shadow=True, colors=colors,startangle=90)
    # Set aspect ratio to be equal so that pie is drawn as a circle.
    plt.axis('equal')
    #plt.show()    
    
def diagramme_baton(valeur, effectif, largeur=1):
    #plt.clf()    
    plt.bar(valeur, effectif,align='center', width=largeur,color='red')
    plt.xlabel('Valeurs')
    plt.ylabel('Effectifs')
    plt.ylim(min(effectif) - 0.1*(max(effectif) - min(effectif)),
             max(effectif) + 0.1*(max(effectif) - min(effectif)))
    for p, e in zip(valeur, effectif):
        plt.annotate(str(e),xy=(p,e),  xycoords='data', fontsize=16)
    # Tweak spacing to prevent clipping of ylabel
    plt.subplots_adjust(left=0.15)    
    #plt.show()
        
def diagramme_boite(brute=None, valeur=None, effectif=None, xmin=None, xmax=None):
    
    def diagramme_boite_brute(tab):
        #plt.clf()
        if xmin  != None and xmax != None:
            plt.xlim(xmin, xmax)
        else:
            plt.xlim(min(tab) - 0.1*(max(tab) - min(tab)), max(tab) + 0.1*(max(tab) - min(tab)))
        plt.boxplot(tab,vert=False,whis=10,medianprops=dict(linestyle='-',color='red'),boxprops=dict(linewidth=3))        
        #plt.show()
    
    if brute == None:
        if effectif != None and valeur != None and len(valeur) == len(effectif):
            diagramme_boite_brute(sorted(serie_brute(valeur, effectif)))
    elif effectif == None and valeur == None:
        diagramme_boite_brute(sorted(brute))
    
def polygone_cumul(valeur, effectif,conversion_effectif = lambda x : x):
    plt.xlabel('Valeurs')
    plt.ylabel('Effectifs cumulés croissants')
    serie_tri = sorted( [(v, e) for (v,e) in zip(valeur, effectif)])   
    val_tri = [couple[0] for couple in serie_tri]   
    eff_tri = [conversion_effectif(couple[1]) for couple in serie_tri]
    cum_tri = cumul(eff_tri)   
    plt.ylim(min(cum_tri) - 0.1*(max(cum_tri) - min(cum_tri)),
             max(cum_tri) + 0.1*(max(cum_tri) - min(cum_tri)))
    plt.xlim(min(val_tri) - 0.1*(max(val_tri) - min(val_tri)),
             max(val_tri) + 0.1*(max(val_tri) - min(val_tri)))    
    plt.plot(val_tri, cum_tri,'o-')
    plt.grid(True)

def nuage(valeur, effectif):
    plt.xlabel('Valeurs')
    plt.ylabel('Effectifs')
    plt.ylim(min(effectif) - 0.1*(max(effectif) - min(effectif)),
             max(effectif) + 0.1*(max(effectif) - min(effectif)))
    plt.scatter(valeur, effectif,marker = 'o')
    plt.grid(True)

def histogramme(brute=None,effectif=None,valeur=None, nbclasses = 1, binf = 0, bsup = 0):
    if valeur and effectif:
        brute = serie_brute(valeur, effectif)
    # the histogram of the data
    n, bins, patches = plt.hist(brute, nbclasses, range = (binf, bsup), facecolor='grey', alpha=0.5)    
    plt.xlabel('Valeur')
    plt.ylabel('Effectif')
    plt.title(r'Histogramme')
    # Tweak spacing to prevent clipping of ylabel
    plt.subplots_adjust(left=0.15)
    #plt.savefig('histo-nba.pdf')
    #plt.show()

    
def indicateurs(brute=None,effectif=None,valeur=None, conversion_effectif = lambda x : x):
    
    def indicateurs_brute(tab):           
        tab2 = tab[:]
        tab2.sort()
        print('Série triée :')
        valeur, effectif = valeur_effectif(tab2)
        affiche_tableau(valeur=valeur, effectif=effectif, croissant=True, conversion_effectif = conversion_effectif)
        print('Effectif total = %s'%conversion_effectif(len(tab2)))
        print('Moyenne = %.4f'%moyenne(tab2))
        print('Variance = %.4f'%variance(tab2))
        print('Ecart-type = %.4f'%ecart_type(tab2))
        print('Min = %s'%min(tab2))
        print('D1 = %s en position %s'%decile(tab2, 0.1))
        print('Q1 = %s en position %s'%decile(tab2, 0.25))
        print('Mediane = %s en position %s'%mediane(tab2))
        print('Q2 = %s en position %s'% decile(tab2, 0.5))
        print('Q3 = %s en position %s'%decile(tab2, 0.75))
        print('D9 = %s en position %s'%decile(tab2, 0.9))
        print('Max = %s '%max(tab2))  
       
        
    if brute == None:
        if effectif != None and valeur != None and len(valeur) == len(effectif):            
            indicateurs_brute(serie_brute(valeur, effectif))
    elif effectif == None and valeur == None:
        indicateurs_brute(brute)

Jusqu'à l'exemple 1 il s'agit de tests sans rapport avec le poly de cours

In [77]:
#test de la fonction serie_brute
serie_brute([1,2,3],[4,1,5])
Out[77]:
[1, 1, 1, 1, 2, 3, 3, 3, 3, 3]
In [78]:
#test des fonctions 
tabalea1 = [random.randint(1, 100) for i in range(11)]
tabalea2 = [random.randint(1, 100) for i in range(10)]

for t in [tabalea1, tabalea2]:
    print('Série = ', t)
    indicateurs(brute=t)
    print()
Série =  [99, 11, 85, 88, 31, 16, 8, 39, 9, 34, 46]
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              8               |              1               |              1               |
|              9               |              1               |              2               |
|              11              |              1               |              3               |
|              16              |              1               |              4               |
|              31              |              1               |              5               |
|              34              |              1               |              6               |
|              39              |              1               |              7               |
|              46              |              1               |              8               |
|              85              |              1               |              9               |
|              88              |              1               |              10              |
|              99              |              1               |              11              |
Effectif total = 11
Moyenne = 42.3636
Variance = 1027.6860
Ecart-type = 32.0575
Min = 8
D1 = 9 en position 2
Q1 = 11 en position 3
Mediane = 34 en position 6
Q2 = 34 en position 6
Q3 = 85 en position 9
D9 = 88 en position 10
Max = 99 

Série =  [24, 72, 28, 46, 71, 80, 42, 71, 6, 49]
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              6               |              1               |              1               |
|              24              |              1               |              2               |
|              28              |              1               |              3               |
|              42              |              1               |              4               |
|              46              |              1               |              5               |
|              49              |              1               |              6               |
|              71              |              2               |              8               |
|              72              |              1               |              9               |
|              80              |              1               |              10              |
Effectif total = 10
Moyenne = 48.9000
Variance = 543.0900
Ecart-type = 23.3043
Min = 6
D1 = 6 en position 1
Q1 = 28 en position 3
Mediane = 47.5 en position hors-série
Q2 = 46 en position 5
Q3 = 71 en position 8
D9 = 72 en position 9
Max = 80 

In [79]:
tabalea3 = [random.randint(1, 10) for i in range(50)]
valeur3, effectif3 = valeur_effectif(tabalea3)
valeur3, effectif3
Out[79]:
([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [4, 4, 3, 5, 7, 6, 7, 8, 2, 4])
In [80]:
polygone_cumul(valeur3, effectif3)

Exemples 1, 2 et 4

In [81]:
 brute1 = [11, 11, 12, 13, 9, 9, 10, 9, 20, 9, 13, 14, 10, 10, 12, 13, 7, 11, 10,
7, 13, 12, 13, 9, 13, 14, 11, 11, 9, 14, 12, 14, 11, 9, 7, 9, 11]
In [82]:
indicateurs(brute=brute1)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              7               |              3               |              3               |
|              9               |              8               |              11              |
|              10              |              4               |              15              |
|              11              |              7               |              22              |
|              12              |              4               |              26              |
|              13              |              6               |              32              |
|              14              |              4               |              36              |
|              20              |              1               |              37              |
Effectif total = 37
Moyenne = 11.1351
Variance = 6.1709
Ecart-type = 2.4841
Min = 7
D1 = 9 en position 4
Q1 = 9 en position 10
Mediane = 11 en position 19
Q2 = 11 en position 19
Q3 = 13 en position 28
D9 = 14 en position 34
Max = 20 
In [83]:
val1, eff1 = valeur_effectif(brute1)
In [84]:
nuage(val1, eff1)
In [85]:
diagramme_circulaire(valeur = val1, effectif = eff1)
In [86]:
diagramme_boite(valeur = val1, effectif = eff1)
In [87]:
polygone_cumul(val1, eff1)

Exemple 3

Série 1

In [88]:
val1, eff1 = [50,55,60,65,70,75,80,85,90], [1,2,6,10,11,9,4,5,2]
In [89]:
nuage(val1, eff1)
In [90]:
indicateurs(valeur = val1, effectif = eff1)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              50              |              1               |              1               |
|              55              |              2               |              3               |
|              60              |              6               |              9               |
|              65              |              10              |              19              |
|              70              |              11              |              30              |
|              75              |              9               |              39              |
|              80              |              4               |              43              |
|              85              |              5               |              48              |
|              90              |              2               |              50              |
Effectif total = 50
Moyenne = 70.8000
Variance = 84.3600
Ecart-type = 9.1848
Min = 50
D1 = 60 en position 5
Q1 = 65 en position 13
Mediane = 70.0 en position hors-série
Q2 = 70 en position 25
Q3 = 75 en position 38
D9 = 85 en position 45
Max = 90 

Série 3 : valeurs regroupées par classes

In [91]:
val3, eff3 = [1.5,3.5,5,8], [30,30,40,40]
In [92]:
indicateurs(valeur = val3, effectif = eff3)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|             1.5              |              30              |              30              |
|             3.5              |              30              |              60              |
|              5               |              40              |             100              |
|              8               |              40              |             140              |
Effectif total = 140
Moyenne = 4.7857
Variance = 5.6327
Ecart-type = 2.3733
Min = 1.5
D1 = 1.5 en position 14
Q1 = 3.5 en position 35
Mediane = 5.0 en position hors-série
Q2 = 5 en position 70
Q3 = 8 en position 105
D9 = 8 en position 126
Max = 8 

Série 4

In [93]:
val4, eff4 = [0,1,2,3,4,5,6,7,8,9,10], [1,1,1,2,2,6,4,5,3,1,1]
In [94]:
indicateurs(valeur = val4, effectif = eff4)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              0               |              1               |              1               |
|              1               |              1               |              2               |
|              2               |              1               |              3               |
|              3               |              2               |              5               |
|              4               |              2               |              7               |
|              5               |              6               |              13              |
|              6               |              4               |              17              |
|              7               |              5               |              22              |
|              8               |              3               |              25              |
|              9               |              1               |              26              |
|              10              |              1               |              27              |
Effectif total = 27
Moyenne = 5.5185
Variance = 5.3608
Ecart-type = 2.3153
Min = 0
D1 = 2 en position 3
Q1 = 4 en position 7
Mediane = 6 en position 14
Q2 = 6 en position 14
Q3 = 7 en position 21
D9 = 8 en position 25
Max = 10 

Exemple 6

Question 1

In [95]:
prix = [900+i for i in range(0,700,100)]
prix.remove(1100)
effectif = [150,180,240,120,150,150]
affiche_tableau(valeur=prix, effectif=effectif)
|                 Valeur                 |                Effectif                |
|                  900                   |                  150                   |
|                  1000                  |                  180                   |
|                  1200                  |                  240                   |
|                  1300                  |                  120                   |
|                  1400                  |                  150                   |
|                  1500                  |                  150                   |

Question 1.b

In [96]:
diagramme_baton(prix, effectif,largeur=50)
In [97]:
diagramme_boite(valeur=prix,effectif=effectif)
In [98]:
#indicateurs de la série
indicateurs(valeur=prix,effectif=effectif)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|             900              |             150              |             150              |
|             1000             |             180              |             330              |
|             1200             |             240              |             570              |
|             1300             |             120              |             690              |
|             1400             |             150              |             840              |
|             1500             |             150              |             990              |
Effectif total = 990
Moyenne = 1206.0606
Variance = 41781.4509
Ecart-type = 204.4051
Min = 900
D1 = 900 en position 99
Q1 = 1000 en position 248
Mediane = 1200.0 en position hors-série
Q2 = 1200 en position 495
Q3 = 1400 en position 743
D9 = 1500 en position 891
Max = 1500 

Question 1.c

In [99]:
#on change le prix minimum et le prix maximum
prix[0], prix[-1] = 500, 2000
In [100]:
#indicateurs de la nouvelel série


indicateurs(valeur=prix,effectif=effectif)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|             500              |             150              |             150              |
|             1000             |             180              |             330              |
|             1200             |             240              |             570              |
|             1300             |             120              |             690              |
|             1400             |             150              |             840              |
|             2000             |             150              |             990              |
Effectif total = 990
Moyenne = 1221.2121
Variance = 185307.6217
Ecart-type = 430.4737
Min = 500
D1 = 500 en position 99
Q1 = 1000 en position 248
Mediane = 1200.0 en position hors-série
Q2 = 1200 en position 495
Q3 = 1400 en position 743
D9 = 2000 en position 891
Max = 2000 

On peut remarquer que la médiane et les quartiles sont insensibles au changement des valeurs extremes mais que ce n'est pas le cas de la mouenne et de l'écart-type

Question 2

In [101]:
diagramme_circulaire(['0,98 L', '0,99 L', '1 L', '1,1 L'], [45, 22, 27, 6])
In [102]:
valeur = [float(chaine.rstrip(' L').replace(',','.')) for chaine in  ['0,98 L', '0,99 L', '1 L', '1,1 L']]
effectif = [45, 22, 27, 6]
In [103]:
indicateurs(valeur=valeur,effectif=effectif)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|             0.98             |              45              |              45              |
|             0.99             |              22              |              67              |
|              1               |              27              |              94              |
|             1.1              |              6               |             100              |
Effectif total = 100
Moyenne = 0.9948
Variance = 0.0008
Ecart-type = 0.0278
Min = 0.98
D1 = 0.98 en position 10
Q1 = 0.98 en position 25
Mediane = 0.99 en position hors-série
Q2 = 0.99 en position 50
Q3 = 1.0 en position 75
D9 = 1.0 en position 90
Max = 1.1 

Question 4 Moyenne approché de la série regroupée par classes de l'histogramme de l'exemple 3

$$\frac{1,5 \times 30 + 3,5 \times 30 + 5 \times 40 + 8 \times 40}{140} \approx 4,79$$

Exemple 8

In [104]:
serieA = [21, 19, 17, 11, 9, 16, 8, 6, 12]
In [105]:
indicateurs(brute=serieA)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              6               |              1               |              1               |
|              8               |              1               |              2               |
|              9               |              1               |              3               |
|              11              |              1               |              4               |
|              12              |              1               |              5               |
|              16              |              1               |              6               |
|              17              |              1               |              7               |
|              19              |              1               |              8               |
|              21              |              1               |              9               |
Effectif total = 9
Moyenne = 13.2222
Variance = 24.3951
Ecart-type = 4.9391
Min = 6
D1 = 6 en position 1
Q1 = 9 en position 3
Mediane = 12 en position 5
Q2 = 12 en position 5
Q3 = 17 en position 7
D9 = 21 en position 9
Max = 21 
In [106]:
diagramme_boite(brute=serieA)
In [107]:
serieB = [2,9,7,2,9,8,8,6,2,8,6,8]
In [108]:
indicateurs(brute=serieB)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              2               |              3               |              3               |
|              6               |              2               |              5               |
|              7               |              1               |              6               |
|              8               |              4               |              10              |
|              9               |              2               |              12              |
Effectif total = 12
Moyenne = 6.2500
Variance = 6.8542
Ecart-type = 2.6180
Min = 2
D1 = 2 en position 2
Q1 = 2 en position 3
Mediane = 7.5 en position hors-série
Q2 = 7 en position 6
Q3 = 8 en position 9
D9 = 9 en position 11
Max = 9 
In [109]:
diagramme_boite(brute=serieB)

Exemple 9

In [110]:
serieA = [49, 21, 19, 42, 7, 29, 9, 29, 10, 4, 46, 44, 14, 52, 23, 34, 39, 43, 51, 40, 51, 18]
In [111]:
indicateurs(brute=serieA)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              4               |              1               |              1               |
|              7               |              1               |              2               |
|              9               |              1               |              3               |
|              10              |              1               |              4               |
|              14              |              1               |              5               |
|              18              |              1               |              6               |
|              19              |              1               |              7               |
|              21              |              1               |              8               |
|              23              |              1               |              9               |
|              29              |              2               |              11              |
|              34              |              1               |              12              |
|              39              |              1               |              13              |
|              40              |              1               |              14              |
|              42              |              1               |              15              |
|              43              |              1               |              16              |
|              44              |              1               |              17              |
|              46              |              1               |              18              |
|              49              |              1               |              19              |
|              51              |              2               |              21              |
|              52              |              1               |              22              |
Effectif total = 22
Moyenne = 30.6364
Variance = 244.5041
Ecart-type = 15.6366
Min = 4
D1 = 9 en position 3
Q1 = 18 en position 6
Mediane = 31.5 en position hors-série
Q2 = 29 en position 11
Q3 = 44 en position 17
D9 = 51 en position 20
Max = 52 

Pour la série A :

  • l'effectif total égal à 22 est pair donc la médiane est la demi-somme des valeurs en positions 22/2 = 11 et 11 + 1 = 12 donc la médiane est la valeur $\frac{29+34}{2}=31,5$
  • le premier quartile est en position $\frac{22}{4}= 5,5 \approx 6$ (arrondi par excès) donc sa valeur est $18$.
  • le troisième quartile est en position $\frac{3 \times 22}{4}= 16,5 \approx 17$ (arrondi par excès) donc sa valeur est $44$.
  • l'écart interquartile est de $Q_{3}-Q_{1}=44 - 18 = 16$.
In [112]:
serieB = [53, 19, 9, 21, 49, 51, 56, 58, 39, 27, 14, 28, 41, 46, 18, 53,
	 58, 6, 44, 53, 16, 41, 15, 11, 32]
In [113]:
indicateurs(brute=serieB)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              6               |              1               |              1               |
|              9               |              1               |              2               |
|              11              |              1               |              3               |
|              14              |              1               |              4               |
|              15              |              1               |              5               |
|              16              |              1               |              6               |
|              18              |              1               |              7               |
|              19              |              1               |              8               |
|              21              |              1               |              9               |
|              27              |              1               |              10              |
|              28              |              1               |              11              |
|              32              |              1               |              12              |
|              39              |              1               |              13              |
|              41              |              2               |              15              |
|              44              |              1               |              16              |
|              46              |              1               |              17              |
|              49              |              1               |              18              |
|              51              |              1               |              19              |
|              53              |              3               |              22              |
|              56              |              1               |              23              |
|              58              |              2               |              25              |
Effectif total = 25
Moyenne = 34.3200
Variance = 294.3776
Ecart-type = 17.1574
Min = 6
D1 = 11 en position 3
Q1 = 18 en position 7
Mediane = 39 en position 13
Q2 = 39 en position 13
Q3 = 51 en position 19
D9 = 56 en position 23
Max = 58 

Pour la série B :

  • l'effectif total égal à 25 est impair donc la médiane est en position $\frac{25+1}{2}=$ donc la médiane est la valeur $39$
  • le premier quartile est en position $\frac{25}{4}= 6,25 \approx 7$ (arrondi par excès !) donc sa valeur est $18$.
  • le troisième quartile est en position $\frac{3 \times 25}{4}= 18,75 \approx 19$ (arrondi par excès) donc sa valeur est $51$.
  • l'écart interquartile est de $Q_{3}-Q_{1}=51 - 18 = 33$.
In [114]:
diagramme_boite(brute=serieA)
In [115]:
diagramme_boite(brute=serieB)

Exemple 10 (ancienne version)

In [116]:
 serie6 = [49, 55, 57, 57, 57, 58, 58, 59, 60, 60 ,60, 62, 63, 63, 63, 63 ,64 ,64 ,64 ,64 ,64,
 65 , 65 ,65 ,66 ,67, 69, 69, 70, 70, 72, 74, 74, 75 ,75 ,76, 77, 78, 79, 80, 80, 82]
In [117]:
indicateurs(brute=serie6)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              49              |              1               |              1               |
|              55              |              1               |              2               |
|              57              |              3               |              5               |
|              58              |              2               |              7               |
|              59              |              1               |              8               |
|              60              |              3               |              11              |
|              62              |              1               |              12              |
|              63              |              4               |              16              |
|              64              |              5               |              21              |
|              65              |              3               |              24              |
|              66              |              1               |              25              |
|              67              |              1               |              26              |
|              69              |              2               |              28              |
|              70              |              2               |              30              |
|              72              |              1               |              31              |
|              74              |              2               |              33              |
|              75              |              2               |              35              |
|              76              |              1               |              36              |
|              77              |              1               |              37              |
|              78              |              1               |              38              |
|              79              |              1               |              39              |
|              80              |              2               |              41              |
|              82              |              1               |              42              |
Effectif total = 42
Moyenne = 66.4762
Variance = 61.0113
Ecart-type = 7.8110
Min = 49
D1 = 57 en position 5
Q1 = 60 en position 11
Mediane = 64.5 en position hors-série
Q2 = 64 en position 21
Q3 = 74 en position 32
D9 = 78 en position 38
Max = 82 
In [118]:
valeur6, effectif6 = valeur_effectif(serie6)
diagramme_boite(valeur=valeur6, effectif=effectif6)

Exemple 10 (nouvelle version)

In [119]:
serie11 = [9, 14, 13, 0, 18, 6, 25, 5, 16, 8, 14, 8, 8, 12, 14, 12, 0, 3, 11, 4, 1, 11, 1, 8, 14, 9, 10, 5]
In [120]:
indicateurs(brute=serie11)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              0               |              2               |              2               |
|              1               |              2               |              4               |
|              3               |              1               |              5               |
|              4               |              1               |              6               |
|              5               |              2               |              8               |
|              6               |              1               |              9               |
|              8               |              4               |              13              |
|              9               |              2               |              15              |
|              10              |              1               |              16              |
|              11              |              2               |              18              |
|              12              |              2               |              20              |
|              13              |              1               |              21              |
|              14              |              4               |              25              |
|              16              |              1               |              26              |
|              18              |              1               |              27              |
|              25              |              1               |              28              |
Effectif total = 28
Moyenne = 9.2500
Variance = 32.9732
Ecart-type = 5.7422
Min = 0
D1 = 1 en position 3
Q1 = 5 en position 7
Mediane = 9.0 en position hors-série
Q2 = 9 en position 14
Q3 = 13 en position 21
D9 = 16 en position 26
Max = 25 
In [121]:
valeur11, effectif11 = valeur_effectif(serie11)
In [122]:
diagramme_baton(valeur=valeur11, effectif=effectif11)
In [123]:
diagramme_boite(brute=serie11)

Exercices du manuel

Exercices 39 page 158

In [124]:
diagramme_circulaire(['Etat', 'Régions', 'Départements', 'Communes'], [56, 9, 7, 28])
In [125]:
for e, p in zip(['Etat', 'Régions', 'Départements', 'Communes'], [56, 9, 7, 28]):
    print('{:} : Montant en millions d\'euros : {:.3f}'.format(e, p/100*108,6))
Etat : Montant en millions d'euros : 60.480
Régions : Montant en millions d'euros : 9.720
Départements : Montant en millions d'euros : 7.560
Communes : Montant en millions d'euros : 30.240

Exercice 64 page 161 premier point de vue

On considère que la population étudiée est celle des douze mois de l'année et que le caractère mesuré est la fréquentation des cinémas en millions d'entrées pour un mois fixé.

Ce caractère est quantitatif.

In [126]:
entree = [16.2, 17.6, 16.4, 20.9, 16.2, 14.6, 16.9, 14.1, 11.1, 18, 22.8, 18.6]
In [127]:
valeur, effectif = valeur_effectif(entree)
In [128]:
indicateurs(brute = entree)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|             11.1             |              1               |              1               |
|             14.1             |              1               |              2               |
|             14.6             |              1               |              3               |
|             16.2             |              2               |              5               |
|             16.4             |              1               |              6               |
|             16.9             |              1               |              7               |
|             17.6             |              1               |              8               |
|              18              |              1               |              9               |
|             18.6             |              1               |              10              |
|             20.9             |              1               |              11              |
|             22.8             |              1               |              12              |
Effectif total = 12
Moyenne = 16.9500
Variance = 8.6142
Ecart-type = 2.9350
Min = 11.1
D1 = 14.1 en position 2
Q1 = 14.6 en position 3
Mediane = 16.65 en position hors-série
Q2 = 16.4 en position 6
Q3 = 18 en position 9
D9 = 20.9 en position 11
Max = 22.8 

Polygone des effectifs cumulés croissants

In [129]:
polygone_cumul(valeur, effectif)

Exercice 64 page 161 second point de vue

On considère que la population étudiée est celle des entrées au cinéma payées sur une année civile et que que le caractère mesuré est le mois où cette entrée a été réalisée. Les mois sont codés de 1 à 12, il s'agit donc de l'étude d'un caractère quantitatif. Dans ce point de vue, il est difficile d'interpréter la moyenne. En revanche, la fréquence cumulée croissante des entrées sur les six premiers mois de l'année est intéressante, elle est de $\frac{101,9}{203,4} \approx 0,501$ c'est-à-dire que la fréquentation des cinémas sur les six premiers mois représente $50,1 \%$ de la fréquentation totale ce qui est équilibré.

In [130]:
mois = [n for n in range(1, 13)]
entree = list(map(lambda x : int(x*10), [16.2, 17.6, 16.4, 20.9, 16.2, 14.6, 16.9, 14.1, 11.1, 18, 22.8, 18.6]))
In [131]:
indicateurs(valeur = mois, effectif = entree, conversion_effectif = lambda x : x*10**5)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              1               |           1.62e+07           |           1.62e+07           |
|              2               |           1.76e+07           |           3.38e+07           |
|              3               |           1.64e+07           |           5.02e+07           |
|              4               |           2.09e+07           |           7.11e+07           |
|              5               |           1.62e+07           |           8.73e+07           |
|              6               |           1.46e+07           |          1.019e+08           |
|              7               |           1.69e+07           |          1.188e+08           |
|              8               |           1.41e+07           |          1.329e+08           |
|              9               |           1.11e+07           |           1.44e+08           |
|              10              |           1.8e+07            |           1.62e+08           |
|              11              |           2.28e+07           |          1.848e+08           |
|              12              |           1.86e+07           |          2.034e+08           |
Effectif total = 203400000
Moyenne = 6.5772
Variance = 12.6206
Ecart-type = 3.5526
Min = 1
D1 = 2 en position 204
Q1 = 4 en position 509
Mediane = 6.0 en position hors-série
Q2 = 6 en position 1017
Q3 = 10 en position 1526
D9 = 11 en position 1831
Max = 12 
In [132]:
polygone_cumul(mois, entree, conversion_effectif = lambda x : x*10**5)

Exercice 65 page 161

In [133]:
duree = [5]*2 + [15]*3 + [25]*8 + [35]*3 + [45]*4 + [55]*5
In [134]:
indicateurs(brute = duree)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              5               |              2               |              2               |
|              15              |              3               |              5               |
|              25              |              8               |              13              |
|              35              |              3               |              16              |
|              45              |              4               |              20              |
|              55              |              5               |              25              |
Effectif total = 25
Moyenne = 32.6000
Variance = 242.2400
Ecart-type = 15.5641
Min = 5
D1 = 15 en position 3
Q1 = 25 en position 7
Mediane = 25 en position 13
Q2 = 25 en position 13
Q3 = 45 en position 19
D9 = 55 en position 23
Max = 55 
In [135]:
polygone_cumul(*valeur_effectif(duree))
In [136]:
histogramme(brute = duree, nbclasses = 6, binf = 0, bsup = 60)

Exercice 66 page 161

In [137]:
valeur, effectif = [69, 70, 71, 72, 73, 74], [2, 16, 11, 8, 7, 6]
In [138]:
diagramme_baton(valeur = valeur, effectif = effectif)
In [139]:
diagramme_circulaire(valeur, effectif )
In [140]:
indicateurs(valeur = valeur, effectif = effectif)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              69              |              2               |              2               |
|              70              |              16              |              18              |
|              71              |              11              |              29              |
|              72              |              8               |              37              |
|              73              |              7               |              44              |
|              74              |              6               |              50              |
Effectif total = 50
Moyenne = 71.4000
Variance = 2.1200
Ecart-type = 1.4560
Min = 69
D1 = 70 en position 5
Q1 = 70 en position 13
Mediane = 71.0 en position hors-série
Q2 = 71 en position 25
Q3 = 73 en position 38
D9 = 74 en position 45
Max = 74 

Exercice 49 page 159

In [141]:
serie49 = [12,9,6,13,10,9,8,16,11,17,9,9,16,13,17,9,14]
In [142]:
indicateurs(brute = serie49)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              6               |              1               |              1               |
|              8               |              1               |              2               |
|              9               |              5               |              7               |
|              10              |              1               |              8               |
|              11              |              1               |              9               |
|              12              |              1               |              10              |
|              13              |              2               |              12              |
|              14              |              1               |              13              |
|              16              |              2               |              15              |
|              17              |              2               |              17              |
Effectif total = 17
Moyenne = 11.6471
Variance = 11.0519
Ecart-type = 3.3244
Min = 6
D1 = 8 en position 2
Q1 = 9 en position 5
Mediane = 11 en position 9
Q2 = 11 en position 9
Q3 = 14 en position 13
D9 = 17 en position 16
Max = 17 
In [143]:
diagramme_baton(*valeur_effectif(serie49))

Exercice 58 p. 161

In [144]:
corentin = [12, 12, 11, 13, 12]
gavin = [2, 18, 19, 10, 11]
morgane = [14, 2, 16, 10, 14]
In [145]:
indicateurs(corentin)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              11              |              1               |              1               |
|              12              |              3               |              4               |
|              13              |              1               |              5               |
Effectif total = 5
Moyenne = 12.0000
Variance = 0.4000
Ecart-type = 0.6325
Min = 11
D1 = 11 en position 1
Q1 = 12 en position 2
Mediane = 12 en position 3
Q2 = 12 en position 3
Q3 = 12 en position 4
D9 = 13 en position 5
Max = 13 
In [146]:
indicateurs(gavin)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              2               |              1               |              1               |
|              10              |              1               |              2               |
|              11              |              1               |              3               |
|              18              |              1               |              4               |
|              19              |              1               |              5               |
Effectif total = 5
Moyenne = 12.0000
Variance = 38.0000
Ecart-type = 6.1644
Min = 2
D1 = 2 en position 1
Q1 = 10 en position 2
Mediane = 11 en position 3
Q2 = 11 en position 3
Q3 = 18 en position 4
D9 = 19 en position 5
Max = 19 
In [147]:
indicateurs(morgane)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              2               |              1               |              1               |
|              10              |              1               |              2               |
|              14              |              2               |              4               |
|              16              |              1               |              5               |
Effectif total = 5
Moyenne = 11.2000
Variance = 24.9600
Ecart-type = 4.9960
Min = 2
D1 = 2 en position 1
Q1 = 10 en position 2
Mediane = 14 en position 3
Q2 = 14 en position 3
Q3 = 14 en position 4
D9 = 16 en position 5
Max = 16 

Le meilleur tireur est Corentin car il a la meilleure moyenne à égalité avec Gavin, mais il est plus régulier que Gavin car son écart interquartile $Q_{3}- Q_{1}$ est plus faible ($0$ pour Corentin et $8$ pour Gavin).