Probabilités et statistique avec Excel Nicolas MARIE
Table des matières I Fonctions de base d Excel............................. 2 I.A Fonctions graphiques............................ 2 I.B Fonctions de tri et de comptage...................... 3 I.C Calcul d indicateurs usuels en statistique descriptive........... 3 II Lois de probabilités usuelles............................ 3 II.A Lois discrètes................................ 3 II.B Lois continues................................ 5 II.C La fonction RAND............................. 7 III Régression linéaire univariée............................ 7 IV Introduction à Visual Basic pour Excel...................... 8 IV.A Présentation de l environnement de développement........... 8 IV.B Variables, procédures et fonctions..................... 9 IV.C Conditions et boucles............................ 10 IV.D MessageBox et InputBox.......................... 10 IV.E Excel et Visual Basic............................ 11 1
Nicolas MARIE 2 I Fonctions de base d Excel Cette section présente quelques fonctions graphiques, les fonctions de tri et comptage, ainsi que le calcul d indicateurs usuels en statistique descriptive. I.A Fonctions graphiques Représenter une série de la forme y = f(x) Voici les étapes à suivre : 1. Dans une feuille de calcul, sélectionner la (les) série(s) à représenter. Ne pas sélectionner la série des valeurs de la variable. 2. Cliquer le menu déroulant Insert, puis cliquer sur Chart... 3. La première étape du Chart Wizzard consiste à sélectionner le type de représentation souhaitée sur le premier onglet : Pour une série discrète, plutôt choisir un diagramme en bâtons ou un ligne brisée sur laquelle les points apparaissent. Pour une série continue discrétisée, plutôt choisir une ligne brisée sur laquelle les points n apparaissent pas. Enfin, cliquer sur le bouton Next >. 4. A l étape suivante, cliquer que l onglet Series afin de modifier le nom des séries sélectionnées si nécessaire. Ensuite, sélectionner la série des valeurs de la variable en cliquant sur le bouton à droite de la TextBox précédée de l inscription "Category (X) axis labels". 5. La dernière étape consiste à personnaliser le graphique obtenu. Essentiellement, inscrire le titre du graphique et le nom des axes (premier onglet). 6. Finalement, choisir l emplacement du graphique : Sur un nouvel onglet du classeur, en précisant son nom. Sur une feuille de calcul existante. Représenter un nuage de points Voici les étapes à suivre : 1. Dans une feuille de calcul, sélectionner les deux séries statistiques qui vont former le nuage de point. 2. Cliquer sur le menu déroulant Insert, puis cliquer sur Chart... 3. La première étape du Chart Wizzard consiste à sélectionner le type de représentation souhaitée sur le premier onglet ; en géneral Scatter. Enfin, cliquer sur le bouton Next >. 4. A l étape suivante, cliquer que l onglet Series afin de donner un nom à la série bivariée. Taper ce dernier dans la TextBox précédée de l inscription "Name :" 5. La dernière étape consiste à personnaliser le graphique obtenu. Essentiellement, inscrire le titre du graphique et le nom des axes (premier onglet). 6. Finalement, choisir l emplacement du graphique : Sur un nouvel onglet du classeur, en précisant son nom. Sur une feuille de calcul existante.
Nicolas MARIE 3 I.B Fonctions de tri et de comptage Trier par ordre croissant/décroissant des données numériques, ou compter les données d une série (quantitative ou qualitative) selon un critère spécifique, sont deux opérations souvent nécessaires à l analyse de ces dernières. Trier les données Voici les étapes à suivre : 1. Dans une feuille de calcul, sélectionner la plage de données à trier. 2. Cliquer sur le menu déroulant Data, puis cliquer sur Sort... 3. Une première fenêtre s affiche. Choisir si le tri doit s appliquer à l ensemble des données de la feuille de calcul, ou seulement aux données de la plage sélectionnée. En général, seulement les données sélectionnées. Enfin, cliquer le bouton Sort. 4. Une fenêtre intitulée "Sort" s affiche. Dans la zone "Sort by", choisir l option Ascending (croissant) ou Descending (décroissant). Finalement, cliquer sur le bouton OK. Compter les données selon un critère Dans une cellule, entrer I.C = COUNTIF(plage de données ; critère) Calcul d indicateurs usuels en statistique descriptive Voici la liste des fonctions les plus courantes : Fonction Nombre de plages Indicateur Nature AVERAGE 1 Moyenne Position MEDIAN 1 Médiane Position MIN 1 Minimum Position MAX 1 Maximum Position VAR 1 Variance Dispersion STDEV 1 Ecart-type Dispersion KURT 1 Kurtosis Aplatissement COVAR 2 Covariance Dépendance linéaire CORREL 2 Coefficient de Pearson Dépendance linéaire II Lois de probabilités usuelles Soient (Ω, A, P) un espace probabilisé, et X : Ω R une variable aléatoire. Cette section présente les fonctions permettant de calculer la loi de probabilité de X dans les cas usuels. II.A Loi binomiale Lois discrètes Soient X B(n, p) avec n N et p ]0, 1[, ainsi que k {0,..., n} choisi arbitrairement.
Nicolas MARIE 4 Pour calculer P(X = k), dans une cellule, entrer la commande : = BINOMDIST(k ;n ;p ;FALSE) La valeur FALSE du dernier paramètre indique à Excel de retourner P(X = k), et non la valeur de la fonction de répartition de X en k. Pour calculer P(X k), dans une cellule, entrer la commande : = BINOMDIST(k ;n ;p ;TRUE) Application. Avec n := 10 et p := 0.10, représentation graphique de la loi de probabilité et de la fonction de répartition de X via les fonctions graphiques présentées à la section précédente : Loi et FDR de B(0,10;10) 1,2 1 0,8 0,6 Loi FDR 0,4 0,2 0 0 1 2 3 4 5 6 7 8 9 10 k Loi hyper-géométrique Soient X H(n, m, p) avec n N et m, p {1,..., n 1}, ainsi que k {0,..., m} choisi arbitrairement. Pour calculer P(X = k), dans une cellule, entrer la commande : = HYPGEODIST(k ;p ;m ;n) Pour calculer P(X k + 1) (k < m), utiliser la relation de récurrence : P(X k + 1) = P(X = k + 1) + P(X k). Exercice. Soit Y B(10, 0.10). Tracer la fonction de répartition de Y, ainsi que celle de X lorsque n := 100 et p = m := 10. Expliquer pourquoi les graphiques sont identiques. Loi de Poisson Soient X P(λ) avec λ N, ainsi que k N choisi arbitrairement.
Nicolas MARIE 5 Pour calculer P(X = k), dans une cellule, entrer la commande : = POISSON(k ;lambda ;FALSE) Le valeur FALSE du dernier paramètre indique à Excel de retourner P(X = k), et non la valeur de la fonction de répartition de X en k. Pour calculer P(X k), dans une cellule, entrer la commande : = POISSON(k ;n ;p ;TRUE) Application. Avec λ := 6, représentation graphique de la loi de probabilité et de la fonction de répartition de X via les fonctions graphiques présentées à la section précédente : Loi et FDR de P(6) 1,2 1 0,8 0,6 Loi FDR 0,4 0,2 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 k II.B Lois continues Loi exponentielle Soient X E(λ) avec λ ]0, [, ainsi que t R + choisi arbitrairement. Pour calculer P X (dt)/dt, dans une cellule, entrer la commande : = EXPONDIST(t ;lambda ;FALSE) Le valeur FALSE du dernier paramètre indique à Excel de retourner P X (dt)/dt, et non la valeur de la fonction de répartition de X en t. Pour calculer P(X t), dans une cellule, entrer la commande : = EXPONDIST(t ;lambda ;TRUE) Application. Avec λ := 5, représentation graphique de la densité de probabilité et de la fonction de répartition de X via les fonctions graphiques présentées à la section précédente :
Nicolas MARIE 6 Densté et FDR de E(5) 6 5 4 3 Densité FDR 2 1 0 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 2 t Loi normale Soient X N (m, σ 2 ) avec m R et σ > 0, ainsi que t R choisi arbitrairement. Pour calculer P X (dt)/dt, dans une cellule, entrer la commande : = NORMDIST(t ;m ;sigma ;FALSE) Le valeur FALSE du dernier paramètre indique à Excel de retourner P X (dt)/dt, et non la valeur de la fonction de répartition de X en t. Pour calculer P(X t), dans une cellule, entrer la commande : = NORMDIST(t ;m ;sigma ;TRUE) Application. Avec m := 6 et σ := 2, représentation graphique de la loi de probabilité et de la fonction de répartition de X via les fonctions graphiques présentées à la section précédente : Densité et FDR de N(6,4) 1,2 1 0,8 0,6 Densité FDR 0,4 0,2 0 2 2,25 2,5 2,75 3 3,25 3,5 3,75 4 4,25 4,5 4,75 5 5,25 5,5 5,75 6 6,25 6,5 6,75 7 7,25 7,5 7,75 8 8,25 8,5 8,75 9 9,25 9,5 9,75 10 t
Nicolas MARIE 7 II.C La fonction RAND Dans une cellule, la fonction RAND retourne un réel tiré entre 0 et 1 selon une loi uniforme. De manière générale, pour a, b R tels que a < b, afin de tirer un réel entre a et b selon une loi uniforme, entrer la commande suivante dans une cellule : = RAND()*(b - a) + a Remarque. Cette fonction est essentielle, car à partir de la loi uniforme sur [0, 1], il est possible de simuler pratiquement toutes les lois usuelles. III Régression linéaire univariée Voici les étapes à suivre : 1. Représenter le nuage de points à ajuster. 2. Effectuer un clique droit sur l un des points du nuage, puis sélectionner Add Trendline dans le menu contextuel. La fenêtre suivante apparait : 3. Choisir le type de régression : Linéaire. Il convient de choisir cette option lorsque les variables statistiques étudiées x et y semblent liées par une relation de la forme y = ax + b avec a, b R. Excel estime alors les paramètres a et b de la droite de régression par la méthode des moindres carrés ordinaire. Exponentielle. Il convient de choisir cette option lorsque les variables statistiques étudiées x et y semblent liées par une relation de la forme y = e ax+b avec a, b R. Cela revient à appliquer la fonction ln aux observations de la variable y, puis à effectuer la régression linéaire de ln(y) sur x, et enfin à appliquer la fonction exp au modèle obtenu. La fonction ln est l une des transformations de Box-Cox. D autres modèles sont proposés, mais ne seront pas détaillés dans ce cours.
Nicolas MARIE 8 4. Choisir le nom de la courbe de tendance. 5. Choisir l horizon de prévision "dans le passé" et "dans l avenir". Souvent, seul l horizon de prévision "dans l avenir" doit être modifié. 6. Cocher la case intitulée "Display Equation on chart" pour faire apparaître l équation du modèle de régression sur le graphique (conseillé). 7. Cocher la case intitulée "Display R-squared value on chart" afin de faire apparaître la valeur du coefficient de détermination R 2 pour le modèle choisi (conseillé). Le coefficient de détermination est un réel compris entre 0 et 1, évaluant la qualité du modèle ; plus il est proche de 1, meilleure est cette dernière. IV Introduction à Visual Basic pour Excel Dans cette section, les bases du langage Visual Basic pour Excel sont présentées. IV.A Présentation de l environnement de développement Avant tout, préparer l interface d Excel en affichant les barres d outils Visual Basic : 1. Faire un clique droit dans la zone où sont affichées les barres d outils (en haut). 2. Dans le menu contextuel, cliquer sur Customize... 3. Cocher les cases intitulées "Visual Basic" et "Control Toolbox", puis cliquer sur le bouton OK. Afin d accéder à l environnement de développement Visual Basic, cliquer sur le bouton Visual Basic Editor dans la barre d outils Visual Basic. La fenêtre suivante s affiche : La fenêtre en haut à gauche contient tous les composants du classeur sur lesquels il est possible d agir : les feuilles Excel, les boutons, etc. La fenêtre en bas à gauche contient, pour le composant sélectionné, l ensemble des caractéristiques sur lesquelles il est possible d agir. Finalement,
Nicolas MARIE 9 la grande fenêtre de droite contient le code Visual Basic. Remarque. Un autre moyen d accéder à l environnement Visual Basic est de placer un composant de la barre d outils "Control Toobox" sur une feuille Excel, le plus souvent un bouton, puis de cliquer deux fois dessus. IV.B Procédures Variables, procédures et fonctions En Visual Basic pour Excel, les procédures n ont pas à être déclaré en début de programme, comme en Pascal par exemple. Une procédure peut être publique (i.e. utilisable dans toutes les autres procédures et fonctions) ou privée. Le code d une procédure débutera alors par ou Public Sub nom de la procédure(paramètre 1 As type 1, paramètre 2 As type 2,...) Private Sub nom de la procédure(paramètre 1 As type 1, paramètre 2 As type 2,...) Dans le deux cas, le code d une procédure se terminera par End Sub. Fonctions De même que les procédures, les fonctions n ont pas à être déclaré en début de programme. Le code d une fonction débutera par Function nom de la fonction(paramètre 1 As type 1, paramètre 2 As type 2,...) et se terminera par End Function. La différence essentielle entre une procédure et une fonction est qu il est possible de poser x = fonc p1,p2,... où, x, p1, p2, etc. sont des variables déclarées au préalable, et fonc est une fonction elle-même codée au préalable. Déclaration de variables dans une procédure ou une fonction Dans chaque procédure ou fonction, outre les paramètres qu elle prend en entrée, il est possible de déclarer puis d utiliser des variables. Au tout début de la procédure ou de la fonction, entrer : Dim nom de la variable As type de la variable Il existe un grand nombre de types en Visual Basic, dont les principaux sont les suivants : Type Char String Boolean Date Integer Double Description Caractère unique Chaîne de caractères Ne prend que deux valeurs : TRUE et FALSE Date au format jj/mm/aaaa Entier relatif Nombre réel
Nicolas MARIE 10 IV.C Conditions Conditions et boucles Dans une procédure ou une fonction, une structure conditionnelle s écrit comme suit : Boucles If condition 1 then algorithme 1 ElseIf condition 2 then algorithme 2 Else algorithme 3 End If Dans une procédure ou une fonction, il existe trois types de boucles. Les deux suivants sont essentiels : IV.D 1. Boucle For. Pour répéter un algorithme n N fois lorsque n est connu, utiliser une boucle for : For i = 1 to n algorithme dépendant de i Next où, i est un compteur qui a été déclaré en début de procédure ou de fonction. 2. Boucle Do While. Pour répéter un algorithme jusqu à ce qu une condition donnée soit satisfaite, utiliser une boucle Do While : MessageBox MessageBox et InputBox Do While condition d arrêt algorithme Loop Pour afficher à l écran un message précis, entrer le code suivant dans une procédure ou une fonction : MsgBox("message", "titre") InputBox Pour afficher à l écran un message invitant l utilisateur à entrer une valeur, entrer le code suivant dans une procédure ou une fonction : x = InputBox("message", "titre") où, x est une variable déclarée au préalable, qui à ce moment prend la valeur entrée par l utilisateur.
Nicolas MARIE 11 IV.E Excel et Visual Basic Cette sous-section présente plusieurs exemples d utilisation de Visual Basic dans l automatisation de tâches sous Excel. Dans toute cette section, i, j et k désignent trois compteurs initialisés à 1. Comment agir sur une cellule? Afin d agir sur la cellule à l intersection de la ligne i et de la colonne j sur la feuille k, y faire référence par : Sheets(k).Cells(i,j) Trois exemples : Afin d assigner la valeur 4 à la cellule B10 sur la feuille 2, entrer : Sheets(2).Cells(10,2) = 4 Afin de déclarer une variable x, puis lui faire prendre la valeur de la cellule B10 de la feuille 2, entrer : x = Sheets(2).Cells(10,2) Attention, la variable x doit être de même type que le contenu de B10. Afin de copier, couper ou supprimer la valeur inscrite dans la cellule B10 de la feuille 2, entrer respectivement : Sheets(2).Cells(10,2).Copy Sheets(2).Cells(10,2).Cut Sheets(2).Cells(10,2).Delete Comment agir sur un groupe de cellules? Par exemple, afin de copier, couper ou supprimer le tableau allant de la cellule A1 à la cellule D10 sur la feuille k, entrer respectivement : Worksheets(k).Range("A1 :D10").Copy Worksheets(k).Range("A1 :D10").Cut Worksheets(k).Range("A1 :D10").Delete Ensuite, afin de coller le groupe de cellules sur le tableau allant de la cellule B2 à la cellule E11 de la feuille j, entrer : Worksheets(j).Paste Destination := Worksheets(j).Range("B2 :E11") Exemple de programme Visual Basic pour Excel Fonction retournant la moyenne d une plage de données numériques entrées par l utilisateur : Function AV(DebutSerie As Integer, FinSerie As Integer, Colonne As Integer, Feuille As Integer) Dim AV As double Dim i As Integer AV = 0 For i = DebutSerie To FinSerie AV = AV + Sheets(Feuille).Cells(i,Colonne) Next AV = AV / (FinSerie - DebutSerie + 1) End Function
Nicolas MARIE 12 Pour que l utilisateur puisse calculer la moyenne de la plage de données en entrant les paramètres lui-même, placer un bouton (barre d outils "Control Toolbox") sur une feuille, puis cliquer deux fois dessus et entrer le code suivant : Private Sub CommandButton1_Click() Dim DebutSerie, FinSerie, Colonne, Feuille As Integer Dim M As Double DebutSerie = InputBox("Entrer le rang de la première cellule :","Début de série") FinSerie = InputBox("Entrer le rang de la dernière cellule :","Fin de série") Colonne = InputBox("Entrer le numéro de colonne :","Colonne") Feuille = InputBox("Entrer le numéro de feuille :","Feuille") M = AV DebutSerie, FinSerie, Colonne, Feuille MsgBox "La moyenne de la série vaut : "& M End Sub Notez que pour faire apparaître la valeur prise par M dans une MessageBox, il convient d utiliser &. Comment utiliser les fonctions de calcul dans un programme Visual Basic? Pour cela, entrer : WorksheetFunction.nom de la fonction Par exemple, afin d assigner la valeur P(X = 6) avec X P(10) à une variable numérique x déclarée en début de procédure ou de fonction : x = WorksheetFunction.Poisson(6,10,False) Comment utiliser les fonctions graphiques dans un programme Visual Basic? Voici les étapes à suivre : 1. Dans une procédure ou une fonction, créer un graphique et lui donner un nom : 2. Préciser les séries à représenter : Set nom du graphique = Charts.Add nom du graphique.setsourcedata Source := Sheets(numéro de feuille).range("plage de données"), PlotBy := xlcolumn La variable PlotBy peut prendre deux valeurs : xlcolumn si les séries sont rangées en colonnes. C est en général le cas. xlrows si les séries sont rangées en lignes. 3. Préciser le type de graphique : nom du graphique.charttype = type de graphique Par exemple, pour représenter la série par une ligne brisée, choisir ChartType = xlline. Pour les autres types de graphiques, se référer à l aide de Visual Basic pour Excel.
Nicolas MARIE 13 4. Choisir l emplacement du graphique : nom du graphique.location Where := xllocationasnewsheet La variable Where peut prendre deux valeurs : xllocationasnewsheet pour faire apparaître le graphique sur une nouvelle feuille de calcul. xllocationasobject en ajoutant Name := "nom de la feuille" pour faire apparaître le graphique sur une feuille de calcul existante, en précisant son nom. 5. Préciser les noms des axes : nom du graphique.axes(xlcategory, xlprimary).hastitle = True nom du graphique.axes(xlcategory, xlprimary).axistitle.characters.text = "nom de l axe" nom du graphique.axes(xlvalue, xlprimary).hastitle = True nom du graphique.axes(xlvalue, xlprimary).axistitle.characters.text = "nom de l axe" 6. Préciser le titre du graphique : nom du graphique.hastitle = True nom du graphique.charttitle.characters.text = "titre du graphique" Exemple. Il s agit de représenter sous la forme de lignes brisées, deux séries statistiques dont les valeurs sont contenues dans les dix premières cellules des deux premières colonnes de la seconde feuille de calcul du classeur. Le graphique s appellera "Graphique du cours" et apparaîtra sur la même feuille de calcul que les données. Pour cela, placer un bouton sur la seconde feuille de calcul, puis y associer le code suivant : Private Sub CommandButton1_Click() Application.ScreenUpdating = False Set GR = Charts.Add With GR.SetSourceData Source := Sheets("Sheet2").Range("A1 :B10"), PlotBy := xlcolumn.charttype = xlline.location Where := xllocationasobject, Name := "Sheet1".HasTitle = True.ChartTitle.Characters.Text = "Graphique du cours" End With Application.ScreenUpdating = True End Sub Le mot clef With permet de ne pas écrire à chaque fois le nom du graphique.
Bibliographie [1] J-Y. Ouvrard. Probabilités 1, CAPES et Agrégation. Cassini, 1998. [2] Y. Dodge. Premiers pas en statistiques. Springer, 2005. [3] A. Monfort. Cours de statistique mathématique. Economica, 1997. [4] P-A. Cornillon et E. Matzner-Lober. Régression, théorie et applications. Springer, 2002. [5] R. Davidson et J.G. MacKinnon. Estimation and inference in econometrics. Oxford University Press, 1993. [6] Dretzke et Goulet. Statistiques avec Microsoft Excel. Goulet, 2007. [7] M. Dodge et C. Stinson. Microsoft Excel 2000 au Quotidien. Microsoft Press, 1999. 14