1S 634 Statistiques, Exemples du cours

In [239]:
#import des modules
import matplotlib.pyplot as plt
import numpy as np
import random
%matplotlib inline
In [240]:
##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(valeur, effectif))

#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, cum = False):
    """Retourne un tableau de valeurs et un tableau d'effectifs
    à partir d'une série brute.
    Si ecc à True, retourne aussi le tableau des effectifs cumulés croissants"""
    tab2 = brute[:]
    tab2.sort() #tri
    valeur, effectif = [brute[0]], [1]
    ecc = None
    for e in brute[1:]:
        if e != valeur[-1]:
            valeur.append(e)
            effectif.append(1)
        else:
            effectif[-1] += 1
    if cum:
        ecc = cumul(effectif)
        return valeur, effectif, ecc
    return valeur, effectif
    
    
        
def affiche_tableau(brute=None, valeur=None, effectif=None, croissant=False):
    """Affiche un tableau Valeurs/ Effectifs"""    
    if brute != None:
        if effectif == None and valeur == None:
            valeur, effectif = tab_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, eff, effcumul))
        else:
            print('|{:^40s}|{:^40s}|'.format('Valeur', 'Effectif'))
            for val, eff in zip(valeur, effectif):
                print('|{:^40g}|{:^40g}|'.format(val, eff))
            
            
def diagramme_circulaire(labels, effectif,formatfunction=None):
    # The slices will be ordered and plotted counter-clockwise.
    #plt.clf()
    sizes = effectif
    colors = ['#ECE9E9', '#ACAAAA', '#857E7E', '#848484']
    if not formatfunction:
        plt.pie(sizes,  labels=labels, 
            autopct='%1.1f°', shadow=True, colors=colors,startangle=90)
    else:
        plt.pie(sizes,  labels=labels, 
            autopct=formatfunction, 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', edgecolor = 'black')
    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 nuage_points(valeur, effectif):
    #plt.clf()    
    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.xlim(min(valeur) - 0.1*(max(valeur) - min(valeur)),
             max(valeur) + 0.1*(max(valeur) - min(valeur)))
    plt.grid()
    plt.plot(valeur, effectif, 'ko')
    # Tweak spacing to prevent clipping of ylabel
    plt.subplots_adjust(left=0.15)    
    #plt.show()
    
def polygone_cumule(brute=None, valeur=None, effectif=None, yticks = None):
    
    def polygone_cumule_brute(tab):
        valeur, effectif, ecc = valeur_effectif(tab, cum = True)
        plt.xlabel('Valeurs')
        plt.ylabel('Effectifs Cumulés')
        plt.ylim(min(ecc) - 0.1*(max(ecc) - min(ecc)),
             max(ecc) + 0.1*(max(ecc) - min(ecc)))
        plt.xlim(min(valeur) - 0.1*(max(valeur) - min(valeur)),
             max(valeur) + 0.1*(max(valeur) - min(valeur)))
        if yticks != None:
            ax = plt.gca()
            ax.set_yticks(yticks, minor = True)
        plt.grid(which='both')
        plt.plot(valeur, ecc,'-ko')
    
    if brute == None:
        if effectif != None and valeur != None and len(valeur) == len(effectif):
            polygone_cumule_brute(serie_brute(valeur, effectif))
    elif effectif == None and valeur == None:
        polygone_cumule_brutee(brute)
        
        
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 indicateurs(brute=None,effectif=None,valeur=None):
    
    def indicateurs_brute(tab):
        tab2 = tab[:]
        tab2.sort()
        print('Série triée :')
        valeur, effectif = valeur_effectif(tab2, cum = False)
        affiche_tableau(valeur=valeur, effectif=effectif, croissant=True)
        print('Moyenne = %.3f'%moyenne_effectif(valeur, effectif))
        print('Variance = %.3f'%variance_effectif(valeur, effectif))
        print('Ecart-type = %.3f'%ecart_type_effectif(valeur, effectif))
        print('-'*80)
        print('Min = %s'%min(tab))
        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)
