Livre complet sur les statistiques et le logiciel r
Livre complet sur les statistiques et le logiciel r
Chapitre A
Présentation du logiciel R
Origines
Le logiciel R est un logiciel de statistique créé par Ross Ihaka & Robert Gentleman .
Il est à la fois un langage informatique et un environnement de travail : les commandes sont exécutées grâce à des instructions codées dans un langage relativement simple, les résultats sont affichés sous forme de texte et les graphiques sont visualisés directement dans une fenêtre qui leur est propre. C’est un clone du logiciel S-plus qui est fondé sur le langage de programmation orienté objet S, développé par AT&T Bell Laboratories en 1988 .
Ce logiciel sert à manipuler des données, à tracer des graphiques et à faire des analyses statistiques sur ces données.
Pourquoi utiliser R ?
Tout d’abord R est un logiciel gratuit et à code source ouvert (open- source ). Il fonctionne sous UNIX (et Linux), Microsoft Windows et Mac OS. C’est donc un logiciel multi-plates-formes. Il est développé dans la mouvance des logiciels libres par une communauté sans cesse plus vaste de bénévoles motivés. Tout le monde peut d’ailleurs contribuer à son amélioration en y intégrant de nouvelles fonctionnalités ou méthodes d’analyse non encore implémentées. Cela en fait donc un logiciel en rapide et constante évolution.
C’est aussi un outil très puissant et très complet, particulièrement bien adapté pour la mise en œuvre informatique de méthodes statistiques. Il est plus difficile d’accès que certains autres logiciels du marché (comme SPSS ou Minitab par exemple), car il n’est pas conçu pour ˆetre utilisé à l’aide de « clics » de souris dans des menus. L’avantage en est toutefois double :
–l’approche est pédagogique puisqu’il faut maîtriser les méthodes statistiques pour parvenir à les mettre en œuvre ;
–l’outil est très efficace lorsque l’on domine le langage R puisque l’on de- vient alors capable de créer ses propres outils, ce qui permet ainsi d’opérer des analyses très sophistiquées sur les données.
Le logiciel R est particulièrement performant pour la manipulation de don- nées, le calcul et l’affichage de graphiques. Il possède, entre autres choses :
–un système de documentation intégré très bien conçu (en anglais) ;
–des procédures efficaces de traitement des données et des capacités de stockage de ces données ;
–une suite d’opérateurs pour des calculs sur des tableaux et en particulier sur des matrices ;
–une vaste et cohérente collection de procédures statistiques pour l’analyse de données ;
–des capacités graphiques évoluées ;
–un langage de programmation simple et efficace intégrant les conditions, les boucles, la récursivité, et des possibilités d’entrée-sortie.
R est un logiciel dans lequel de nombreuses techniques statistiques modernes et classiques ont été implémentées. Les méthodes les plus courantes permettant de réaliser une analyse statistique telles que :
–statistique descriptive ;
–tests d’hypothèses ;
–analyse de la variance ;
–méthodes de régression linéaire (simple et multiple) ;
–etc.
sont enchˆassées directement dans le cœur du système. Notez également que la plupart des méthodes avancées de statistique sont aussi disponibles au travers de modules externes appelés packages. Ceux-ci sont faciles à installer directe- ment à partir d’un menu du logiciel. Ils sont tous regroupés sur le site inter- net du Comprehensive R Archive Network (CRAN) sur lequel vous pouvez les consulter. Ce site fournit aussi, pour certains grands domaines d’étude, une liste commentée des packages associés à ces thèmes (appelée Task View ), ce qui facilite ainsi la recherche d’une méthode statistique particulière. Par ailleurs, une documentation détaillée en anglais de chaque package est disponible sur le CRAN.
Il est par ailleurs utile de noter que les méthodes statistiques les plus ré- centes y sont régulièrement ajoutées par la communauté statistique elle-mˆeme.
Une des grandes forces de R réside dans ses capacités, bien supérieures
à celles des autres logiciels courants du marché, à combiner un langage de programmation avec la possibilité de réaliser des graphiques de qualité. Les graphiques usuels s’obtiennent aisément au moyen de fonctions prédéfinies. Ces dernières possèdent de très nombreux paramètres permettant par exemple d’ajouter des titres, des légendes, des couleurs, etc. Mais il est également pos- sible d’effectuer des graphiques plus sophistiqués permettant de représenter des données complexes telles que des courbes de surface ou de niveau, des volumes affichés avec un effet 3D, des courbes de densité, et bien d’autres choses encore. Il vous est également possible d’y ajouter des formules mathématiques. Vous pouvez aussi agencer ou superposer plusieurs graphiques sur une mˆeme fenˆetre, et utiliser de nombreuses palettes de couleur.
Vous pouvez obtenir une démonstration des possibilités graphiques de R en tapant successivement les commandes suivantes :
demo(image) example(contour) demo(graphics) demo(persp) demo(plotmath) demo(Hershey)
require("lattice") # Charge le package que vous devez avoir
# préalablement installé en passant par le
# menu Packages/Installer le(s) package(s).
demo(lattice) example(wireframe)
require("rgl") # Même remarque que ci-dessus.
demo(rgl) # Possibilité d’interaction avec la souris. example(persp3d)
La figure ci-dessous présente quelques-uns de ces graphiques.
Figure A.1 – Quelques possibilités graphiques offertes par R.
L’interface graphique de R (c’est-à-dire l’ensemble de ses menus) est très limitée, voire inexistante sur certaines plates-formes, en comparaison des autres logiciels standards. Cette minimalité peut dérouter les novices. Toutefois, nous pouvons nuancer cet inconvénient au travers des points suivants :
–cela offre l’avantage pédagogique d’inciter l’utilisateur à bien maîtriser la procédure statistique qu’il compte appliquer ;
–il existe des outils additionnels qui permettent d’étendre l’interface graphique.
Nous présentons dans la prochaine section le package Rcmdr, à installer via le menu Packages, qui permet d’effectuer des analyses graphiques et statistiques usuelles au moyen d’une interface plus conviviale comprenant des menus dé- roulants. Par ailleurs, les instructions R permettant de réaliser l’analyse choisie dans les menus de RCommander s’affichent dans une portion de fenˆetre dédiée. Cela peut par exemple ˆetre utile si l’on ne connaît pas (ou que l’on a oublié) une instruction R nécessaire à la réalisation d’une tˆache particulière.
Sommaire
Avant-propos ix
Liste des figures xxix
Liste des tableaux xxxiii
Notations mathématiques xxxv
A Présentation du logiciel R 1
A.1 Présentation du logiciel . . . . . . . . . . . . . . . . . . . . 1
A.1.1 Origines . . . . . . . . . . . . . . . . . . . . . . . . . 1
A.1.2 Pourquoi utiliser R ? . . . . . . . . . . . . . . . . . . 1
A.2 R et les statistiques . . . . . . . . . . . . . . . . . . . . . . 3
A.3 R et les graphiques . . . . . . . . . . . . . . . . . . . . . . . 4
A.4 L’interface graphique de R (GUI) . . . . . . . . . . . . . . . 5
A.5 Mes premiers pas en R . . . . . . . . . . . . . . . . . . . . . 6
A.5.1 Utilisation de RCommander . . . . . . . . . . . . . . 6
A.5.1.1 Lancement de RCommander . . . . . . . . . 6
A.5.1.2 Manipulation de données avec RCommander 8
A.5.1.3 Quelques manipulations statistiques avec RCommander . . 13
A.5.1.4 Rajouter des fonctionnalités à l’interface de
RCommander . . . . . . . . . . . . . . . . . . 19
A.5.2 Utiliser R via la console . . . . . . . . . . . . . . . . 20
A.5.2.1 La force de R illustrée sur un exemple . . . 21
A.5.2.2 Un survol de la syntaxe de R via des commandes
à taper . . . . . . . . . . . . . . . . . 25
B Quelques jeux de données et problématiques ´ 31
B.1 Indice de masse corporelle (IMC) chez des enfants . . . . . 31
B.2 Poids de naissance . . . . . . . . . . . . . . . . . . . . . . . 32
B.3 Epaisseur de l’intima-média ´ . . . . . . . . . . . . . . . . . . 33
B.4 Alimentation chez des personnes âgées . . . . . . . . . . . . 34
xvi Le logiciel R
B.5 Etude cas témoins sur l’infarctus du myocarde. . . . . . . 35
B.6 Tableau résumant l’utilisation des jeux de données . . . . . 36
I Les bases du logiciel R 37
1 Les concepts de base, l’organisation des données ´ 39
1.1 Votre première session . . . . . . . . . . . . . . . . . . . . . 39
1.1.1 R est une calculatrice . . . . . . . . . . . . . . . . . 40
1.1.2 Affichage des résultats et redirection dans des variables 41
1.1.3 Stratégie de travail . . . . . . . . . . . . . . . . . . 43
1.1.4 Utilisation de fonctions . . . . . . . . . . . . . . . . 47
1.2 Les données dans R . . . . . . . . . . . . . . . . . . . . . . 50
1.2.1 Nature (ou type, ou mode) des données . . . . . . . 50
1.2.1.1 Type numérique (numeric) . . . . . . . . . 50
1.2.1.2 † Type complexe (complex) . . . . . . . . . 51
1.2.1.3 Type booléen ou logique (logical) . . . . 52
1.2.1.4 Données manquantes (NA) . . . . . . . . . 52
1.2.1.5 Type chaînes de caractères (character) . 53
1.2.1.6 † Données brutes (raw) . . . . . . . . . . . . 54
Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.2.2 Structures de données . . . . . . . . . . . . . . . . . 55
1.2.2.1 Les vecteurs (vector) . . . . . . . . . . . . 55
1.2.2.2 Les matrices (matrix), les tableaux (arrays) 56
1.2.2.3 Les listes (list) . . . . . . . . . . . . . . . 58
1.2.2.4 Le tableau individus × variables (data.frame) 59
1.2.2.5 Les facteurs (factor) et les variables ordinales (ordered) . . . . . . . . . . . . . . . . 60
1.2.2.6 Les dates . . . . . . . . . . . . . . . . . . . 62
1.2.2.7 Les séries temporelles . . . . . . . . . . . . 62
Récapitulatif . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2 Importation-exportation et production de donnees ´ 67
2.1 Importer des données . . . . . . . . . . . . . . . . . . . . . 67
2.1.1 Importer des données depuis un fichier texte ASCII 67
2.1.1.1 Lecture de données avec read.table() . . 68
2.1.1.2 Lecture de données avec read.ftable() . 71
2.1.1.3 Lecture de données avec la fonction scan() 72
2.1.2 Importer des données depuis Excel ou le tableur d’OpenOffice . . . . 73
2.1.2.1 Utiliser le copier-coller . . . . . . . . . . . 73
2.1.2.2 Passer par un fichier ASCII intermédiaire . 74
2.1.2.3 Utiliser des packages spécialisés . . . . . . 74
2.1.3 Importer des données depuis SPSS, Minitab, SAS ou Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.1.4 Les gros fichiers de données . . . . . . . . . . . . . . 75
2.2 Exporter des données . . . . . . . . . . . . . . . . . . . . . 77
2.2.1 Exporter des données vers un fichier texte ASCII . . 77
2.2.2 Exporter des données vers Excel ou OpenOffice Calc 77
2.3 Création de données . . . . . . . . . . . . . . . . . . . . . . 77
2.3.1 Entrer des données jouets . . . . . . . . . . . . . . . 77
2.3.2 Générer des données pseudo-aléatoires . . . . . . . . 79
2.3.3 Entrer des données issues d’un support papier . . . 79
2.4 † Lecture/écriture dans les bases de données . . . . . . . . . 81
2.4.1 Créer une base de données et une table . . . . . . . 81
2.4.2 Créer une source de données compatible avec MySQL 82
2.4.3 Ecrire dans une table ´ . . . . . . . . . . . . . . . . . 83
2.4.4 Lire dans une table . . . . . . . . . . . . . . . . . . 84
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3 Manipulation de donnees, fonctions ´ 91
3.1 Opérations sur les vecteurs, matrices et listes . . . . . . . . 91
3.1.1 Arithmétique vectorielle . . . . . . . . . . . . . . . . 91
3.1.2 Le recyclage . . . . . . . . . . . . . . . . . . . . . . 92
3.1.3 Fonctions basiques . . . . . . . . . . . . . . . . . . . 93
3.1.4 Opérations sur les matrices ou les data.frames . . . 94
3.1.4.1 Informations sur l’architecture . . . . . . . 94
3.1.4.2 Fusion de tables . . . . . . . . . . . . . . . 95
3.1.4.3 La fonction apply() . . . . . . . . . . . . 99
3.1.4.4 La fonction sweep() . . . . . . . . . . . . 100
3.1.4.5 La fonction stack() . . . . . . . . . . . . 100
3.1.4.6 La fonction aggregate() . . . . . . . . . . 101
3.1.4.7 La fonction transform() . . . . . . . . . . 102
3.1.5 Opérations sur les listes . . . . . . . . . . . . . . . . 102
3.2 Opérations logiques et relationnelles . . . . . . . . . . . . . 103
3.3 Opérations ensemblistes . . . . . . . . . . . . . . . . . . . . 105
3.4 Extraction et insertion d’éléments . . . . . . . . . . . . . . 106
3.4.1 Extraction/Insertion dans les vecteurs . . . . . . . . 106
3.4.2 Extraction/Insertion dans les matrices . . . . . . . . 108
3.4.3 Extraction/Insertion dans les arrays . . . . . . . . . 112
3.4.4 Extraction/Insertion dans les listes . . . . . . . . . . 113
3.5 Manipulation de chaînes de caractères . . . . . . . . . . . . 116
3.6 Manipulation de dates et d’unités de temps . . . . . . . . . 119
3.6.1 Affichage de la date courante . . . . . . . . . . . . . 119
3.6.2 Extraction de dates . . . . . . . . . . . . . . . . . . 119
3.6.3 Opérations sur des dates . . . . . . . . . . . . . . . 121
3.7 Structures de contrôle . . . . . . . . . . . . . . . . . . . . . 123
3.7.1 Instructions de condition . . . . . . . . . . . . . . . 124
3.7.2 Instructions de boucles . . . . . . . . . . . . . . . . 127
3.8 Création de fonctions . . . . . . . . . . . . . . . . . . . . . 129
3.9 † Représentation des nombres à virgule fixe, flottante . . . . 136
3.9.1 Représentation d’un nombre à l’aide d’une base . . 137
3.9.2 Représentation à virgule flottante . . . . . . . . . . 138
3.9.2.1 Définitions . . . . . . . . . . . . . . . . . . 138
3.9.2.2 Limite de cette représentation due à la mantisse. . . . 139
3.9.2.3 Eviter certaines chausse-trappes numériques ´ 140
3.9.2.4 Limite de cette représentation due à l’exposant. . . . 142
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4 R et sa documentation 153
4.1 Aide intégrée au logiciel R . . . . . . . . . . . . . . . . . . . 153
4.1.1 La commande help() . . . . . . . . . . . . . . . . . 153
4.1.2 Quelques commandes complémentaires . . . . . . . 155
4.2 † Aide accessible sur l’Internet . . . . . . . . . . . . . . . . . 157
4.2.1 Moteurs de recherche . . . . . . . . . . . . . . . . . 158
4.2.2 Forums de discussion . . . . . . . . . . . . . . . . . 158
4.2.3 Listes de diffusion (mailing lists) . . . . . . . . . . . 158
4.2.4 Discussion relayée par l’Internet (IRC) . . . . . . . 159
4.2.5 Wiki . . . . . . . . . . . . . . . . . . . . . . . . . . 159
4.3 † Littérature sur R . . . . . . . . . . . . . . . . . . . . . . . . 159
4.3.1 Sur le web . . . . . . . . . . . . . . . . . . . . . . . 159
4.3.2 En format papier . . . . . . . . . . . . . . . . . . . 160
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
5 Techniques pour tracer des courbes et des graphiques 163
5.1 Les fenˆetres graphiques . . . . . . . . . . . . . . . . . . . . 163
5.1.1 Fenˆetre graphique de base, manipulation, sauvegarde 163
5.1.2 Découpage de la fenˆetre graphique : layout() . . . 165
5.2 Les fonctions de tracé de bas niveau . . . . . . . . . . . . . 168
5.2.1 Les fonctions plot() et points() . . . . . . . . . . 168
5.2.2 Les fonctions segments(), lines() et abline() . . 170
5.2.3 La fonction arrows() . . . . . . . . . . . . . . . . . 172
5.2.4 La fonction polygon() . . . . . . . . . . . . . . . . 173
5.2.5 La fonction curve() . . . . . . . . . . . . . . . . . . 173
5.2.6 La fonction box() . . . . . . . . . . . . . . . . . . . 174
5.3 La gestion des couleurs . . . . . . . . . . . . . . . . . . . . 175
5.3.1 La fonction colors() . . . . . . . . . . . . . . . . . 175
5.3.2 Le codage hexadécimal des couleurs . . . . . . . . . 176
5.3.3 La fonction image() . . . . . . . . . . . . . . . . . . 179
5.4 L’ajout de texte . . . . . . . . . . . . . . . . . . . . . . . . 181
5.4.1 La fonction text() . . . . . . . . . . . . . . . . . . 181
5.4.2 La fonction mtext() . . . . . . . . . . . . . . . . . . 182
5.5 Titres, axes et légendes . . . . . . . . . . . . . . . . . . . . 183
5.5.1 La fonction title() . . . . . . . . . . . . . . . . . . 183
5.5.2 La fonction axis() . . . . . . . . . . . . . . . . . . 185
5.5.3 La fonction legend() . . . . . . . . . . . . . . . . . 186
5.6 L’interaction avec le graphique . . . . . . . . . . . . . . . . 187
5.6.1 La fonction locator() . . . . . . . . . . . . . . . . 187
5.6.2 La fonction identify() . . . . . . . . . . . . . . . . 188
5.7 † La gestion fine des paramètres graphiques : par() . . . . . 188
5.8 † Graphiques avancés : rgl, lattice et ggplot2 . . . . . . . 200
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
6 Programmation en R 209
6.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
6.2 Développer des fonctions . . . . . . . . . . . . . . . . . . . 210
6.2.1 Mise en route rapide : déclaration, création et appel de fonctions . . . 210
6.2.2 Concepts de base sur les fonctions . . . . . . . . . . 211
6.2.2.1 Corps de fonction . . . . . . . . . . . . . . 211
6.2.2.2 Liste de paramètres formels et effectifs . . 211
6.2.2.3 Objet retourné par une fonction . . . . . . 215
6.2.2.4 Portée des variables dans le corps de la fonction. . . 217
6.2.3 Application à la problématique . . . . . . . . . . . . 219
6.2.4 Opérateurs . . . . . . . . . . . . . . . . . . . . . . . 220
6.2.5 Le R vu comme un langage fonctionnel . . . . . . . 222
6.3 † Programmation orientée objets . . . . . . . . . . . . . . . . 223
6.3.1 Comment fonctionne le mécanisme orienté objet du R 223
6.3.1.1 Classe d’un objet et déclaration d’un objet 223
6.3.1.2 Déclaration et utilisation d’une méthode d’un objet. . . . . . 224
6.3.2 Retour à la problématique . . . . . . . . . . . . . . 228
6.3.3 Information sur les méthodes . . . . . . . . . . . . . 230
6.3.4 Héritage de classe . . . . . . . . . . . . . . . . . . . 232
6.4 † Aller plus loin en programmation R . . . . . . . . . . . . . 236
6.4.1 Attributs R . . . . . . . . . . . . . . . . . . . . . . . 236
6.4.1.1 Attribut class . . . . . . . . . . . . . . . 237
6.4.1.2 Attribut dim . . . . . . . . . . . . . . . . . 238
6.4.1.3 Attributs names et dimnames . . . . . . . . 241
6.4.2 Autres objets R . . . . . . . . . . . . . . . . . . . . 244
6.4.2.1 Expression R . . . . . . . . . . . . . . . . . 244
6.4.2.2 Formule R . . . . . . . . . . . . . . . . . . 247
6.4.2.3 Environnement R . . . . . . . . . . . . . . 249
6.5 † Interfacer R et C/C++ ou Fortran . . . . . . . . . . . . . . 251
6.5.1 Création et exécution d’une fonction C/C++ ou Fortran. . . . . 253
6.5.2 Appel du code C/C++ (ou Fortran) depuis R . . . . 260
6.5.3 Appel de librairies C/C++ ou Fortran externes . . . 265
6.5.3.1 L’API R . . . . . . . . . . . . . . . . . . . 266
6.5.3.2 La librairie newmat . . . . . . . . . . . . . 269
6.5.3.3 Les librairies BLAS et LAPACK . . . . . . . . 271
6.5.3.4 Mélanger des librairies C/C++ et Fortran . 274
6.5.4 Appel d’un code R depuis un programme C/C++ appelé par R . . . 276
6.5.5 Appel d’un code R depuis un programme Fortran . 278
6.5.6 Quelques fonctions utiles . . . . . . . . . . . . . . . 278
6.6 † Débogage de fonctions . . . . . . . . . . . . . . . . . . . . . 279
6.6.1 Débogage de fonctions en R pur . . . . . . . . . . . 279
6.6.2 Erreur dans le code R . . . . . . . . . . . . . . . . . 281
6.6.3 Erreur dans le code C/C++ ou Fortran . . . . . . . 282
6.6.4 Débogage avec GDB . . . . . . . . . . . . . . . . . . 283
6.6.4.1 Débogage avec Emacs . . . . . . . . . . . . 286
6.6.4.2 Débogage avec DDD . . . . . . . . . . . . . 289
6.6.4.3 Débogage avec Insight . . . . . . . . . . . 290
6.6.4.4 Détection de fuites de mémoire . . . . . . 294
6.7 Calcul parallèle et calculs sur cartes graphiques . . . . . . . 297
6.7.1 Calcul parallèle . . . . . . . . . . . . . . . . . . . . 297
6.7.2 Calcul sur cartes graphiques . . . . . . . . . . . . . 299
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
7 Maintenance des sessions 309
7.1 Les commandes R, les objets et leur stockage . . . . . . . . 309
7.2 Environnement de travail : les fichiers d’extension .RData . 311
7.3 Historique des commandes : les fichiers d’extension .Rhistory 314
7.4 Sauvegarder des graphiques . . . . . . . . . . . . . . . . . . 315
7.5 La gestion des packages . . . . . . . . . . . . . . . . . . . . 316
7.6 La gestion des chemins d’accès aux objets R . . . . . . . . . 317
7.7 † Autres commandes utiles . . . . . . . . . . . . . . . . . . . 319
7.8 † La gestion de la mémoire . . . . . . . . . . . . . . . . . . . 320
7.8.1 Organisation de la mémoire vive . . . . . . . . . . . 321
7.8.2 Accéder à la mémoire . . . . . . . . . . . . . . . . . 321
7.8.2.1 Problèmes causés par la gestion mémoire des entiers . . . . . .. . . . 322
7.8.2.2 Allocation consécutive de la mémoire . . . 324
7.8.3 Taille des objets dans R . . . . . . . . . . . . . . . . 326
7.8.4 Quantité totale de mémoire utilisée par R . . . . . . 327
7.8.5 Quelques recommandations . . . . . . . . . . . . . . 329
7.9 † Utiliser R en mode BATCH . . . . . . . . . . . . . . . . . . . 331
7.10 † Création d’un package R simplifié . . . . . . . . . . . . . . 332
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
II Mathématiques et statistiques élémentaires 339
8 Mathématiques de base : calcul matriciel, intégration, optimisation ´ 341
8.1 Les fonctions mathématiques de base . . . . . . . . . . . . 342
8.2 Calcul matriciel . . . . . . . . . . . . . . . . . . . . . . . . 343
8.2.1 Opérations de base . . . . . . . . . . . . . . . . . . 344
8.2.2 Produit extérieur . . . . . . . . . . . . . . . . . . . 346
8.2.3 Produit de Kronecker . . . . . . . . . . . . . . . . . 347
8.2.4 Matrices triangulaires . . . . . . . . . . . . . . . . . 347
8.2.5 Opérateurs vec et demi-vec . . . . . . . . . . . . . . 348
8.2.6 Déterminant, trace, nombre de conditionnement . . 348
8.2.7 Données centrées, données réduites . . . . . . . . . . 349
8.2.8 Calcul des valeurs propres et vecteurs propres . . . 350
8.2.9 Racine carrée d’une matrice hermitienne définie positive. . . . . . 350
8.2.10 Décomposition en valeurs singulières . . . . . . . . . 351
8.2.11 Décomposition de Cholesky . . . . . . . . . . . . . . 352
8.2.12 Décomposition QR . . . . . . . . . . . . . . . . . . . 353
xxii Le logiciel R
8.3 Intégration numérique . . . . . . . . . . . . . . . . . . . . . 353
8.4 Dérivation . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
8.4.1 Dérivation symbolique . . . . . . . . . . . . . . . . . 354
8.4.2 Dérivation numérique . . . . . . . . . . . . . . . . . 355
8.5 Optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . 356
8.5.1 Fonctions d’optimisation . . . . . . . . . . . . . . . 356
8.5.2 Racines d’une fonction . . . . . . . . . . . . . . . . 360
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
9 Statistique descriptive 367
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 367
9.2 Structuration des variables suivant leur type . . . . . . . . 368
9.2.1 Structurer les variables qualitatives . . . . . . . . . 369
9.2.2 Structurer les variables ordinales . . . . . . . . . . . 371
9.2.3 Structurer les variables quantitatives discrètes . . . 371
9.2.4 Structurer les variables quantitatives continues . . . 371
9.3 Tableaux de données . . . . . . . . . . . . . . . . . . . . . . 372
9.3.1 Tableaux des données individuelles . . . . . . . . . . 372
9.3.2 Tableaux des effectifs ou des fréquences d’une variable 372
9.3.3 Tableaux de données regroupées en classes . . . . . 373
9.3.4 Tableaux croisant deux variables . . . . . . . . . . . 373
9.3.4.1 Tableaux de contingence . . . . . . . . . . 373
9.3.4.2 Distribution conjointe . . . . . . . . . . . . 374
9.3.4.3 Distributions marginales . . . . . . . . . . 375
9.3.4.4 Distributions conditionnelles . . . . . . . . 375
9.4 Résumés numériques . . . . . . . . . . . . . . . . . . . . . . 376
9.4.1 Résumés de position d’une distribution . . . . . . . 377
9.4.1.1 Le (ou les) mode(s) . . . . . . . . . . . . . 377
9.4.1.2 La médiane . . . . . . . . . . . . . . . . . 377
9.4.1.3 La moyenne . . . . . . . . . . . . . . . . . 379
9.4.1.4 Les fractiles . . . . . . . . . . . . . . . . . 379
9.4.2 Résumés de dispersion d’une distribution . . . . . . 380
9.4.3 Résumés de forme d’une distribution . . . . . . . . 381
9.5 Mesures d’association . . . . . . . . . . . . . . . . . . . . . 381
9.5.1 Mesures de liaison entre deux variables qualitatives 381
9.5.1.1 La statistique du χ
2 de Pearson . . . . . . 381
9.5.1.2 Φ2 , V de Cramér et coefficient de contingence de Pearson. . . . . . 382
9.5.2 Mesures de liaison entre des variables ordinales (ou des rangs) . . . 383
9.5.2.1 Le τ et le τb de Kendall . . . . . . . . . . . 383
9.5.2.2 Coefficient ρ de corrélation des rangs de Spearman. . 384
9.5.3 Mesures de liaison entre deux variables quantitatives 385
9.5.3.1 Covariance et coefficient de corrélation de
Pearson . . . . . . . . . . . . . . . . . . . . . 385
9.5.4 Mesures de liaison entre une variable quantitative et une variable qualitative . . . . .. 385
9.5.4.1 Le rapport de corrélation η . . . . 385
9.6 Représentations graphiques . . . . . . . . . . . . . . . . . . 386
9.6.1 Graphiques pour les variables qualitatives . . . . . . 387
9.6.1.1 Diagramme en croix . . . . . . . . . . . . . 387
9.6.1.2 Diagramme en tuyaux d’orgue . . . . . . . 388
9.6.1.3 Diagramme de Pareto . . . . . . . . . . . . 389
9.6.1.4 Diagramme empilé . . . . . . . . . . . . . 390
9.6.1.5 Diagramme circulaire . . . . . . . . . . . . 391
9.6.2 Graphiques pour les variables ordinales . . . . . . . 392
9.6.2.1 Diagramme en tuyaux d’orgue avec courbe des fréquences cumulées . . . . . . . . . . . . 392
9.6.3 Graphiques pour les variables quantitatives discrètes 392
9.6.3.1 Diagramme en croix . . . . . . . . . . . . . 392
9.6.3.2 Diagramme en bâtons . . . . . . . . . . . . 393
9.6.3.3 Graphe de la fonction de répartition empirique. . . 393
9.6.3.4 Diagramme en tiges et feuilles . . . . . . . 394
9.6.3.5 Boîte à moustaches (boxplot) . . . . . . . . 394
9.6.4 Graphiques pour les variables quantitatives continues 396
9.6.4.1 Graphe de la fonction de répartition empirique. . . . 396
9.6.4.2 Diagramme en tiges et feuilles . . . . . . . 397
9.6.4.3 Boîte à moustaches . . . . . . . . . . . . . 398
9.6.4.4 Histogramme en densité à amplitudes de classes
égales ou inégales . . . . . . . . . . . . . . . 398
9.6.4.5 Polygone des fréquences . . . . . . . . . . 400
9.6.4.6 Polygone des fréquences cumulées . . . . . 400
9.6.5 Représentations graphiques dans un cadre bivarié . 401
9.6.5.1 Croisement de deux variables qualitatives . 401
9.6.5.2 Croisement de deux variables quantitatives 404
9.6.5.3 Croisement d’une variable qualitative et d’une variable quantitative . . . . . . . . . . . . . . 405
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
xxiv Le logiciel R
10 Variables aleatoires, lois et simulations : une meilleure compréhension ´
grace aux sp ˆ ecificités de ´ R 411
10.1 Notions sur la génération de nombres au hasard . . . . . . 411
10.2 La notion de variable aléatoire . . . . . . . . . . . . . . . . 413
10.2.1 Réalisations d’une variable aléatoire et loi de fonctionnement . . . 413
10.2.2 Variables aléatoires i.i.d. . . . . . . . . . . . . . . . 415
10.2.3 Caractériser la loi d’une variable aléatoire . . . . . . 416
10.2.3.1 Densité, fonction de répartition, fonction quantile. . . 417
10.2.4 Paramètres de la loi d’une variable aléatoire . . . . 420
10.3 Loi des grands nombres et théorème de la limite centrale . 423
10.3.1 Loi des grands nombres . . . . . . . . . . . . . . . . 423
10.3.2 Théorème de la limite centrale . . . . . . . . . . . . 424
10.4 La statistique inférentielle . . . . . . . . . . . . . . . . . . . 425
10.4.1 Estimation (ponctuelle) de paramètres . . . . . . . 425
10.4.2 La fonction de répartition empirique . . . . . . . . . 427
10.4.3 Estimation par la méthode du maximum de vraisemblance. . 428
10.4.4 Fluctuation d’échantillonnage et qualités d’un estimateur. . . . 430
10.5 Quelques techniques de simulation (d’une loi) . . . . . . . . 432
10.5.1 Simuler à partir d’une autre loi . . . . . . . . . . . . 433
10.5.2 Méthode de la transformation inverse . . . . . . . . 433
10.5.3 Méthode du rejet . . . . . . . . . . . . . . . . . . . 434
10.5.4 Simulation de variables aléatoires discrètes . . . . . 435
10.6 La méthode du bootstrap . . . . . . . . . . . . . . . . . . . 435
10.7 Lois usuelles et moins usuelles . . . . . . . . . . . . . . . . 436
10.7.1 Lois usuelles . . . . . . . . . . . . . . . . . . . . . . 436
10.7.2 † Lois moins usuelles . . . . . . . . . . . . . . . . . . 439
10.8 Modélisation d’un phénomène . . . . . . . . . . . . . . . . 440
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
11 Intervalles de confiance et tests d’hypotheses ` 449
11.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
11.2 Intervalles de confiance . . . . . . . . . . . . . . . . . . . . 450
11.2.1 Intervalles de confiance pour une moyenne . . . . . 451
11.2.2 Intervalles de confiance pour une proportion . . . . 452
11.2.3 Intervalles de confiance pour une variance . . . . . . 453
11.2.4 Intervalles de confiance pour une médiane . . . . . . 455
11.2.5 Intervalle de confiance pour un coefficient de corrélation. . . . 456
11.2.6 Tableau récapitulatif des intervalles de confiance . . 456
11.3 Tests d’hypothèses usuels . . . . . . . . . . . . . . . . . . . 457
11.3.1 Tests paramétriques . . . . . . . . . . . . . . . . . . 459
11.3.1.1 Tests de moyenne . . . . . . . . . . . . . . 459
11.3.1.2 Tests de variance . . . . . . . . . . . . . . 462
11.3.1.3 Tests de proportion . . . . . . . . . . . . . 464
11.3.1.4 Tests de coefficient de corrélation . . . . . 467
11.3.2 Tests d’indépendance . . . . . . . . . . . . . . . . . 468
11.3.2.1 Test du χ
2 d’indépendance . . . . . . . . . 468
11.3.2.2 Test du χ
2 de Yates . . . . . . . . . . . . . 470
11.3.2.3 Test de Fisher exact . . . . . . . . . . . . 471
11.3.3 Tests non paramétriques . . . . . . . . . . . . . . . 472
11.3.3.1 Tests d’adéquation . . . . . . . . . . . . . 472
11.3.3.2 Tests de position . . . . . . . . . . . . . . 476
11.3.4 Tableau récapitulatif des tests usuels . . . . . . . . 481
11.4 Autres tests d’hypothèses . . . . . . . . . . . . . . . . . . . 481
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
12 Regression linéaire simple et multiple ´ 489
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 489
12.2 La régression linéaire simple . . . . . . . . . . . . . . . . . 491
12.2.1 Objectif et modèle . . . . . . . . . . . . . . . . . . . 491
12.2.2 Ajustement sur des données . . . . . . . . . . . . . 491
12.2.3 Intervalle de confiance et de prédiction pour une nouvelle valeur . .. 496
12.2.4 Analyse des résidus . . . . . . . . . . . . . . . . . . 499
12.2.5 Tests de Student pour des moyennes et modèle linéaire 502
12.2.6 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . 503
12.3 La régression linéaire multiple . . . . . . . . . . . . . . . . 504
12.3.1 Objectif et modèle . . . . . . . . . . . . . . . . . . . 504
12.3.2 Ajustement sur des données . . . . . . . . . . . . . 504
12.3.3 Intervalle de confiance et de prédiction pour une nouvelle valeur . .. . . . 509
12.3.4 Test d’une sous-hypothèse linéaire : test de Fisher partiel. . . . . . . . 509
12.3.5 Cas des variables qualitatives à plus de deux modalités 510
12.3.6 Interaction entre les variables . . . . . . . . . . . . . 514
12.3.7 Problème de la colinéarité . . . . . . . . . . . . . . . 518
12.3.8 Sélection de variables . . . . . . . . . . . . . . . . . 519
12.3.9 Analyse des résidus . . . . . . . . . . . . . . . . . . 528
xxvi Le logiciel R
12.3.10 Cas de la régression polynomiale . . . . . . . . . . . 535
12.3.11 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . 535
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
13 Analyse de variance el´ ementaire ´ 541
13.1 Analyse de la variance à un facteur . . . . . . . . . . . . . 541
13.1.1 Les objectifs, les données et le modèle . . . . . . . . 541
13.1.2 Exemple et inspection graphique . . . . . . . . . . . 542
13.1.3 Table d’ANOVA et estimations des paramètres . . . 544
13.1.4 Validation des hypothèses . . . . . . . . . . . . . . . 547
13.1.5 Comparaisons multiples et contrastes . . . . . . . . 548
13.1.6 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . 551
13.2 Analyse de la variance à deux facteurs . . . . . . . . . . . . 552
13.2.1 Objectifs, données et modèle . . . . . . . . . . . . . 552
13.2.2 Exemple et inspection graphique . . . . . . . . . . . 553
13.2.3 Table d’ANOVA, tests et estimation des paramètres 555
13.2.4 Validation des hypothèses . . . . . . . . . . . . . . . 558
13.2.5 Contrastes . . . . . . . . . . . . . . . . . . . . . . . 559
13.2.6 Récapitulatif . . . . . . . . . . . . . . . . . . . . . . 560
13.3 Analyses de variance à mesures répétées . . . . . . . . . . . 561
13.3.1 Modèle à un facteur à mesures répétées . . . . . . . 562
13.3.2 Modèle à deux facteurs à mesures répétées sur les deux facteurs. . . . . 563
13.3.3 Modèle à deux facteurs à mesures répétées sur un seul facteur . . . . 565
Termes à retenir . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Fiche de TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Annexes : Installation du logiciel R et des packages R 573
C.1 Installation de R sous Microsoft Windows . . . . . . . . . . 573
C.2 Installation de packages supplémentaires . . . . . . . . . . 574
C.2.1 Installation à partir d’un fichier situé sur le disque . 574
C.2.2 Installation directement depuis l’Internet . . . . . . 575
C.2.3 Installation depuis la ligne de commande . . . . . . 576
C.2.4 Installation de packages sous Linux . . . . . . . . . 577
C.3 Chargement des packages installés . . . . . . . . . . . . . . 578
Références ´ 581
Index général ´ 585
Sommaire xxvii
Index des commandes et des symboles R 595
Index des auteurs 609
Liste des packages R mentionnes dans le livre ´ 611
Solutions des exercices 613
Solutions des TPs 625