In [241]:
#test de la fonction serie_brute
serie_brute([1,2,3],[4,1,5])
Out[241]:
[1, 1, 1, 1, 2, 3, 3, 3, 3, 3]
In [242]:
#test des fonctions 
tabalea1 = [random.randint(1, 100) for i in range(11)]
tabalea2 = [random.randint(1, 100) for i in range(10)]
effectif3, valeur3 = [random.randint(1, 100) for i in range(10)], [random.randint(1, 100) for i in range(10)] 
for t in [tabalea1, tabalea2]:
    print('Série = ', t)
    indicateurs(brute=t)
    print()
    
print('Valeurs = ', valeur3, 'Effectifs = ', effectif3)
indicateurs(valeur=valeur3, effectif = effectif3)
Série =  [73, 78, 89, 61, 17, 48, 1, 86, 46, 91, 63]
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              1               |              1               |              1               |
|              17              |              1               |              2               |
|              46              |              1               |              3               |
|              48              |              1               |              4               |
|              61              |              1               |              5               |
|              63              |              1               |              6               |
|              73              |              1               |              7               |
|              78              |              1               |              8               |
|              86              |              1               |              9               |
|              89              |              1               |              10              |
|              91              |              1               |              11              |
Moyenne = 59.364
Variance = 786.050
Ecart-type = 28.037
--------------------------------------------------------------------------------
Min = 1
D1 = 17 en position 2
Q1 = 46 en position 3
Mediane = 63 en position 6
Q2 = 63 en position 6
Q3 = 86 en position 9
D9 = 89 en position 10
Max = 91 

Série =  [83, 25, 97, 90, 84, 57, 66, 33, 96, 70]
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              25              |              1               |              1               |
|              33              |              1               |              2               |
|              57              |              1               |              3               |
|              66              |              1               |              4               |
|              70              |              1               |              5               |
|              83              |              1               |              6               |
|              84              |              1               |              7               |
|              90              |              1               |              8               |
|              96              |              1               |              9               |
|              97              |              1               |              10              |
Moyenne = 70.100
Variance = 574.890
Ecart-type = 23.977
--------------------------------------------------------------------------------
Min = 25
D1 = 25 en position 1
Q1 = 57 en position 3
Mediane = 76.5 en position hors-série
Q2 = 70 en position 5
Q3 = 90 en position 8
D9 = 96 en position 9
Max = 97 

Valeurs =  [68, 23, 49, 45, 15, 70, 72, 26, 17, 77] Effectifs =  [51, 14, 30, 28, 39, 29, 1, 97, 45, 88]
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              15              |              39              |              39              |
|              17              |              45              |              84              |
|              23              |              14              |              98              |
|              26              |              97              |             195              |
|              45              |              28              |             223              |
|              49              |              30              |             253              |
|              68              |              51              |             304              |
|              70              |              29              |             333              |
|              72              |              1               |             334              |
|              77              |              88              |             422              |
Moyenne = 45.664
Variance = 588.655
Ecart-type = 24.262
--------------------------------------------------------------------------------
Min = 15
D1 = 17 en position 43
Q1 = 26 en position 106
Mediane = 45.0 en position hors-série
Q2 = 45 en position 211
Q3 = 70 en position 317
D9 = 77 en position 380
Max = 77 

Exemple 1

Dans l'entreprise A, il y a 100 ouvriers et 100 cadres, dans l'entreprise B, il y a 180 ouvriers et 20 cadres.

Dans l'entreprise A, le total des salaires mensuels des ouvriers est égal à 110 000 € et celui des cadres de 200 000 €.

Dans l'entreprise B, le total des salaires mensuels des ouvriers est égal à 207 000 € et celui des cadres est égal à 44 000 €.

  1. Vérifier que le salaire mensuel moyen des ouvriers est plus élevé dans l'entreprise B que dans l'entreprise A, et qu'il en est de même pour les cadres.

  2. Comparer les salaires mensuels moyens de l'ensemble des employés dans l'entreprise A et dans l'entreprise B.

Corrigé

Question 1

Salaire moyen dans l'entreprise A :

  • des ouvriers : $\frac{110000}{100}=1100$
  • des cadres : $\frac{200000}{100}=2000$

Salaire moyen dans l'entreprise B :

  • des ouvriers : $\frac{207000}{180}=1150$
  • des cadres : $\frac{44000}{20}=2200$

Question 2 : Effet de structure.

Exemple 2

Question 1.a

In [243]:
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 [244]:
diagramme_baton(prix, effectif,largeur=50)
In [245]:
diagramme_boite(valeur=prix,effectif=effectif)
In [246]:
#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              |
Moyenne = 1206.061
Variance = 41781.451
Ecart-type = 204.405
--------------------------------------------------------------------------------
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 : effet de la modification d'une valeur extrême

On change le prix maximum de 1500 par 2000

In [247]:
prix[-1] =  2000
In [248]:
#indicateurs de la nouvelle 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              |
|             2000             |             150              |             990              |
Moyenne = 1281.818
Variance = 118457.300
Ecart-type = 344.176
--------------------------------------------------------------------------------
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 = 2000 en position 891
Max = 2000 

On remet le prix maximum de 1500 et on change le prix minimum de 900 par 500

In [249]:
prix[-1], prix[0]  =  1500, 500
In [250]:
#indicateurs de la nouvelle 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              |
|             1500             |             150              |             990              |
Moyenne = 1145.455
Variance = 99449.036
Ecart-type = 315.355
--------------------------------------------------------------------------------
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 = 1500 en position 891
Max = 1500 

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 moyenne et de l'écart-type

Question 2

In [251]:
diagramme_circulaire(['0,98 L', '0,99 L', '1 L', '1,1 L'], [45, 22, 27, 6])
In [252]:
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 [253]:
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              |
Moyenne = 0.995
Variance = 0.001
Ecart-type = 0.028
--------------------------------------------------------------------------------
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 

Exemple 4

Groupe A

In [254]:
#GroupeA
noteA = [5,8,9,11,14,15]
effectifA = [2,2,1,1,4,2]
In [255]:
indicateurs(valeur=noteA, effectif=effectifA)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              5               |              2               |              2               |
|              8               |              2               |              4               |
|              9               |              1               |              5               |
|              11              |              1               |              6               |
|              14              |              4               |              10              |
|              15              |              2               |              12              |
Moyenne = 11.000
Variance = 13.500
Ecart-type = 3.674
--------------------------------------------------------------------------------
Min = 5
D1 = 5 en position 2
Q1 = 8 en position 3
Mediane = 12.5 en position hors-série
Q2 = 11 en position 6
Q3 = 14 en position 9
D9 = 15 en position 11
Max = 15 
In [256]:
diagramme_baton(valeur=noteA, effectif=effectifA,largeur=1)

Groupe B

In [257]:
#serie brute de notes
serieB = [9,9,10,10,11,11,11,11,12,12,13,13]
In [258]:
noteB, effectifB = valeur_effectif(serieB, cum = False)
diagramme_baton(valeur=noteB, effectif = effectifB)
In [259]:
indicateurs(brute=serieB)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              9               |              2               |              2               |
|              10              |              2               |              4               |
|              11              |              4               |              8               |
|              12              |              2               |              10              |
|              13              |              2               |              12              |
Moyenne = 11.000
Variance = 1.667
Ecart-type = 1.291
--------------------------------------------------------------------------------
Min = 9
D1 = 9 en position 2
Q1 = 10 en position 3
Mediane = 11.0 en position hors-série
Q2 = 11 en position 6
Q3 = 12 en position 9
D9 = 13 en position 11
Max = 13 
In [260]:
plt.subplot(2,1,1)
diagramme_boite(valeur=noteA, effectif=effectifA,xmin=0,xmax=20)
plt.subplot(2,1,2)
noteB,effectifB = valeur_effectif(serieB)
diagramme_boite(valeur=noteB, effectif=effectifB,xmin=0,xmax=20)

Exemple 5

In [261]:
serieA = [21, 19, 17, 11, 9, 16, 8, 6, 12]
In [262]:
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               |
Moyenne = 13.222
Variance = 24.395
Ecart-type = 4.939
--------------------------------------------------------------------------------
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 [263]:
diagramme_boite(brute=serieA)
In [264]:
serieB = [2,9,7,2,9,8,8,6,2,8,6,8]
In [265]:
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              |
Moyenne = 6.250
Variance = 6.854
Ecart-type = 2.618
--------------------------------------------------------------------------------
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 [266]:
diagramme_boite(brute=serieB)

Exemple 6

Question 1

In [267]:
note5 = [3,5,6,7,8,9,10,11,12,13,14,17,18]
effectif5 = [1,2,1,4,3,5,5,4,2,1,2,2,1]
In [268]:
indicateurs(valeur=note5, effectif=effectif5)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              3               |              1               |              1               |
|              5               |              2               |              3               |
|              6               |              1               |              4               |
|              7               |              4               |              8               |
|              8               |              3               |              11              |
|              9               |              5               |              16              |
|              10              |              5               |              21              |
|              11              |              4               |              25              |
|              12              |              2               |              27              |
|              13              |              1               |              28              |
|              14              |              2               |              30              |
|              17              |              2               |              32              |
|              18              |              1               |              33              |
Moyenne = 9.909
Variance = 11.598
Ecart-type = 3.406
--------------------------------------------------------------------------------
Min = 3
D1 = 6 en position 4
Q1 = 8 en position 9
Mediane = 10 en position 17
Q2 = 10 en position 17
Q3 = 11 en position 25
D9 = 14 en position 30
Max = 18 
In [269]:
diagramme_baton(valeur=note5, effectif=effectif5)
In [270]:
diagramme_boite(valeur=note5, effectif=effectif5)

On change les valeurs extremes

In [271]:
note5bis = note5[:]
In [272]:
note5bis[0], note5bis[-1] = 0, 20
In [273]:
indicateurs(valeur=note5bis, effectif=effectif5)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              0               |              1               |              1               |
|              5               |              2               |              3               |
|              6               |              1               |              4               |
|              7               |              4               |              8               |
|              8               |              3               |              11              |
|              9               |              5               |              16              |
|              10              |              5               |              21              |
|              11              |              4               |              25              |
|              12              |              2               |              27              |
|              13              |              1               |              28              |
|              14              |              2               |              30              |
|              17              |              2               |              32              |
|              20              |              1               |              33              |
Moyenne = 9.879
Variance = 14.228
Ecart-type = 3.772
--------------------------------------------------------------------------------
Min = 0
D1 = 6 en position 4
Q1 = 8 en position 9
Mediane = 10 en position 17
Q2 = 10 en position 17
Q3 = 11 en position 25
D9 = 14 en position 30
Max = 20 

La moyenne et la variance ont été modifiées contrairement à la médiane et à l'écart-interquartile qui sont moins sensibles aux valeurs extremes

Question 2
In [274]:
serie52 = [2, 4] + [1000]*6 + [50000]*2
In [275]:
indicateurs(brute=serie52)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              2               |              1               |              1               |
|              4               |              1               |              2               |
|             1000             |              6               |              8               |
|            50000             |              2               |              10              |
Moyenne = 10600.600
Variance = 388227281.640
Ecart-type = 19703.484
--------------------------------------------------------------------------------
Min = 2
D1 = 2 en position 1
Q1 = 1000 en position 3
Mediane = 1000.0 en position hors-série
Q2 = 1000 en position 5
Q3 = 1000 en position 8
D9 = 50000 en position 9
Max = 50000 
In [276]:
valeur52, effectif52 = valeur_effectif(serie52, cum = False)
diagramme_baton(valeur=valeur52, effectif=effectif52)

Le couple (moyenne, ecart-type) est mieux adapté pour représenter la série car le couple (médiane, écart-interquartile) est (1000, 0) puisqu'il y a beaucoup de valeurs identiques.

Ceci dit, on peut aussi remarquer que l'écart-type caractérise mieux la dispersion de la série que l'écart-interquartile et que la médiane représente mieux la tendance centrale que la moyenne car aucune valeur de la série n'est proche de la moyenne. On pourrait donc choisir le couple (médiane, écart-type) pour caractériser la série.

Exemple 8

In [277]:
 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 [278]:
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              |
Moyenne = 66.476
Variance = 61.011
Ecart-type = 7.811
--------------------------------------------------------------------------------
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 [279]:
valeur6, effectif6 = valeur_effectif(serie6)
diagramme_boite(valeur=valeur6, effectif=effectif6)

Exemple 8

In [280]:
valeur8 = [i for i in range(0, 14)]
effectif8 = [1,2,3,6,8,10,15,24,16,13,12,11,9,3]
In [281]:
indicateurs(valeur = valeur8, effectif = effectif8)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|              0               |              1               |              1               |
|              1               |              2               |              3               |
|              2               |              3               |              6               |
|              3               |              6               |              12              |
|              4               |              8               |              20              |
|              5               |              10              |              30              |
|              6               |              15              |              45              |
|              7               |              24              |              69              |
|              8               |              16              |              85              |
|              9               |              13              |              98              |
|              10              |              12              |             110              |
|              11              |              11              |             121              |
|              12              |              9               |             130              |
|              13              |              3               |             133              |
Moyenne = 7.511
Variance = 8.039
Ecart-type = 2.835
--------------------------------------------------------------------------------
Min = 0
D1 = 4 en position 14
Q1 = 6 en position 34
Mediane = 7 en position 67
Q2 = 7 en position 67
Q3 = 10 en position 100
D9 = 11 en position 120
Max = 13 
In [282]:
diagramme_baton(valeur=valeur8, effectif=effectif8)
In [283]:
diagramme_boite(serie_brute(valeur=valeur8, effectif=effectif8))

Exemple 9 Miss France

In [284]:
valeur9 = [1.7, 1.71,1.72, 1.73, 1.74, 1.75, 1.76, 1.77, 1.8, 1.82, 1.83]
effectif9 = [4, 4, 2, 3, 3, 3, 6, 3, 3, 1, 1]
In [285]:
indicateurs(valeur = valeur9, effectif = effectif9)
Série triée :
|            Valeur            |           Effectif           |  Effectif cumulé croissant   |
|             1.7              |              4               |              4               |
|             1.71             |              4               |              8               |
|             1.72             |              2               |              10              |
|             1.73             |              3               |              13              |
|             1.74             |              3               |              16              |
|             1.75             |              3               |              19              |
|             1.76             |              6               |              25              |
|             1.77             |              3               |              28              |
|             1.8              |              3               |              31              |
|             1.82             |              1               |              32              |
|             1.83             |              1               |              33              |
Moyenne = 1.747
Variance = 0.001
Ecart-type = 0.035
--------------------------------------------------------------------------------
Min = 1.7
D1 = 1.7 en position 4
Q1 = 1.72 en position 9
Mediane = 1.75 en position 17
Q2 = 1.75 en position 17
Q3 = 1.76 en position 25
D9 = 1.8 en position 30
Max = 1.83 
In [291]:
diagramme_baton(valeur=valeur9, effectif=effectif9, largeur = 0.005)
In [287]:
diagramme_boite(serie_brute(valeur=valeur9, effectif=effectif9))