christophe ambroise et julien chiquet...objectifs d’une étude statistique les données formation...

Post on 02-Mar-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Bases statistiques et tests d’hypothèses avec R

Christophe Ambroise et Julien Chiquet

Université d’Évry val d’Essonne

7-9 avril 2014

http://stat.genopole.cnrs.fr/~jchiquet/fr/initiation_R

Formation à R 1

Intervenant

Equipe « Statistique & Génome »http://stat.genopole.cnrs.fr

Christophe Ambroise

Statistique

prenom.nom@genopole.cnrs.fr

Formation à R 2

Première partie I

Introduction à la statistique

Formation à R Introduction à la statistique 3

PlanIntroduction à la statistique

Concepts fondamentaux

Variables, distributions

Modes d’étude d’une population

Objectifs d’une étude statistique

Les données

Formation à R Introduction à la statistique 4

PlanIntroduction à la statistique

Concepts fondamentaux

Variables, distributions

Modes d’étude d’une population

Objectifs d’une étude statistique

Les données

Formation à R Introduction à la statistique 5

Qu’est ce que la statistique ?

StatistiqueActivité qui consiste dans le recueil, le traitement etl’interprétation de données d’observation.

Population

I population, ensemble d’entités objet de l’investigationstatistique, et non telle ou telle entité particulière.

I individus, définis comme les éléments d’une certainepopulation.

Formation à R Introduction à la statistique 6

Différentes notion de population

I Dans certain cas la population de référence est finie et seséléments peuvent être explicitement dénombrés

I la notion de population revêt parfois une signification plusabstraite (exemple population de malades)

I parfois la notion de population s’identifie avec celle deprocédure de génération de données (donnéesd’expression)

Formation à R Introduction à la statistique 7

PlanIntroduction à la statistique

Concepts fondamentaux

Variables, distributions

Modes d’étude d’une population

Objectifs d’une étude statistique

Les données

Formation à R Introduction à la statistique 8

Variables

Chaque individu est décrit par un ensemble de variables :I qualitative (sexe, nationalité, état matrimonial, ...) : les

valeurs prises par le caractère sont les modalitésI ordinale (notion d’ordre) : modalités intrinsèquement

ordonnéesI nominale : pas de structure d’ordre : par exemple le sexe.

I quantitative (taille, poids ...)I discrèteI continue

Formation à R Introduction à la statistique 9

PlanIntroduction à la statistique

Concepts fondamentaux

Variables, distributions

Modes d’étude d’une population

Objectifs d’une étude statistique

Les données

Formation à R Introduction à la statistique 10

Modes d’étude d’une population

Étude exhaustiveDite par recensement.L’étude d’une population de grande taille est souvent difficilevoire impossible

ÉchantillonLe processus de sélection d’un échantillon estl’échantillonnage Seule solution d’une le cas d’une populationinfinie

Inférence statistiqueProcessus visant àI déduire de conclusions générales relative à la population

totaleI à partir de la connaissance particlle relative à un nombre

de cas particulier

Formation à R Introduction à la statistique 11

PlanIntroduction à la statistique

Concepts fondamentaux

Variables, distributions

Modes d’étude d’une population

Objectifs d’une étude statistique

Les données

Formation à R Introduction à la statistique 12

Objectifs d’une étude statistique

1. synthétiser, résumer, structurer l’information :Statistique Descriptive ou Exploratoire

2. formuler ou valider des hypothèses relatives à la populationtotale :Statistique inférentielle

Formation à R Introduction à la statistique 13

PlanIntroduction à la statistique

Concepts fondamentaux

Variables, distributions

Modes d’étude d’une population

Objectifs d’une étude statistique

Les données

Formation à R Introduction à la statistique 14

Le tableau de données

I n individus mesurés par p variables

I Tableau X = (x ji ) =

x11 x j

1 xp1

. .

x1i x j

i xpi

. .

x1n x j

n xpn

I Chaque variable est représentée par le vecteur

x j = (x j1 , . . . , x

jn)′

I Chaque individu est représenté par le vecteurx i = (x 1

i , . . . , , xpi )′

I X : réalisation d’un échantillon de taille n du vecteuraléatoire de dimension p

X = (X 1, . . . ,X p)′

Formation à R Introduction à la statistique 15

Deuxième partie II

Introduction à R

Formation à R Introduction à R 16

PlanIntroduction à R

Avant de démarrer

Installation et premiers contacts

Une session exemple

Formation à R Introduction à R 17

PlanIntroduction à R

Avant de démarrer

Installation et premiers contacts

Une session exemple

Formation à R Introduction à R 18

Qu’est-ce que R?

En deux mots,R est un logiciel de développement scientifique spécialisé dansle calcul et l’analyse statistique.

R est aussiI un langage,I un environnement,I un projet open source (projet GNU),I un logiciel multi-plateforme (Linux, Mac, Windows),I la 18e lettre de l’alphabet M.

Formation à R Introduction à R 19

Qu’est-ce que R?

En deux mots,R est un logiciel de développement scientifique spécialisé dansle calcul et l’analyse statistique.

R est aussiI un langage,I un environnement,I un projet open source (projet GNU),I un logiciel multi-plateforme (Linux, Mac, Windows),I la 18e lettre de l’alphabet M.

Formation à R Introduction à R 19

Qu’est-ce que R?

En deux mots,R est un logiciel de développement scientifique spécialisé dansle calcul et l’analyse statistique.

R est aussiI un langage,I un environnement,I un projet open source (projet GNU),I un logiciel multi-plateforme (Linux, Mac, Windows),I la 18e lettre de l’alphabet M.

Formation à R Introduction à R 19

Principales fonctionnalités

1. Gestionnaire de donnéesI Lecture, manipulation, stockage.

2. Algèbre linéaireI Opérations classiques sur vecteurs, tableaux et matrices

3. Statistiques et analyse de donnéesI Dispose d’un grand nombre de méthodes d’analyse de

données (des plus anciennes et aux plus récentes)4. Moteur de sorties graphiques

I Sorties écran ou fichier5. Système de modules

I Alimenté par la communauté (+ de 2000 extensions !)

6. Interface facile avec C/C++, Fortran,. . .

Formation à R Introduction à R 20

Principales fonctionnalités

1. Gestionnaire de donnéesI Lecture, manipulation, stockage.

2. Algèbre linéaireI Opérations classiques sur vecteurs, tableaux et matrices

3. Statistiques et analyse de donnéesI Dispose d’un grand nombre de méthodes d’analyse de

données (des plus anciennes et aux plus récentes)4. Moteur de sorties graphiques

I Sorties écran ou fichier5. Système de modules

I Alimenté par la communauté (+ de 2000 extensions !)

6. Interface facile avec C/C++, Fortran,. . .

Formation à R Introduction à R 20

Historique

Approche chronologique

1970s développement de S au Bell labs.1980s développement de S-PLUS au AT&T. Lab1993 développement de R sur le modèle de S par Robert

Gentleman et Ross Ihaka au département destatistique de l’université d’Auckland.

1995 dépôts des codes sources sous licence GNU/GPL1997 élargissement du groupe2002 la fondation R dépose ses statuts sous la présidence

de Gentleman et Ihaka

Développement entièrement bénévole

I « R development core team » (12aine de personnes)I Participation de nombreux chercheurs (2000 packages)

Formation à R Introduction à R 21

Historique

Approche chronologique

1970s développement de S au Bell labs.1980s développement de S-PLUS au AT&T. Lab1993 développement de R sur le modèle de S par Robert

Gentleman et Ross Ihaka au département destatistique de l’université d’Auckland.

1995 dépôts des codes sources sous licence GNU/GPL1997 élargissement du groupe2002 la fondation R dépose ses statuts sous la présidence

de Gentleman et Ihaka

Développement entièrement bénévole

I « R development core team » (12aine de personnes)I Participation de nombreux chercheurs (2000 packages)

Formation à R Introduction à R 21

Se tenir informé

1. La page web de la fondation RI les statuts, des liens, des références.I http://www.r-project.org/

2. La page web du CRAN (Comprehensive R Arxiv Network)I binaires d’installation, packages, documentations, . . .I http://cran.r-project.org/

3. La conférence des utilisateurs de R :I annuelle, prochaine édition à GaithersburgI http://user2010.org/

4. The R journal propose des articles surI de nouvelles extensions, des applications, des actualités.I http://journal.r-project.org/

Formation à R Introduction à R 22

Se tenir informé

1. La page web de la fondation RI les statuts, des liens, des références.I http://www.r-project.org/

2. La page web du CRAN (Comprehensive R Arxiv Network)I binaires d’installation, packages, documentations, . . .I http://cran.r-project.org/

3. La conférence des utilisateurs de R :I annuelle, prochaine édition à GaithersburgI http://user2010.org/

4. The R journal propose des articles surI de nouvelles extensions, des applications, des actualités.I http://journal.r-project.org/

Formation à R Introduction à R 22

Se tenir informé

1. La page web de la fondation RI les statuts, des liens, des références.I http://www.r-project.org/

2. La page web du CRAN (Comprehensive R Arxiv Network)I binaires d’installation, packages, documentations, . . .I http://cran.r-project.org/

3. La conférence des utilisateurs de R :I annuelle, prochaine édition à GaithersburgI http://user2010.org/

4. The R journal propose des articles surI de nouvelles extensions, des applications, des actualités.I http://journal.r-project.org/

Formation à R Introduction à R 22

Se tenir informé

1. La page web de la fondation RI les statuts, des liens, des références.I http://www.r-project.org/

2. La page web du CRAN (Comprehensive R Arxiv Network)I binaires d’installation, packages, documentations, . . .I http://cran.r-project.org/

3. La conférence des utilisateurs de R :I annuelle, prochaine édition à GaithersburgI http://user2010.org/

4. The R journal propose des articles surI de nouvelles extensions, des applications, des actualités.I http://journal.r-project.org/

Formation à R Introduction à R 22

Qualités et défauts de R

Plus ,

1. Libre et gratuit,2. Richesse des modules (en statistique),3. Rapidité d’exécution,4. Développement rapide (langage de scripts),5. Syntaxe intuitive et compact,6. Nombreuses possibilités graphiques.

Moins M

1. Aide intégrée succincte,2. Debugger un peu sec,3. Code parfois illisible (compacité),4. Personnalisation des graphiques un peu lourde.

Formation à R Introduction à R 23

Qualités et défauts de R

Plus ,

1. Libre et gratuit,2. Richesse des modules (en statistique),3. Rapidité d’exécution,4. Développement rapide (langage de scripts),5. Syntaxe intuitive et compact,6. Nombreuses possibilités graphiques.

Moins M

1. Aide intégrée succincte,2. Debugger un peu sec,3. Code parfois illisible (compacité),4. Personnalisation des graphiques un peu lourde.

Formation à R Introduction à R 23

Les concurrents plus ou moins directs

Les logiciels de développement scientifique sont spécialisés en

1. algèbre linéaireI Matlab (Mathworks), la référence,I Scilab (INRIA), l’alternative libre,I Octave (GNU), l’alternative open source ,,

2. statistiquesI SAS (SAS Inc.), la référence,I S-PLUS (TIBCO), le concurrent,I R (GNU), l’alternative open source ,,

3. calcul symboliqueI Mathematica (Wolfram), la référence,I Maple (Maplesoft), la référence aussi,I Maxima (GNU), l’alternative open source ,.

Formation à R Introduction à R 24

Les concurrents plus ou moins directs

Les logiciels de développement scientifique sont spécialisés en

1. algèbre linéaireI Matlab (Mathworks), la référence,I Scilab (INRIA), l’alternative libre,I Octave (GNU), l’alternative open source ,,

2. statistiquesI SAS (SAS Inc.), la référence,I S-PLUS (TIBCO), le concurrent,I R (GNU), l’alternative open source ,,

3. calcul symboliqueI Mathematica (Wolfram), la référence,I Maple (Maplesoft), la référence aussi,I Maxima (GNU), l’alternative open source ,.

Formation à R Introduction à R 24

Les concurrents plus ou moins directs

Les logiciels de développement scientifique sont spécialisés en

1. algèbre linéaireI Matlab (Mathworks), la référence,I Scilab (INRIA), l’alternative libre,I Octave (GNU), l’alternative open source ,,

2. statistiquesI SAS (SAS Inc.), la référence,I S-PLUS (TIBCO), le concurrent,I R (GNU), l’alternative open source ,,

3. calcul symboliqueI Mathematica (Wolfram), la référence,I Maple (Maplesoft), la référence aussi,I Maxima (GNU), l’alternative open source ,.

Formation à R Introduction à R 24

Matlab versus R

I Obtenir de l’aide

help -i help.start ()

help help(help)

help sort help(sort) _or_ ?sort

I Séquence de vecteurs1:10 1:10 _or_ seq(10)

1:3:10 seq(1,10,by=3)

10:-1:1 10:1

linspace(1,10,7) seq(1,10,length=7)

I Manipulation de vecteursa=[2 7 8 5] a <- c(2,7,8,5)

a=a[3:4 a <- a[c(3,4)]

adash=[2 3 4 5]' adash <- t(c(2,3,4,5))

Formation à R Introduction à R 25

PlanIntroduction à R

Avant de démarrer

Installation et premiers contacts

Une session exemple

Formation à R Introduction à R 26

InstallationRendez-vous sur la page du CRAN http://cran.r-project.org/

MacintoshTélécharger R-2.10.1.pkg, cliquer.

WindowsTélécharger R-2.10.1-win32.exe, cliquer (prier).

LinuxSystèmes supportant apt (Debian, Ubuntu, . . .)

$ sudo apt-get update

$ sudo apt-get install r-base

Formation à R Introduction à R 27

Lancer RDans un terminal, taper ’R’

Premiers pas

$ R

R version 2.10.1 (2009-12-14)

Copyright (C) 2009 The R Foundation for Statistical Computing

ISBN 3-900051-07-0

[...]

Tapez 'demo()' pour des demonstrations, 'help()' pour l'aideen ligne ou 'help.start()' pour obtenir l'aide au format HTML.

Tapez 'q()' pour quitter R.

> 1+1

[1] 2

Sortez moi de là !

> q()

Save workspace image? [y/n/c]:y

Sauve l’environnement et le réouvre la prochaine foisFormation à R Introduction à R 28

Organiser un projet RÀ calquer lors des travaux dirigés

FIGURE : Arborescence type

I Dans un répertoire R, placerI un répertoire dataI un répertoire mes_projetsI un répertoire functions

I Créer un répertoire par projetI sauvegarde des données

save.image(file = "f.RData")

I sauvegarde des instructionssavehistory(file = "f.Rhistory")

I bibliotheques contient lesextensions installées.

Formation à R Introduction à R 29

Environnement de travail sous LinuxUn bureau de développement avec R

1. un éditeur de texte2. un terminal avec R

3. des sorties graphiques

Formation à R Introduction à R 30

Environnement de travail sous LinuxUn bureau de développement avec R

1. un éditeur de texte2. un terminal avec R

3. des sorties graphiques

Formation à R Introduction à R 30

Environnement de travail sous LinuxUn bureau de développement avec R

1. un éditeur de texte2. un terminal avec R

3. des sorties graphiques

Formation à R Introduction à R 30

Trouver de l’aide

Depuis R

I help(str) : lance l’aide associée à la commande str,I help.search("factorial") : cherche les commandes

contenant le mot-clé factorial,I help.start() : lance l’aide HTML.

Sur le WebI Le site du CRAN : beaucoup (trop ?) de guides d’utilisations

sont répertoriés (y compris ceux en français),I le site du module en propose une sélection.

À tout momentI la liste des commandes usuelles,I le prof (pas infaillible mais rapide d’accès).

Formation à R Introduction à R 31

PlanIntroduction à R

Avant de démarrer

Installation et premiers contacts

Une session exemple

Formation à R Introduction à R 32

Analyse élémentaire d’un jeu de données

Quelle tête ont les données ? On ouvre avec Emacs :

FIGURE : données baies de vignes 2008/2009

Je remplace tous les _ par du vide (R le comprendra mieux) !Formation à R Introduction à R 33

Rappatriement ILes commandes getwd() et setwd() gèrent le répertoire detravail :> setwd("~/SVN/gao/BaseStatBio/0_IntroductionBaseStat/")

> getwd()

[1] "/Users/tom/SVN/gao/BaseStatBio/0_IntroductionBaseStat"

Les données possèdent un entête et sont délimitées par destabulations :> donnees <- read.delim("mesures_baie_raisin_2008-2009.txt")

Qu’est-ce qui se trouve dorénavant dans mon itinéraire derecherche ?> ls()

[1] "donnees"

> objects()

[1] "donnees"

Formation à R Introduction à R 34

Rappatriement IIQuelle tête ont mes données ?> head(donnees)

Population variete nbre.pepin.baie.2008 poids.pulpe.baie..g..2008

1 CE 1784 1.0 0.89

2 CE 124 1.0 1.14

3 CE 210 1.2 1.26

4 CE 1805 1.2 0.66

5 CE 1303 1.2 0.83

6 CE 284 1.3 0.54

volume.baie..cm3..2008 nbre.pepin.baie.2009 poids.pulpe.baie..g..2009

1 7.70 NA NA

2 8.82 NA NA

3 10.20 NA NA

4 NA NA NA

5 NA NA NA

6 4.61 NA NA

Je les mets dans mon itinéraire de recherche> attach(donnees)

Formation à R Introduction à R 35

Rappatriement III

Les objets suivants sont masques from donnees (position 3):

nbre.pepin.baie.2008, nbre.pepin.baie.2009,

poids.pulpe.baie..g..2008, poids.pulpe.baie..g..2009, Population,

variete, volume.baie..cm3..2008

Les objets suivants sont masques from donnees (position 4):

nbre.pepin.baie.2008, nbre.pepin.baie.2009,

poids.pulpe.baie..g..2008, poids.pulpe.baie..g..2009, Population,

variete, volume.baie..cm3..2008

Formation à R Introduction à R 36

Rappatriement IV

Et les attributs ?> str(donnees)

'data.frame': 245 obs. of 7 variables:

$ Population : Factor w/ 3 levels "CE","CO","TE": 1 1 1 1 1 1 1 1 1 1 ...

$ variete : Factor w/ 245 levels "0Mtp1004","0Mtp1005",..: 113 66 135 116 77 179 91 235 73 51 ...

$ nbre.pepin.baie.2008 : num 1 1 1.2 1.2 1.2 1.3 1.3 1.3 1.3 1.3 ...

$ poids.pulpe.baie..g..2008: num 0.89 1.14 1.26 0.66 0.83 0.54 0.67 0.99 0.93 0.75 ...

$ volume.baie..cm3..2008 : num 7.7 8.82 10.2 NA NA 4.61 5.97 7.65 8.16 8.53 ...

$ nbre.pepin.baie.2009 : num NA NA NA NA NA NA NA NA NA NA ...

$ poids.pulpe.baie..g..2009: num NA NA NA NA NA NA NA NA NA NA ...

Formation à R Introduction à R 37

Troisième partie III

Structures de données

Formation à R Structures de données 38

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 39

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 40

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 41

Vecteurs : définition

Propriétés

I objet le plus élémentaire sous R,I collection d’entités de même nature,I mode (ou type) défini par la nature des entités qui le

composent.

Les modes possibles

1. numérique (numeric),2. caractère (caracter),3. logique (boolean).

Formation à R Structures de données 42

Vecteurs : définition

Propriétés

I objet le plus élémentaire sous R,I collection d’entités de même nature,I mode (ou type) défini par la nature des entités qui le

composent.

Les modes possibles

1. numérique (numeric),2. caractère (caracter),3. logique (boolean).

Formation à R Structures de données 42

Vecteurs : définition

Propriétés

I objet le plus élémentaire sous R,I collection d’entités de même nature,I mode (ou type) défini par la nature des entités qui le

composent.

Les modes possibles

1. numérique (numeric),2. caractère (caracter),3. logique (boolean).

Formation à R Structures de données 42

Quelques vecteurs typés

1. Numérique> x0 <- 0

> x1 <- c(-1,23,98.7)

> mode(x0)

[1] "numeric"

2. Caractère> y0 <- "bonjour"

> y1 <- c("Pomme","Flore","Alexandre")

> mode(y1)

[1] "character"

3. Logique> z0 <- TRUE

> z1 <- c(FALSE,TRUE,FALSE,TRUE,TRUE)

> z2 <- c(T,F,F)

> mode(z2)

[1] "logical"

Formation à R Structures de données 43

Remarques sur l’affectation

Définition (affectation)C’est l’opération qui consiste à attribuer une valeur à unevariable.En R, plusieurs choix sont possibles :I l’opérateur usuel est ’<-’ (signe inférieur suivi du signe

moins)> jo <- "l'indien"> jo

[1] "l'indien"I l’opérateur ’=’ peut être utilisé la plupart du temps

> nb.max.d.annees.pour.faire.une.these = 3

> nb.max.d.annees.pour.faire.une.these

[1] 3

I la commande assign permet cette opération (d’oùl’anglicisme assignation)> assign("x", c(8,9,-pi,sqrt(2)))

> x

[1] 8.000000 9.000000 -3.141593 1.414214

Formation à R Structures de données 44

Valeurs spéciales

Variables réservées par R

I NA est le code R pour les valeurs manquantes (absentes desdonnées),

I NaN est le code de R pour signifier un résultat numériqueaberrant ,

I Inf et -Inf sont les valeurs réservées pour plus et moins∞,I NULL est l’objet nul.

> c(4,2,NA,5)

[1] 4 2 NA 5

> 0/0

[1] NaN

> 1/0

[1] Inf

> names(1)

NULL

Formation à R Structures de données 45

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 46

Opérations arithmétiquess’effectuent terme-à-terme

Soient x,y tels que> x<-c(1,2,-3,-4)

> y<-c(-5,-6,9,0)

’+’ addition des éléments de deux vecteurs> x+y

[1] -4 -4 6 -4

’-’ soustraction des éléments de deux vecteurs> x-y

[1] 6 8 -12 -4

’*’ multiplication des éléments de deux vecteurs> x*y

[1] -5 -12 -27 0

’/’ division des éléments de deux vecteurs> x/y

[1] -0.2000000 -0.3333333 -0.3333333 -Inf

Formation à R Structures de données 47

Le « recyclage » des éléments du vecteur

Lors d’une opération entre vecteurs, les vecteurs trop courtssont ajustés pour atteindre la taille du plus grand vecteur enrecyclant les données.

Exemple

> x <- c(10,100,1000)

> y <- c(1,2)

> 2*x + y - 1

[1] 20 201 2000

souvent pratique mais attention aux effets de bords !

Formation à R Structures de données 48

Opérateurs mathématiques I

Fonctions numériques élémentairesfloor,ceiling,round.

> floor(2/3)

[1] 0

> ceiling(2/3)

[1] 1

> round(2/3,3)

[1] 0.667

Fonctions arithmétiques élémentaires^,%%,%/%,abs,log,exp,log10,sqrt,cos,tan,sin. . . s’appliquenttoutes terme-à-terme.

> log10(c(10,100,1000))

Formation à R Structures de données 49

Opérateurs mathématiques II

[1] 1 2 3

> cos(c(pi/2,pi))^2 + sin(c(pi/2,pi))^2

[1] 1 1

Fonctions caractérisant un vecteurprod, sum, max, min, range, which.min, which.max, length

> x <- c(-8,1.5,3)

> prod(x)

[1] -36

> sum(x)

[1] -3.5

> length(x)

[1] 3

> max(x)

Formation à R Structures de données 50

Opérateurs mathématiques III

[1] 3

> min(x)

[1] -8

> range(x)

[1] -8 3

> which.max(x)

[1] 3

> which.min(x)

[1] 1

Pour le minimum / maximum terme-à-terme : pmin,pmax.

Fonctions appliquées le long du vecteurcumsum, cumprod, cummin, cummax

Formation à R Structures de données 51

Opérateurs mathématiques IV

> x <- c(-2,1,-3,2)

> cumprod(x)

[1] -2 -2 6 12

> cumsum(x)

[1] -2 -1 -4 -2

> cummax(x)

[1] -2 1 1 2

> cummin(x)

[1] -2 -2 -3 -3

Formation à R Structures de données 52

Opérateurs ensemblistes

Fonctionnent pour tous les modesunique,intersect,union,setdiff,setequal,is.element

> unique(c("banane","citron","banane"))

[1] "banane" "citron"

> intersect(c("banane","citron"),c("orange","banane"))

[1] "banane"

> union(c("banane","citron"),c("orange","banane"))

[1] "banane" "citron" "orange"

> setequal(c("banane","citron"),c("orange","banane"))

[1] FALSE

> is.element(1,sample(c(1,2,3),2))

[1] TRUE

Formation à R Structures de données 53

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 54

L’opérateur ’:’

from:toGénère une séquence par pas de un depuis le nombre from

jusqu’à to (si possible).

> -5:5

[1] -5 -4 -3 -2 -1 0 1 2 3 4 5

> 5:-5

[1] 5 4 3 2 1 0 -1 -2 -3 -4 -5

> pi:6

[1] 3.141593 4.141593 5.141593

> 1:6/2

[1] 0.5 1.0 1.5 2.0 2.5 3.0

> 1:(6/2)

[1] 1 2 3

Formation à R Structures de données 55

La commande seq

Plusieurs schémas possibles

I seq(from,to)

I seq(from,to,by=)

I seq(from,to,length.out=)

> seq(1,10)

[1] 1 2 3 4 5 6 7 8 9 10

> seq(2,10,by=2)

[1] 2 4 6 8 10

> seq(2,10,length.out=6)

[1] 2.0 3.6 5.2 6.8 8.4 10.0

Formation à R Structures de données 56

La commande rep

Fonctionne pour tous les modes

I rep(x,times), où times peut être un vecteur,I rep(x,each).

> rep(1,3)

[1] 1 1 1

> rep("Mercy",3)

[1] "Mercy" "Mercy" "Mercy"

> rep(c("A","B","C"),c(3,2,4))

[1] "A" "A" "A" "B" "B" "C" "C" "C" "C"

> rep(c(TRUE,FALSE), each=2)

[1] TRUE TRUE FALSE FALSE

Formation à R Structures de données 57

Génération de vecteurs logiques

Obtenus par conditions avec

I les opérateurs logiques ’<’, ’<=’, ’>’, ’>=’, ’==’ ’!=’

I le ET, le OU, NON, OU exclusif : ’&’ (intersection), ’|’(union), ’!’ (négation), xor.

> note1 <- c(8,9,14,3,17.5,11)

> note2 <- c("C","B","A","B","E","B")

> admis <- (note1 >= 10) & (note2 == "A" | note2 == "B")

> mention <- (note1 >= 15) & (note2 == "A")

> admis

[1] FALSE FALSE TRUE FALSE FALSE TRUE

> sum(admis)

[1] 2

> sum(mention)

[1] 0

Formation à R Structures de données 58

Par concaténation

Avec ’c()’

L’opérateur ’c()’ peut s’appliquer à n’importe quoi pourvuque l’on concatène des vecteurs de même type.

> c( c(1,2), c(3,4))

[1] 1 2 3 4

> round(c(seq(-pi,pi,len=4),rep(c(1:3),each=2),0),2)

[1] -3.14 -1.05 1.05 3.14 1.00 1.00 2.00 2.00 3.00 3.00 0.00

RemarqueDans le second exemple, les entiers composants c(1:3) ont étéforcés au typage flottant.

Formation à R Structures de données 59

Par concaténation II

Avec paste

Concaténation de chaînes de caractères. Convertit encaractères les éléments passés en argument avant touteopération.

> paste("R","c'est","bien")

[1] "R c'est bien"

> paste(2:4,"ieme")

[1] "2 ieme" "3 ieme" "4 ieme"

> paste("A",1:5, sep="")

[1] "A1" "A2" "A3" "A4" "A5"

> paste("A",1:5, sep="",collapse="")

[1] "A1A2A3A4A5"

Formation à R Structures de données 60

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 61

Indexation des vecteursCe que je préfère avec R

Principe

I Permet la sélection d’un sous-ensemble du vecteur x.I Le sous-ensemble est spécifié entre crochets x[subset].

L’objet subset peut prendre 4 types différents :1. un vecteur logique, qui doit être de la même taille que le

vecteur x ;2. un vecteur numérique aux composantes positives, qui

spécifie les valeurs à inclure ;3. un vecteur numérique aux composantes négatives, qui

spécifie les valeurs à exclure ;4. un vecteur de chaînes de caractères, qui spécifie les noms

des éléments de x à conserver.

Formation à R Structures de données 62

Indexation des vecteursCe que je préfère avec R

Principe

I Permet la sélection d’un sous-ensemble du vecteur x.I Le sous-ensemble est spécifié entre crochets x[subset].

L’objet subset peut prendre 4 types différents :1. un vecteur logique, qui doit être de la même taille que le

vecteur x ;2. un vecteur numérique aux composantes positives, qui

spécifie les valeurs à inclure ;3. un vecteur numérique aux composantes négatives, qui

spécifie les valeurs à exclure ;4. un vecteur de chaînes de caractères, qui spécifie les noms

des éléments de x à conserver.

Formation à R Structures de données 62

Indexation des vecteursCe que je préfère avec R

Principe

I Permet la sélection d’un sous-ensemble du vecteur x.I Le sous-ensemble est spécifié entre crochets x[subset].

L’objet subset peut prendre 4 types différents :1. un vecteur logique, qui doit être de la même taille que le

vecteur x ;2. un vecteur numérique aux composantes positives, qui

spécifie les valeurs à inclure ;3. un vecteur numérique aux composantes négatives, qui

spécifie les valeurs à exclure ;4. un vecteur de chaînes de caractères, qui spécifie les noms

des éléments de x à conserver.

Formation à R Structures de données 62

Indexation des vecteursCe que je préfère avec R

Principe

I Permet la sélection d’un sous-ensemble du vecteur x.I Le sous-ensemble est spécifié entre crochets x[subset].

L’objet subset peut prendre 4 types différents :1. un vecteur logique, qui doit être de la même taille que le

vecteur x ;2. un vecteur numérique aux composantes positives, qui

spécifie les valeurs à inclure ;3. un vecteur numérique aux composantes négatives, qui

spécifie les valeurs à exclure ;4. un vecteur de chaînes de caractères, qui spécifie les noms

des éléments de x à conserver.

Formation à R Structures de données 62

Indexation des vecteursCe que je préfère avec R

Principe

I Permet la sélection d’un sous-ensemble du vecteur x.I Le sous-ensemble est spécifié entre crochets x[subset].

L’objet subset peut prendre 4 types différents :1. un vecteur logique, qui doit être de la même taille que le

vecteur x ;2. un vecteur numérique aux composantes positives, qui

spécifie les valeurs à inclure ;3. un vecteur numérique aux composantes négatives, qui

spécifie les valeurs à exclure ;4. un vecteur de chaînes de caractères, qui spécifie les noms

des éléments de x à conserver.

Formation à R Structures de données 62

Indexation des vecteurs : exemples I

Vecteurs logiques

> x <- c(3,6,-2,9,NA,sin(-pi/6))

> x[x > 0]

[1] 3 6 9 NA

> x[!is.na(x)]

[1] 3.0 6.0 -2.0 9.0 -0.5

> x[!is.na(x) & x>0]

[1] 3 6 9

> mean(x,na.rm=TRUE)

[1] 3.1

> x[x <= mean(x,na.rm=TRUE)]

[1] 3.0 -2.0 NA -0.5

Formation à R Structures de données 63

Indexation des vecteurs : exemples II

Vecteurs aux composantes positives ou négatives

> x

[1] 3.0 6.0 -2.0 9.0 NA -0.5

> x[2]

[1] 6

> x[1:5]

[1] 3 6 -2 9 NA

> x[-c(1,5)]

[1] 6.0 -2.0 9.0 -0.5

> x[-(1:5)]

[1] -0.5

Formation à R Structures de données 64

Indexation des vecteurs : exemples III

Vecteurs de chaînes de caractères> names(x) <- c("var1","var2","var3","var4","var5","var6")

> x

var1 var2 var3 var4 var5 var6

3.0 6.0 -2.0 9.0 NA -0.5

> x[c("var1","var3")]

var1 var3

3 -2

Formation à R Structures de données 65

Autres commandes d’indexation et de sélection

1. ClasserI sort renvoie le vecteur classé par ordre croissant ou

décroissant,I order renvoie les indices d’ordre des éléments par ordre

croissant ou décroissant,

2. ExtraireI which renvoie les indices de x vérifiant une condition ;

3. ÉchantillonnerI sample échantillonne aléatoirement dans un vecteur x, avec

ou sans remise.

Formation à R Structures de données 66

Autres commandes d’indexation et de sélection

1. ClasserI sort renvoie le vecteur classé par ordre croissant ou

décroissant,I order renvoie les indices d’ordre des éléments par ordre

croissant ou décroissant,

2. ExtraireI which renvoie les indices de x vérifiant une condition ;

3. ÉchantillonnerI sample échantillonne aléatoirement dans un vecteur x, avec

ou sans remise.

Formation à R Structures de données 66

Autres commandes d’indexation et de sélection

1. ClasserI sort renvoie le vecteur classé par ordre croissant ou

décroissant,I order renvoie les indices d’ordre des éléments par ordre

croissant ou décroissant,

2. ExtraireI which renvoie les indices de x vérifiant une condition ;

3. ÉchantillonnerI sample échantillonne aléatoirement dans un vecteur x, avec

ou sans remise.

Formation à R Structures de données 66

Exemples

> x <- -5:5

> y <- sample(x)

> sort(y)

[1] -5 -4 -3 -2 -1 0 1 2 3 4 5

> order(y)

[1] 1 3 11 5 2 10 8 9 7 6 4

> y[order(y)]

[1] -5 -4 -3 -2 -1 0 1 2 3 4 5

> y[order(y,decreasing=TRUE)]

[1] 5 4 3 2 1 0 -1 -2 -3 -4 -5

> which(sample(x,4) > 0)

[1] 3

Formation à R Structures de données 67

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 68

Définition

DéfinitionUn facteur est un vecteur de variables catégorielles. Lesniveaux du facteur peuvent être ordonnés ou pas.

Utilisationles facteurs s’utilisent pour catégoriser les données d’unvecteur (ce qui s’avère très utile pour la gestion des variablesqualitatives).

un facteur est souvent associé à d’autres vecteurs pour endéfinir une partition.

Formation à R Structures de données 69

Définition

DéfinitionUn facteur est un vecteur de variables catégorielles. Lesniveaux du facteur peuvent être ordonnés ou pas.

Utilisationles facteurs s’utilisent pour catégoriser les données d’unvecteur (ce qui s’avère très utile pour la gestion des variablesqualitatives).

un facteur est souvent associé à d’autres vecteurs pour endéfinir une partition.

Formation à R Structures de données 69

Définition

DéfinitionUn facteur est un vecteur de variables catégorielles. Lesniveaux du facteur peuvent être ordonnés ou pas.

Utilisationles facteurs s’utilisent pour catégoriser les données d’unvecteur (ce qui s’avère très utile pour la gestion des variablesqualitatives).

un facteur est souvent associé à d’autres vecteurs pour endéfinir une partition.

Formation à R Structures de données 69

Création, manipulation

Création : la fonction factor

> factor(sample(1:3,10,replace=TRUE))

[1] 1 1 2 3 1 2 2 2 3 1

Levels: 1 2 3

> factor(sample(1:3,10,replace=TRUE),levels=1:5)

[1] 2 2 1 3 2 3 3 1 1 2

Levels: 1 2 3 4 5

Gestion : nlevels,levels,table> x <- factor(sample(c("thesard","CR","MdC"),15,replace=TRUE))

> cat(nlevels(x),"niveaux:",levels(x))

3 niveaux: CR MdC thesard

> table(x)

x

CR MdC thesard

4 5 6

Formation à R Structures de données 70

Un exemple de facteur associé à un vecteurUn exemple de facteur associé à un vecteur

DonnéesChacun me donne son âge et son grade 1

> age <- c(25,35,32,27,32,40,26,25,26,28,30,NA,36,30,30)

> grd <- c("thd","CR","MdC","thd","thd","MdC","MdC","thd","thd","MdC","CR","MdC","CR","thd","thd")

Question : nombre d’individus par catégorie ?

> table(grd)

grd

CR MdC thd

3 5 7

1. sauf un qui refuse :’(Formation à R Structures de données 71

La fonction tapplyUn autre point fort de R

UtilisationApplique une fonction sur un vecteur partitionné en groupes.

Question : âge moyen / écart-type par catégorie ?

> tapply(age,grd,mean,na.rm=TRUE)

CR MdC thd

33.66667 31.50000 27.85714

> tapply(age,grd,sd,na.rm=TRUE)

CR MdC thd

3.214550 6.191392 2.794553

Formation à R Structures de données 72

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 73

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 74

Tableau : définition

Définition (objet array)Un tableau est un vecteur muni d’un attribut dimension (dim), luimême défini par un vecteur. Il est défini par la commandearray(data,dim,dimnames=)

> array(1:8,c(2,2,2))

, , 1

[,1] [,2]

[1,] 1 3

[2,] 2 4

, , 2

[,1] [,2]

[1,] 5 7

[2,] 6 8

Formation à R Structures de données 75

Matrice : définition

Définition (objet matrix)Une matrice est un tableau à deux dimensions. Elle est définiepar la commandematrix(data,nrow=,ncol=,byrow)

En conséquenceI Un objet array à deux dimensions est automatiquement

converti en matrix

I Un vecteur auquel on ajoute un atribut dimension estautomatiquement converti en matrix

> class(array(1:4,c(2,2)))

[1] "matrix"

> x <- c(1,2,3,4)

> dim(x) <- c(2,2)

> class(x)

[1] "matrix"

Formation à R Structures de données 76

Remarques importantes

1. R range les éléments d’une matrice par défaut parcolonne.> matrix(1:6,nrow=2)

[,1] [,2] [,3]

[1,] 1 3 5

[2,] 2 4 6

> matrix(1:6,nrow=2,byrow=TRUE)

[,1] [,2] [,3]

[1,] 1 2 3

[2,] 4 5 6

2. Lors de la création d’une matrice, R recycle les élémentsjusqu’à ce que les contraintes de dimension soient vérifiées.> matrix(1:3,nrow=2,ncol=2)

[,1] [,2]

[1,] 1 3

[2,] 2 1

Formation à R Structures de données 77

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 78

Matrices : opérateurs élémentaires

Étant donné qu’une matrice est un vecteur pourvu d’unedimension, on a la proposition suivante :

PropositionLa plupart des opérateurs vectorielles s’appliquent(arithmétiques/mathématiques, ensemblistes, d’indexation).> a <- matrix(sample(-4:4,9),3,3)

> cat(max(a),sum(a),prod(a))

4 0 0

> which(a > 0)

[1] 3 4 5 8

> cumsum(a[a > 0])

[1] 1 5 8 10

> order(a)

[1] 9 6 2 1 7 3 8 5 4

> round(exp(a),4)

[,1] [,2] [,3]

[1,] 0.3679 54.5982 1.0000

[2,] 0.1353 20.0855 7.3891

[3,] 2.7183 0.0498 0.0183

Formation à R Structures de données 79

Manipulation de matrices

Opérateurs matriciels usuels

I +,/,*,^ sont les opérateurs usuels terme-à-terme,I %*% est le produit matriciel,I crossprod() est le produit scalaire,I t() transpose une matrice,I diag() extrait / spécifie la diagonale.

> a <- matrix(sample(-4:4,9),3,3)

> b <- matrix(sample(a),3,3)

> diag(a)

[1] 4 -1 0

> diag(a) <- diag(b) <- 1

> diag(a)

[1] 1 1 1

> a + t(b) %*% b

[,1] [,2] [,3]

[1,] 15 -10 -5

[2,] -5 34 -1

[3,] 1 -5 12

Formation à R Structures de données 80

Concaténation de matrices

Trois fonctions selon l’effet voulu :

1. c() concatène les éléments de plusieurs matrices en unvecteur,

2. cbind() empile horizontalement plusieurs matrices,3. rbind() empile verticalement plusieurs matrices.

> a <- matrix(1,2,3)

> b <- matrix(2,2,3)

> c(a,b)

[1] 1 1 1 1 1 1 2 2 2 2 2 2

> cbind(a,b)

[,1] [,2] [,3] [,4] [,5] [,6]

[1,] 1 1 1 2 2 2

[2,] 1 1 1 2 2 2

> rbind(a,b)

[,1] [,2] [,3]

[1,] 1 1 1

[2,] 1 1 1

[3,] 2 2 2

[4,] 2 2 2

Formation à R Structures de données 81

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 82

Algèbre linéaire élémentaire

Résolution de systèmes linéaires, inversion matricielleLa commande solve résout

Ax = b,

> A <- matrix(c(4,2,8,-3),2,2)

> b <- c(2,3)

> solve(A,b)

[1] 1.0714286 -0.2857143

ou inverse une matrice :> round(solve(A) %*% A,8)

[,1] [,2]

[1,] 1 0

[2,] 0 1

Formation à R Structures de données 83

Commandes avancées d’algèbre linéaireUtile pour l’analyse numérique

R dispose des outils classiques d’algèbre linéaire

I det : calcule le déterminant d’une matrice ;I chol : factorisation de Cholesky (A = C ᵀC , avec A

symétrique, C triangulaire supérieure) ;I qr : factorisation QR (A = QR avec Q orthogonale, R

triangulaire supérieure) ;I eigen : calcule valeurs propres et vecteurs propres d’une

matrice ;I svd : calcule la décomposition en valeurs singulières.I . . .

Formation à R Structures de données 84

PlanStructures de données

VecteursLes modes ou typagesOpérations élémentairesGénération de vecteursManipulation de vecteurs

Facteurs

Matrices (et tableaux)Définition, créationManipulation de matricesOpérateurs d’algèbre linéaire

Listes et Tableaux de données

Formation à R Structures de données 85

Liste : définition

Définition (objet list)Une liste est une collection d’objets hétérogènes. Elle estdéfinie par la commande list(el1=, el2=, ...). Les élémentsd’une liste peuvent posséder un nom.> list(c(1,2,3),c("robert","johnson"),matrix(rnorm(4),2,2))

[[1]]

[1] 1 2 3

[[2]]

[1] "robert" "johnson"

[[3]]

[,1] [,2]

[1,] 1.3934589 0.4581159

[2,] 0.7934216 -0.8848944

> list(numero = c(1,2,3), noms = c("robert","johnson"), mat = matrix(rnorm(4),2,2))

$numero

[1] 1 2 3

$noms

[1] "robert" "johnson"

$mat

[,1] [,2]

[1,] -1.925150 0.5999631

[2,] -1.764114 0.1307384

Formation à R Structures de données 86

Accéder aux éléments

Deux situations

1. Les éléments de la liste ne sont pas nommés : on accèdeau ie élément par indexation nom_liste[[i]] uniquement.

2. Les éléments de la liste sont nommés : on peut y accédercomme ci-dessus ou en utilisant le nom de l’élémentnom_liste$nom_elt.

> maliste <- list(numero = c(1,2,3), noms = c("robert","johnson"), mat = matrix(rnorm(4),2,2))

> maliste$nom

[1] "robert" "johnson"

> maliste$nom[2]

[1] "johnson"

> maliste[[2]]

[1] "robert" "johnson"

> maliste[[2]][2]

[1] "johnson"

Formation à R Structures de données 87

Manipulation de listes I

Sélectionner des élémentsFonctionne (presque) comme pour les vecteurs

> l1 <- list(1:2,c("a","c","g","t"))

> l1[[-2]]

[1] 1 2

Commande lapply

Applique une fonction à chaque élément d’une liste

> lapply(maliste,length)

$numero

[1] 3

$noms

[1] 2

$mat

[1] 4

Formation à R Structures de données 88

Manipulation de listes II

Commande c()Permet de concaténer deux listes.

> c(list(1:2,c("a","c","g","t")),list(rnorm(3),"yop"))

[[1]]

[1] 1 2

[[2]]

[1] "a" "c" "g" "t"

[[3]]

[1] 0.6874990 1.2186725 -0.9696582

[[4]]

[1] "yop"

Formation à R Structures de données 89

Tableau de données : définitionUn autre point fort de R

Définition (objet data.frame)C’est une liste à laquelle on impose certaines contraintes 2, afinde rassembler vecteurs et facteurs sous la forme d’un tableaude données.

I Pratiquement, un tableau de données est une matricedont les colonnes sont de mode différent,

I C’est l’objet idéal pour la manipulation de données(forcez-vous à l’utiliser).

2. que je vous épargneFormation à R Structures de données 90

Tableau de données : définitionUn autre point fort de R

Définition (objet data.frame)C’est une liste à laquelle on impose certaines contraintes 2, afinde rassembler vecteurs et facteurs sous la forme d’un tableaude données.

I Pratiquement, un tableau de données est une matricedont les colonnes sont de mode différent,

I C’est l’objet idéal pour la manipulation de données(forcez-vous à l’utiliser).

2. que je vous épargneFormation à R Structures de données 90

Création de tableau de données

SyntaxeOn peut spécifier le nom des colonnes par le vecteur row.namesou directement comme pour une liste :data.frame(e1=,e2=,...,row.names=)

> age <- c(25,35,32,27,32,40,26,25,26,28,30,NA,36,30,30)

> grd <- c("thd","CR","MdC","thd","thd","MdC","MdC","thd","thd","MdC","CR","MdC","CR","thd","thd")

> sex <- factor(sample(c(rep("M",3),rep("F",12))))

> donnees <- data.frame(age=age,grade=grd,sexe=sex)

> head(donnees)

age grade sexe

1 25 thd F

2 35 CR F

3 32 MdC F

4 27 thd F

5 32 thd M

6 40 MdC F

Formation à R Structures de données 91

Manipulation des éléments du tableau dedonnées

I Comme une liste !I les commandes attach() / detach placent / ôtent les

éléments du tableaux de données dans l’itinéraire derecherche.

> donnees$age

[1] 25 35 32 27 32 40 26 25 26 28 30 NA 36 30 30

> attach(donnees,warn.conflicts=FALSE)

> grade

[1] thd CR MdC thd thd MdC MdC thd thd MdC CR MdC CR thd thd

Levels: CR MdC thd

> detach(donnees)

Formation à R Structures de données 92

Travailler avec les tableaux de données

I beaucoup de fonctions prédéfiniesI penser aux fonctions tapply (ou by)

> summary(donnees)

age grade sexe

Min. :25.00 CR :3 F:12

1st Qu.:26.25 MdC:5 M: 3

Median :30.00 thd:7

Mean :30.14

3rd Qu.:32.00

Max. :40.00

NA's :1

> attach(donnees,warn.conflicts=FALSE)

> by(age,sexe,mean,na.rm=TRUE)

sexe: F

[1] 29.45455

------------------------------------------------------------

sexe: M

[1] 32.66667

> by(age,grade,mean,na.rm=TRUE)

grade: CR

[1] 33.66667

------------------------------------------------------------

grade: MdC

[1] 31.5

------------------------------------------------------------

grade: thd

[1] 27.85714

> detach(donnees)

Formation à R Structures de données 93

Quatrième partie IV

Développer avec R

Formation à R Développer avec R 94

PlanDévelopper avec R

Structures de contrôle

Les fonctions

Les packages

Le module Sweave

Formation à R Développer avec R 95

Programmer en pratique : rappels

1. un éditeur de texte (vos fonctions / scripts)2. un terminal avec R (tester, « sourcer »)

« Sourcer »source("un_script.R") : exécute la série de commandes demon_script.R

source("mes_fonctions.R") : charge le contenu (les fonctions)de mes_fonctions.R

Formation à R Développer avec R 96

Programmer en pratique : rappels

1. un éditeur de texte (vos fonctions / scripts)2. un terminal avec R (tester, « sourcer »)

« Sourcer »source("un_script.R") : exécute la série de commandes demon_script.R

source("mes_fonctions.R") : charge le contenu (les fonctions)de mes_fonctions.R

Formation à R Développer avec R 96

Programmer en pratique : rappels

1. un éditeur de texte (vos fonctions / scripts)2. un terminal avec R (tester, « sourcer »)

« Sourcer »source("un_script.R") : exécute la série de commandes demon_script.R

source("mes_fonctions.R") : charge le contenu (les fonctions)de mes_fonctions.R

Formation à R Développer avec R 96

PlanDévelopper avec R

Structures de contrôle

Les fonctions

Les packages

Le module Sweave

Formation à R Développer avec R 97

Regrouper les expressions

Syntaxe

{expr_1; expr_2; ...; expr_n }

ou

{

expr_1

...

expr_n

}

Remarques sur les groupes

I La dernière valeur du groupe est retournée ;I un groupe d’expressions peut être passé à une fonction,

réutilisé dans une expression plus grande, etc.

Formation à R Développer avec R 98

Exécution conditionnelle : if,if/else,ifelse

Syntaxe

if (condition) {

expr_1

} else {

expr_2

}

ou

ifelse(condition, a, b)

Remarques

I condition est une valeur logique : penser à &,|,!, . . .I le else est optionnel,I elseif permet d’imbriquer les conditionnements.

Formation à R Développer avec R 99

Exécution répétée : boucle for

Syntaxe

for (var in set) {

expr(var)

}

ou

for (var in set)

expr(var)

à fuir pour éviter les effets de bords sournois !

Remarques sur la boucle for

I var est la variable incrémentée,I set est un vecteur définissant les valeurs successives,I lente comparée aux opérateurs matriciels.

Formation à R Développer avec R 100

Exécution répétée : boucles while et repeat

Syntaxe

while (condition) {

expr

}

ou

repeat {

expr

}

Remarque

I Comme pour for, éviter les imbrications sources de lenteur.

Formation à R Développer avec R 101

Contrôle des boucles : break, next

Exemples d’utilisation

repeat {

expr

if (condition) {break}

}

ou

while (condition1){

expr_1

if (condition2) {next}

expr_2

}

Remarque

I break est la seule manière d’interrompre une bouclerepeat.

Formation à R Développer avec R 102

PlanDévelopper avec R

Structures de contrôle

Les fonctions

Les packages

Le module Sweave

Formation à R Développer avec R 103

Définir une fonction

Syntaxe

nom_de_la_fonction <- function(arg1,arg2, ...) {

expression

return(var)

}

Remarques

I return peut être omis (à éviter) : dans ce cas la dernièrevaleur calculée est renvoyée.

I peut être tapée directement dans l’interpréteur ou dansun fichier externe functions.R, chargé par source.

Formation à R Développer avec R 104

Un exemple simple

Moyenne empirique d’un vecteurAvec suppression des valeurs manquantes !

> moyenne <- function(x) {

+ ## suppression des valeurs manquantes

+ x.not.na <- x[!is.na(x)]

+ ## moyenne empirique

+ resultat <- sum(x.not.na) / length(x.not.na)

+

+ return(resultat)

+ }

Tests> moyenne(rnorm(100))

[1] 0.04183799

> moyenne(c(1,-5,3,NA,8.7))

[1] 1.925

Formation à R Développer avec R 105

Les arguments, leurs valeurs par défautEncore un point fort de R

Propriétés

I les arguments peuvent être passés dans le désordre s’ilssont nommés : var=object,

I on peut définir une valeur par défaut pour n’importe quelargument lors de la définition de la fonction : var=10.

I en cas de sorties multiples, les sorties doivent êtrerenvoyées sous forme de liste.

Remarques

I Les valeurs par défaut rendent la lecture des fonctionsbeaucoup plus aisée pour l’utilisateur : imposer peud’arguments obligatoires.

I Les noms des éléments de la liste définie dans la fonctionsont conservés à l’extérieur de la fonction.

Formation à R Développer avec R 106

Les arguments, leurs valeurs par défautEncore un point fort de R

Propriétés

I les arguments peuvent être passés dans le désordre s’ilssont nommés : var=object,

I on peut définir une valeur par défaut pour n’importe quelargument lors de la définition de la fonction : var=10.

I en cas de sorties multiples, les sorties doivent êtrerenvoyées sous forme de liste.

Remarques

I Les valeurs par défaut rendent la lecture des fonctionsbeaucoup plus aisée pour l’utilisateur : imposer peud’arguments obligatoires.

I Les noms des éléments de la liste définie dans la fonctionsont conservés à l’extérieur de la fonction.

Formation à R Développer avec R 106

Les arguments, leurs valeurs par défautEncore un point fort de R

Propriétés

I les arguments peuvent être passés dans le désordre s’ilssont nommés : var=object,

I on peut définir une valeur par défaut pour n’importe quelargument lors de la définition de la fonction : var=10.

I en cas de sorties multiples, les sorties doivent êtrerenvoyées sous forme de liste.

Remarques

I Les valeurs par défaut rendent la lecture des fonctionsbeaucoup plus aisée pour l’utilisateur : imposer peud’arguments obligatoires.

I Les noms des éléments de la liste définie dans la fonctionsont conservés à l’extérieur de la fonction.

Formation à R Développer avec R 106

Les arguments, leurs valeurs par défautEncore un point fort de R

Propriétés

I les arguments peuvent être passés dans le désordre s’ilssont nommés : var=object,

I on peut définir une valeur par défaut pour n’importe quelargument lors de la définition de la fonction : var=10.

I en cas de sorties multiples, les sorties doivent êtrerenvoyées sous forme de liste.

Remarques

I Les valeurs par défaut rendent la lecture des fonctionsbeaucoup plus aisée pour l’utilisateur : imposer peud’arguments obligatoires.

I Les noms des éléments de la liste définie dans la fonctionsont conservés à l’extérieur de la fonction.

Formation à R Développer avec R 106

Un exemple (un tout petit peu) plus avancé

Résumé numérique d’un vecteur

> resume <- function(x,na.rm=TRUE,affiche=FALSE) {

+ mu <- mean(x,na.rm=na.rm)

+ s2 <- var(x,na.rm=na.rm)

+ if (affiche) {

+ cat("\nMoyenne:",mu,"et variance:",s2)

+ }

+ return(list(moyenne = mu, variance = s2))

+ }

> out <- resume(rnorm(100))

> out$variance

[1] 0.861812

> out <- resume(affiche=TRUE,x=rexp(100,0.5))

Moyenne: 2.060797 et variance: 3.115734

Formation à R Développer avec R 107

PlanDévelopper avec R

Structures de contrôle

Les fonctions

Les packages

Le module Sweave

Formation à R Développer avec R 108

Motivations : reproductibilité de la recherche

Principe de Claerbout (Géophysicien, Stanford)An article about computational science in a scientificpublication is not the scholarship itself, it is merely advertising ofthe scholarship. The actual scholarship is the complete softwaredevelopment environment and the complete set of instructionswhich generated the figures.

Démarche

1. Proposer une méthode et exposer dans un article sespropriétés,

2. Écrire et déposer un package sur CRAN,3. Publier un article dans « journal of statistical software » ou

une note dans « Bioinformatics ».

Formation à R Développer avec R 109

Motivations : reproductibilité de la recherche

Principe de Claerbout (Géophysicien, Stanford)An article about computational science in a scientificpublication is not the scholarship itself, it is merely advertising ofthe scholarship. The actual scholarship is the complete softwaredevelopment environment and the complete set of instructionswhich generated the figures.

Démarche

1. Proposer une méthode et exposer dans un article sespropriétés,

2. Écrire et déposer un package sur CRAN,3. Publier un article dans « journal of statistical software » ou

une note dans « Bioinformatics ».

Formation à R Développer avec R 109

Simplicité de la création d’un package

Définir un objectifPar exemple, SIMoNe : construire un graphe des interactionssignificatives entre gènes à partir de données du transcriptome.

Organisation type

1. Fichier DESCRIPTION2. Répertoire R : fonctions R (fonction inferGraph(data))3. Répertoire man : documentation des fonctions4. Répertoire data : données5. (Répertoire src : pour les fichiers à compiler, header etc.)

Formation à R Développer avec R 110

PlanDévelopper avec R

Structures de contrôle

Les fonctions

Les packages

Le module Sweave

Formation à R Développer avec R 111

Motivations

Produire un document scientifique, c’est

I expérimenter(pipette + éprouvette + blouse) ou ordi données

I analyser les résultatsméthode + logiciel + données graphes

I rédiger des observationsidée + (bloc-note ou traitement de texte)⇒ texte

I mettre en forme

texte + graphes + traitement de texte⇒ article ,

Formation à R Développer avec R 112

Motivations

Produire un document scientifique, c’est

I expérimenter(pipette + éprouvette + blouse) ou ordi données

I analyser les résultatsméthode + logiciel + données graphes

I rédiger des observationsidée + (bloc-note ou traitement de texte)⇒ texte

I mettre en forme

texte + graphes + traitement de texte⇒ article ,

Formation à R Développer avec R 112

Motivations

Produire un document scientifique, c’est

I expérimenter(pipette + éprouvette + blouse) ou ordi données

I analyser les résultatsméthode + logiciel + données graphes

I rédiger des observationsidée + (bloc-note ou traitement de texte)⇒ texte

I mettre en forme

texte + graphes + traitement de texte⇒ article ,

Formation à R Développer avec R 112

Motivations

Produire un document scientifique, c’est

I expérimenter(pipette + éprouvette + blouse) ou ordi données

I analyser les résultatsméthode + logiciel + données graphes

I rédiger des observationsidée + (bloc-note ou traitement de texte)⇒ texte

I mettre en forme

texte + graphes + traitement de texte⇒ article ,

Formation à R Développer avec R 112

Motivations

Produire un document scientifique, c’est

I expérimenter(pipette + éprouvette + blouse) ou ordi données

I analyser les résultatsméthode + logiciel + données graphes

I rédiger des observationsidée + (bloc-note ou traitement de texte)⇒ texte

I mettre en forme

texte + graphes + traitement de texte⇒ article ,

Formation à R Développer avec R 112

Solutions

1. I analyser : MS ExcelI rédiger : MS WordI mettre en forme : MS Word

2. I analyser : MatLabI rédiger : OpenOfficeI mettre en forme : OpenOffice

3. I analyser : RI rédiger : EmacsI mettre en forme : LATEX

mon opinion a :M

a. de geek très subjective

Le package sweave de LATEX permet de faire appel à du code R

dans le document

Formation à R Développer avec R 113

Solutions

1. I analyser : MS ExcelI rédiger : MS WordI mettre en forme : MS Word

2. I analyser : MatLabI rédiger : OpenOfficeI mettre en forme : OpenOffice

3. I analyser : RI rédiger : EmacsI mettre en forme : LATEX

mon opinion a : /a. de geek très subjective

Le package sweave de LATEX permet de faire appel à du code R

dans le document

Formation à R Développer avec R 113

Solutions

1. I analyser : MS ExcelI rédiger : MS WordI mettre en forme : MS Word

2. I analyser : MatLabI rédiger : OpenOfficeI mettre en forme : OpenOffice

3. I analyser : RI rédiger : EmacsI mettre en forme : LATEX

mon opinion a : ,a. de geek très subjective

Le package sweave de LATEX permet de faire appel à du code R

dans le document

Formation à R Développer avec R 113

Solutions

1. I analyser : MS ExcelI rédiger : MS WordI mettre en forme : MS Word

2. I analyser : MatLabI rédiger : OpenOfficeI mettre en forme : OpenOffice

3. I analyser : RI rédiger : EmacsI mettre en forme : LATEX

mon opinion a : ,a. de geek très subjective

Le package sweave de LATEX permet de faire appel à du code R

dans le document

Formation à R Développer avec R 113

LATEX, un langage à balises

Code latex

\documentclass[a4paper]{article}

\begin{document}

In this example we embed parts of the examples from the

\texttt{kruskal.test} help page into a \LaTeX{} document: ...

\end{document}

Sortie pdfIn this example we embed parts of the examples from thekruskal.test help page into a LATEX document : . . .

Formation à R Développer avec R 114

Le module Sweave IFichier mélange ".rnw"

\documentclass[a4paper]{article}

\begin{document}

In this example we embed parts of the examples from the

\texttt{kruskal.test} help page into a \LaTeX\ document:

<<>>=

data(airquality)

kruskal.test(Ozone ~ Month, data = airquality)

@

which shows that the location parameter of the Ozone

distribution varies significantly from month to month.

Finally we include a boxplot of the data:

<<fig=TRUE,echo=FALSE>>=

boxplot(Ozone ~ Month, data = airquality)

@

\end{document}

Formation à R Développer avec R 115

Le module Sweave IIFichier LATEX ".tex"

\documentclass[a4paper]{article}

\usepackage{Sweave}

\begin{document}

In this example we embed parts of the examples from the

\texttt{kruskal.test} help page into a \LaTeX\ document:

\begin{Sinput}

R> data(airquality)

R> kruskal.test(Ozone ~ Month, data = airquality)

\end{Sinput}

\begin{Soutput}

Kruskal-Wallis rank sum test data: Ozone by Month Kruskal-Wallis

chi-squared = 29.2666, df = 4, p-value = 6.901e-06

\end{Soutput}

which shows that the location parameter of the Ozone

distribution varies significantly from month to month.

Finally we include a boxplot of the data:

\includegraphics{example-1-002}

\end{document}

Formation à R Développer avec R 116

Le module Sweave IIIFichier pdf ".pdf"

In this example we embed parts of the examples from thekruskal.test help page into a LATEX document :

> data(airquality)

> kruskal.test(Ozone ~ Month, data = airquality)

Kruskal-Wallis rank sum test

data: Ozone by Month

Kruskal-Wallis chi-squared = 29.2666, df = 4, p-value = 6.901e-06

which shows that the location parameter of the Ozonedistribution varies significantly from month to month. Finally weinclude a boxplot of the data :

Formation à R Développer avec R 117

Le module Sweave IVFichier pdf ”.pdf”

●●

5 6 7 8 9

050

100

150

Test de Kruskal

FIGURE : Boîtes à moustaches – données Ozone

Formation à R Développer avec R 118

Cinquième partie V

Entrées / Sorties

Formation à R Entrées / Sorties 119

PlanEntrées / Sorties

Charger des données

Les graphiques sous R

Formation à R Entrées / Sorties 120

PlanEntrées / Sorties

Charger des données

Les graphiques sous R

Formation à R Entrées / Sorties 121

Saisir des donnéesAlternative à la concaténation

commande scanUne utilisation élémentaire de scan permet une saisie plusagréable que la saisie directe des éléments d’un vecteur.

> x<-scan()

1: 1

2: 2

3: 3

4: 4

5: 5

6:

Read 5 items

>

> x

[1] 1 2 3 4 5

valable pour les jeux de données d’au plus quelquesdizaines d’éléments. . .

Formation à R Entrées / Sorties 122

Éditer des données

commande editPermet d’éditer des données existantes à l’aide d’unmini-tableur. Utile pour faire de petites modifications.

> new.data <- edit(old.data)

FIGURE : Éditeur Mac OS 10.6 / R 2.10

Formation à R Entrées / Sorties 123

Fichiers binaires

commandes save et loadLa commande save permet de sauvegarder un sous ensembledes données de l’espace de travail dans un fichier binaire ;load permet de les recharger.

> x <- rnorm(125)

> y <- 1 + x + x^2

> save(file="mes_simus",x,y)

> rm(list=ls())

> objects()

character(0)

> load(file="mes_simus")

> objects()

[1] "x" "y"

Formation à R Entrées / Sorties 124

Jeux de données prédéfinies

commande dataR dispose d’une collection de données prédéfinies directementutilisables. La commande data() permet de les lister puis de lescharger.

> data(iris3)

> head(iris3)

[1] 5.1 4.9 4.7 4.6 5.0 5.4

I La description d’un jeu de données est accessible dansl’aide.

I L’installation d’un nouveau package rend souventdisponibles de nouveaux jeux de données accessibles pardata.

Formation à R Entrées / Sorties 125

Lecture de fichiers IMéthodologie

D’abord, un bon éditeur . . . il vous permet de constater leformatage d’un fichier texte et comment en « attaquer »l’importation.

FIGURE : Fichier au formatage "csv"

Formation à R Entrées / Sorties 126

Lecture de fichiers IILa fonction générique

commande read.tableElle permet de lire un fichier formaté sous forme de table.read.table stocke les données sous forme d’objet data.frame.

> mes_donnees<-read.table("mesures_baie_raisin_2008-2009.txt",header=TRUE,sep="\t")

> head(mes_donnees)

Population variete nbre.pepin.baie.2008 poids.pulpe.baie..g..2008

1 CE 1784 1.0 0.89

2 CE 124 1.0 1.14

3 CE 210 1.2 1.26

4 CE 1805 1.2 0.66

5 CE 1303 1.2 0.83

6 CE 284 1.3 0.54

volume.baie..cm3..2008 nbre.pepin.baie.2009 poids.pulpe.baie..g..2009

1 7.70 NA NA

2 8.82 NA NA

3 10.20 NA NA

4 NA NA NA

5 NA NA NA

6 4.61 NA NA

Formation à R Entrées / Sorties 127

Lecture de fichiers IIIread.csv,read.delim

commandes read.csv et read.delimCe sont des raccourcis pour la fonction read.table, spécialisésdans l’importation des données « .csv » (comma-separatedvalue) ou tabulées (le séparateur est la tabulation).

commandes write.table, write.csv et write.delimLa fonction write.table permet d’imprimer les données issuesd’une data.frame dans un fichier texte externe. write.csv etwrite.delim sont des raccourcis pour les données csv outabulée.

Formation à R Entrées / Sorties 128

Pour aller plus loin. . .

Beaucoup de choses sur l’importation des données dans

R Data Import /Export.http://cran.r-project.org/doc/manuals/R-data.pdf

I Exemples avancés avec read.table,I communication avec les bases de données (SQL),I importation de données Excel,I . . .

Formation à R Entrées / Sorties 129

PlanEntrées / Sorties

Charger des données

Les graphiques sous R

Formation à R Entrées / Sorties 130

Paramètres récurrents

Forme génériqueLa plupart des fonctions graphique s’utilisent par un appel dutype

1. nom.function(object, options),2. nom.function(x, y , options).

Parmi les options les plus courantes, on trouve :I type="p" ; spécifie le type de tracé : "p" pour points, "l" pour

lignes, "b" pour points liés par des lignes, "o" pour lignessuperposées aux points. . .

I xlim= ; ylim=, spécifie les limites de axes x et yI xlab= ; ylab=, annotation des axes x et yI main= ; titre du graphe en coursI sub= ; sous-titre du graphe en coursI add=FALSE ; si TRUE superpose le graphe au précédentI axes=TRUE ; si FALSE ne trace pas d’axes

Formation à R Entrées / Sorties 131

Paramètres récurrents

Forme génériqueLa plupart des fonctions graphique s’utilisent par un appel dutype

1. nom.function(object, options),2. nom.function(x, y , options).

Parmi les options les plus courantes, on trouve :I type="p" ; spécifie le type de tracé : "p" pour points, "l" pour

lignes, "b" pour points liés par des lignes, "o" pour lignessuperposées aux points. . .

I xlim= ; ylim=, spécifie les limites de axes x et yI xlab= ; ylab=, annotation des axes x et yI main= ; titre du graphe en coursI sub= ; sous-titre du graphe en coursI add=FALSE ; si TRUE superpose le graphe au précédentI axes=TRUE ; si FALSE ne trace pas d’axes

Formation à R Entrées / Sorties 131

Tracer une fonction numérique I

commande plot

Fonction élémentaire de réprésentation graphique.I plot(vect) représente le graphe des valeurs de vect sur

l’axe des y .I plot(vect1,vect1) représente le graphe des valeurs de

vect2 en fonction de vect1.

Par exemple, avec deux vecteurs :> x <- runif(50,0,2)

> y <- 3 * x + 2 * x^2 + 1 + rnorm(50,sd=1.5)

> plot(x, y, xlab="x-label",ylab="y-label",main="mon premier graphe")

Formation à R Entrées / Sorties 132

Tracer une fonction numérique II

●●

●●

●●

●●

●●

0.0 0.5 1.0 1.5 2.0

02

46

810

12

mon premier graphe

x−label

y−la

bel

FIGURE : La fonction plot

Formation à R Entrées / Sorties 133

Tracer un objet R IToujours avec la commande plot

Beaucoup d’objet R accepte la commande plot ! Enparticulier, les histogrammes :

> mon_histo <- hist(rchisq(1000,df=4),nclass=75)

> plot(mon_histo,main="distribution empirique du Khi-2")

Formation à R Entrées / Sorties 134

Tracer un objet R IIToujours avec la commande plot

Histogram of rchisq(1000, df = 4)

rchisq(1000, df = 4)

Fre

quen

cy

0 5 10 15 20

010

2030

40

FIGURE : Utilisation élémentaire de plot (2)

Formation à R Entrées / Sorties 135

Tracer une fonction symbolique I

commande curveElle permet de tracer une fonction définie par une expressionde x.

> plot(x, y, main="donnees + modele ajuste",

+ xlab="x-label", ylab="y-label")

> a <- coefficients(lm(y~1+x+I(x^2)))

> curve(a[1] + a[2]*x + a[3]*x^2,add=TRUE,col="red")

Formation à R Entrées / Sorties 136

Tracer une fonction symbolique II

●●

●●

●●

●●

●●

0.0 0.5 1.0 1.5 2.0

02

46

810

12

données + modèle ajusté

x−label

y−la

bel

Formation à R Entrées / Sorties 137

Ajouter une légende I

commande legend

Pour ajouter une légende. Attention aux options, asseznombreuses !

> plot(x, y, main="donnees + modele ajuste",

+ xlab="x-label", ylab="y-label")

> a <- coefficients(lm(y~1+x+I(x^2)))

> curve(a[1] + a[2]*x + a[3]*x^2,add=TRUE,col="red")

> legend("bottomright",c("donnees","modele"),lty=c(1,1),col=c("black","red"),bty="n")

Formation à R Entrées / Sorties 138

Ajouter une légende II

●●

●●

●●

●●

●●

0.0 0.5 1.0 1.5 2.0

02

46

810

12

données + modèle ajusté

x−label

y−la

bel

donnéesmodèle

Formation à R Entrées / Sorties 139

Représentation 3D (courbe de niveaux) I

commande contourcontour(x,y,z) permet de tracer des courbes de niveaux : x ety sont des vecteurs et z une matrice telle que les dimensions dez soient length(x),length(y).

> x<-seq(-1,9,length=100)

> y<-seq(-1,7,length=100)

> z<-outer(x,y,function(x,y) 0.3*exp(-0.5*((x-3)^2 +(y -3)^2)) +

+ 0.7*exp(-0.5*((x-6)^2 +(y -4)^2)))

> contour(x,y,z,col="blue4")

Formation à R Entrées / Sorties 140

Représentation 3D (courbe de niveaux) II

0.1

0.2

0.3

0.4 0.5

0 2 4 6 8

02

46

Formation à R Entrées / Sorties 141

Ajout de droites I

commande ablineabline permet d’ajouter à un graphe courantI des droites de décalage a et de coefficient directeur b

avec abline(a,b),I des droites verticales avec abline(v=),I des droites horizontales avec abline(h=).

commandes lines et pointsPour ajouter une courbe ou des points : s’utilisent de manièresimilaire à plot.

Formation à R Entrées / Sorties 142

Ajout de droites II

> contour(x,y,z,col="blue4")

> curve((0.3*dnorm(x,mean=3) + 0.7*dnorm(x,mean=6))*3,-1,9,col="red",ylim=c(-1,7),add=T)

> x<-seq(-1,9,length=100)

> lines((0.5*dnorm(x,mean=3) + 0.5*dnorm(x,mean=4))*3,x,col="red")

> abline(h=0)

> abline(v=0)

Formation à R Entrées / Sorties 143

Ajout de droites III

0.1

0.2

0.3

0.4 0.5

0 2 4 6 8

02

46

Formation à R Entrées / Sorties 144

Graphe en 3D I

commande persp

Fonctionne comme la fonction contour en proposant unereprésentation en perpective.

> persp(x,y,z)

Formation à R Entrées / Sorties 145

Graphe en 3D II

x

y

zFormation à R Entrées / Sorties 146

Rediriger la sortie graphique

Par défaut, R envoie les graphiques sur la sortie écran. Denombreuses

Exportation de graphesSe réalise en encadrant les fonctions graphiques par lescommandes format_export(file="nom_fichier") etdev.off()), où format_fichier peut prendre les valeurspdf,postscrip,png, . . ..

pdf(file="ma\_sortie.pdf")

plot(runif(20),runif(20))

dev.off()

Formation à R Entrées / Sorties 147

Graphes multiples I

Ouverture d’une nouvelle fenêtre graphiqueSe fait, selon les plateformes, avec les commandesI x11()) pour Linux,I quartz() ou x11()) pour Mac OS,I windows().

Découpage d’une fenêtrePlusieurs possibilités :I layout(mat,width=,height=), qui s’utilise en découpant

l’écran via la matrice mat.I par(mfrow=vect) ou par(mfcol=vect) qui découpent en n

lignes et m colonne spécifiées par le vecteur vect. Leremplissage se fait par ligne ou par colonne selon lafonction choisie.

Formation à R Entrées / Sorties 148

Pour aller plus loin

I D’autres fonctions de haut niveau dans la partie dédiéeaux statistiques

I Utiliser la liste des commandes usuelles pour les options etfonctions secondaires,

I La commande par gère les options graphiques,I Consulter le package lattice, extrêmement puissant.

Lattice : Multivariate Data Visualization with R

Deepayan Sarkarhttp://lmdvr.r-forge.r-project.org/

Cette page web propose toutes les figures et tous les codesR correspondant à leur génération !

Formation à R Entrées / Sorties 149

Sixième partie VI

Statistiques descriptives

Formation à R Statistiques descriptives 150

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continue

Représentations multivariées

Formation à R Statistiques descriptives 151

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 152

Observations

Nous considérerons dans un premier temps une seule colonnedu tableau de données, soient n observations :

x1, ..., xn

Formation à R Statistiques descriptives 153

Variable quantitative discrète ou qualitativeordinale

La variable prend ses valeurs dans

Vx = {ε1, ..., εK}

avecε1 < ... < εK

Tableau de fréquence

I εk , la modalitéI nk , l’effectif des observations ayant la valeur εkI fk = nk

n , la fréquenceI Fk =

∑j=1 kfj , la fréquece relative cumulée

Formation à R Statistiques descriptives 154

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 155

Variable qualitative nominale

Même représentation sans l’ordre.Pas de fréquence cumulée.

Formation à R Statistiques descriptives 156

Camembert et diagramme en barres

Couplés à la commande table Le diagramme en barres et legraphe en camembert permettent de visualiser le découpaged’une population en donnée catégorielle.> vigne <- read.delim("mesures_baie_raisin_2008-2009.txt",header=TRUE)

> vigne <- vigne[-c(2,6,7)]

> colnames(vigne) <- c("pop","pepin.08","poids.08","volcm3.08")

> head(vigne)

pop pepin.08 poids.08 volcm3.08

1 CE 1.0 0.89 7.70

2 CE 1.0 1.14 8.82

3 CE 1.2 1.26 10.20

4 CE 1.2 0.66 NA

5 CE 1.2 0.83 NA

6 CE 1.3 0.54 4.61

> attach(vigne)

> par(mfrow=c(1,2))

> pie(table(pop))

> barplot(table(pop),las=3)

CE

CO

TE

CE

CO TE

020

4060

80

FIGURE : Camembert des différentes populations

Formation à R Statistiques descriptives 157

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 158

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 159

Tendance centrale

I Moyenne : x = 1n

∑ni=1 xi

I Remarque : la somme des écarts à la moyenne empiriqueest nulle ∑

i

(xi − x ) = 0

I Inconvénient : problème des valeurs aberrantesI Moyenne tronquée : Mk = 1

n−2k∑n−k

i=k+1 x(i) où x(i) estl’observation de rang i

I Médiane :

M =

{x(n/2) si n est pair,x(bn/2c+1) sinon

I Fractile empirique d’ordre α

fα =

{x(nα) si nα est entier,x(bnαc+1) sinon

Formation à R Statistiques descriptives 160

Indicateurs de dispersion

I la variance empiriqueI la variance empirique corrigéeeI l’étendueI l’étendue interquartile

Formation à R Statistiques descriptives 161

Reprenons l’exemple de la vigne

Renommons les variables et considérons uniquement lesdonnées de 2008 pour une manipulation plus agréable.J’enlève également la colonne « variété », car je ne vois pas àquoi elle sert.> vigne <- read.delim("mesures_baie_raisin_2008-2009.txt",header=TRUE)

> vigne <- vigne[-c(2,6,7)]

> colnames(vigne) <- c("pop","pepin.08","poids.08","volcm3.08")

> head(vigne)

pop pepin.08 poids.08 volcm3.08

1 CE 1.0 0.89 7.70

2 CE 1.0 1.14 8.82

3 CE 1.2 1.26 10.20

4 CE 1.2 0.66 NA

5 CE 1.2 0.83 NA

6 CE 1.3 0.54 4.61

> attach(vigne)

Les objets suivants sont masques from vigne (position 3):

pepin.08, poids.08, pop, volcm3.08

Formation à R Statistiques descriptives 162

Résumé statistiqueCommande summary

Le résumé numérique s’adapte selon la nature des variables(univariée, multivariée, factorielle)> summary(pepin.08)

Min. 1st Qu. Median Mean 3rd Qu. Max. NA's0.00 1.40 1.80 1.86 2.40 3.20 27

> summary(pop)

CE CO TE

84 89 72

> summary(vigne)

pop pepin.08 poids.08 volcm3.08

CE:84 Min. :0.00 Min. :0.39 Min. : 3.4

CO:89 1st Qu.:1.40 1st Qu.:0.82 1st Qu.: 7.1

TE:72 Median :1.80 Median :1.06 Median : 8.9

Mean :1.86 Mean :1.21 Mean :10.5

3rd Qu.:2.40 3rd Qu.:1.36 3rd Qu.:11.9

Max. :3.20 Max. :3.75 Max. :33.8

NA's :27 NA's :28 NA's :44

Formation à R Statistiques descriptives 163

Résumé statistiquePackage Hmisc commande describe

> library(Hmisc)

> describe(vigne)

vigne

4 Variables 245 Observations

------------------------------------------------------------

pop

n missing unique

245 0 3

CE (84, 34%), CO (89, 36%), TE (72, 29%)

------------------------------------------------------------

pepin.08

n missing unique Mean .05 .10 .25

218 27 26 1.858 1.0 1.2 1.4

.50 .75 .90 .95

1.8 2.4 2.7 2.9

lowest : 0.0 0.5 0.8 1.0 1.1, highest: 2.8 2.9 3.0 3.1 3.2

------------------------------------------------------------

poids.08

n missing unique Mean .05 .10 .25

217 28 122 1.212 0.578 0.676 0.820

.50 .75 .90 .95

1.060 1.360 1.868 2.472

lowest : 0.39 0.40 0.41 0.42 0.49

highest: 3.31 3.39 3.43 3.47 3.75

------------------------------------------------------------

volcm3.08

n missing unique Mean .05 .10 .25

201 44 188 10.47 4.71 5.98 7.14

.50 .75 .90 .95

8.91 11.90 16.58 23.06

lowest : 3.44 3.48 3.97 4.13 4.32

highest: 26.97 27.59 28.29 28.54 33.80

------------------------------------------------------------

Formation à R Statistiques descriptives 164

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 165

Tableau de fréquences

Dans le cas où la variable x est continue, la réalisation d’untableau de fréquence nécessite un partitionnement préalabledu domaine de définition en K classes de largeurI constanteI ou variable

Formation à R Statistiques descriptives 166

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 167

Fonction de répartition empirique

F : R 7→ [0, 1], x 7→ 1

ncard{i : xi ≤ x}

I Le graphe de la fonction de répartition est une fonction enescalier appelé diagramme cumulatif

Formation à R Statistiques descriptives 168

Graphe en tiges et feuillesCommande stem

Un graphe en tige est feuille permet de visualiser le tableau desfréquences> stem(pepin.08)

The decimal point is 1 digit(s) to the left of the |

0 | 00000000

2 |

4 | 0

6 |

8 | 0

10 | 00000000000

12 | 0000000000000000000

14 | 00000000000000000000000000000000000000

16 | 000000000000000000000

18 | 0000000000000000000000

20 | 000000000000000000000

22 | 000000000000000000

24 | 000000000000000000000

26 | 0000000000000000000

28 | 00000000

30 | 000

32 | 0000000

Formation à R Statistiques descriptives 169

Fonction de répartition empirique

ecdf crée un objet qui peut être tracé avec plot.> par(mfrow=c(1,2))

> plot(ecdf(poids.08[pop!="TE"]))

> plot(ecdf(poids.08[pop=="TE"]))

0.5 1.0 1.5 2.0

0.0

0.2

0.4

0.6

0.8

1.0

Fn(

x)

●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●●

●●

●●

●●

●●●

●●●●●

●●

●●●

●●●●●

●●

●●●●●

●●

●●

●●

●●

●●●

●●

●●

●●

1 2 3 4

0.0

0.2

0.4

0.6

0.8

1.0

Fn(

x)

FIGURE : F.d.r empirique du poids pour les non TE et les TE

Formation à R Statistiques descriptives 170

Comparaison de distribution

Pour comparer visuellemnt deux distributions, la manière la plusefficace est le graphe quantile/quantile (qui doiventcorrespondre si les distributions sont proches.)> qqplot(poids.08[pop=="CE"],poids.08[pop=="CO"])

●●

●●●

● ●●●●●●

●●●●●●

●●●●●●●●●●●●●●

●●●●●●●●●●●

●●●●●●●●●● ● ●

●●●

●●● ●

●●

●● ● ●

0.5 1.0 1.5 2.0

0.4

0.6

0.8

1.0

1.2

1.4

1.6

FIGURE : qqplot des distributions de poids de CE et CO

Formation à R Statistiques descriptives 171

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 172

Histogramme I

I Estimateur de la fonction de densité

fn(x ) =∑i

hi11[ai ,ai+1[(x ) a1 < ... < ak+1

I Découpage en intervallesI Calcul de la fréquenceI Aire du rectangle proportionnel à la fréquence∑

i

hi(ai+1 − ai) = 1 et hi(ai+1 − ai) = PF (X ∈ [ai , ai+1[)

Formation à R Statistiques descriptives 173

Histogramme II

I Attention : hauteur proportionnelle à la fréquence si etseulement si les intervalles ont tous la même largeur

I Nombre d’intervalles :I ImportantI Réglage difficileI Règle empirique : règle de Sturges 1 + 10/3 ∗ log10(n)

Formation à R Statistiques descriptives 174

Histogramme

> hist(pepin.08,nclass=25,prob=TRUE)

> lines(density(pepin.08[!is.na(pepin.08)]))

Den

sity

0.0 0.5 1.0 1.5 2.0 2.5 3.0

0.0

0.2

0.4

0.6

0.8

1.0

FIGURE : histogramme du nombre de pépins par baie en 2008

Formation à R Statistiques descriptives 175

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 176

Boîte à moustaches ou boxplot

I Éléments atypiques (aberrants, outliers)I Notion arbitraireI Règle empirique assez souvent utilisée : valeurs situées à

l’extérieur de [q1 − 1.5× Iqr , q3 + 1.5× Iqr ]

I Définition : Graphique constituéI d’un rectangle délimité par les quartiles et partagé en deux

par la médianeI d’une paire de moustaches : minimum et maximum de

l’échantillon auquel on a ôté les éléments atypiquesI des outliers eux-mêmes

Formation à R Statistiques descriptives 177

Boîtes à moustaches

La boîte à moustache permet de visualiser les grands traitscaractéristiques d’une distribution.> boxplot(poids.08~pop,col="yellow",notch=T)

●●

CE CO TE

0.5

1.0

1.5

2.0

2.5

3.0

3.5

FIGURE : boîtes à moustaches du poids selon les populations

Formation à R Statistiques descriptives 178

Graphe conditionné par une variable

> coplot(volcm3.08 ~ pepin.08 | pop, show.given=FALSE)

●●

●●●●●

●●●

●●●●●

●●●

●●●

●●

●●●

●●●●●

●●●

●●

●●●

●●●

●●●●

●●

●●●

●●

510

1520

2530

35

●●

●●●●

●●●●●

●●

●●

●●

●●●●●

●●

●●●●●

●●

●●●

●●

●●

●●

●●

●●●

●●●●●

●●●

0.0 0.5 1.0 1.5 2.0 2.5 3.0

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

0.0 0.5 1.0 1.5 2.0 2.5 3.0

510

1520

2530

35

pepin.08

volc

m3.

08

Given : pop

FIGURE : coplot du volume en fonction du nombre de pépins

Formation à R Statistiques descriptives 179

Conclusion

Mise en évidence de certaines caractéristiques :I Présence de données atypiquesI Absence de symétrie de la distributionI Présence de populations hétérogènesI ...

Formation à R Statistiques descriptives 180

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 181

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 182

Histogrammes et variable qualitative

1−1.5 3−3.5 5−5.5

010

25

setosaversicolorvirginica

0−0.2 0.8−1 1.6−1.8

010

2030 setosa

versicolorvirginica

4−4.5 5.5−6 7−7.5

010

2030

setosaversicolorvirginica

2−2.2 2.8−3 3.6−3.8

010

25

setosaversicolorvirginica

Formation à R Statistiques descriptives 183

Statistiques associées à un vecteur aléatoire I

I RappelsI X réalisation d’un échantillon de taille n du vecteur

aléatoire XI x i réalisation de taille 1 de XI x j réalisation d’un échantillon de taille n de X j

I Moyenne empirique

x = (x 1, . . . , xp)′ où x j =1

n

n∑i=1

x ji

I Variance empirique

s2j =1

n

n∑i=1

(x ji − x j )2

Formation à R Statistiques descriptives 184

Statistiques associées à un vecteur aléatoire III Covariance empirique

sjj ′ =1

n

n∑i=1

(x ji − x j ).(x j

i − x j ′)

I Coefficient de corrélation linéaire empirique

rjj ′ =sjj ′

sj sj ′

I Matrice de variance empirique

S = (sjj ′) =1

n(X − 1nx )′(X − 1nx ) =

1

nY ′Y

où 1n est la matrice de dimension (n, 1) remplie de 1 et Yest la matrice centrée associée à X .

I Matrice de corrélation empirique

R = (rjj ′) = D1/sj SD1/sj

Formation à R Statistiques descriptives 185

Graphique de dispersion

I Représentation de chaque individu i par le point du plan(x 1

i , x2i )

I Nuage de n points dans le planI Visualisation synthétique des données : permet de voir

I les relations linéairesI les regroupements en classes homogènes

Formation à R Statistiques descriptives 186

Les 5 variables des iris

Sepal.Length

2.0 2.5 3.0 3.5 4.0

●●

●●

●●

●●

●● ●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●● ●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

0.5 1.0 1.5 2.0 2.5

●●●●

●●

●●

●● ●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●●

●●

●●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

4.5

5.0

5.5

6.0

6.5

7.0

7.5

8.0

●●●●

●●

●●

●●●●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●●●

●●●●

●●●

●●

●●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●●

●●●

●●

2.0

2.5

3.0

3.5

4.0

●●

● ●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

● ●

●●

●● ●

●●

● ●

● ●●

●●

●●

●●

●● ●

●●

Sepal.Width

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●●

●●

●●

● ●

●●

●●●

●●

● ●

● ●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

● ●

●●

●●●

●●

●●

●●●

●●

●●

●●

● ●●

●●

●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●●

●●●●

●●●

●●

●●

●●●●●

●●

●●●● ●

●● ●● ● ●●

●● ●

●●●

●●

●●

●●

●● ●●●● ●● ●●

● ●●●●

●●●●●

●●

● ●●

●●

●●●

●●

●●

●●

● ●

●●

●●●

● ●●

●●●

●●

●●● ●

●●

●●

●●

●●●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●● ●● ●

●●●● ● ●●

●● ●

●●●

●●

●●

●●

● ●●●●● ● ●●●● ●●●

●●● ●●

●●

● ●●

●●

●●●

●●

●●

●●

●●

●●

●●●

● ●●

●●●

●●

● ●●●

●●

●●

●●

● ●●

●●

●●

● ●

●●

●●

●●

●●

●●

●●

●●

●●

Petal.Length

●●●●●

●●●●●●●●

●●●●●

●●

●●

●●● ●●●●● ●●●●●●

●●●

●●●●

●●●●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●●

●●●

●●

●●●●

●●

●●

●●

● ●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

12

34

56

7

●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●

●●●●●

●●

●●●

●●

●●

●●

●●

●●

●●●●

●●●●●●

●●

●●●●

●●●

●●

●●●

●●●●

●●

●●

●●

●●●●

●●

●●

●●

●●

●●●●●

0.5

1.0

1.5

2.0

2.5

●●●● ●

●●

●●●

●●●●

●●● ●●

● ●

●●●●

●●●● ●

●● ●

●●●

●●

●● ●●

●● ●

●●

●●

●●

●●

● ●

●●●

●●

●●

●●●●

●●● ●

●●

●●●

●●

●●

●●

●●

● ●

●●●

●●

●●

●●

●●

●●

●●

●● ●● ●

●●●●

●●●

●●●

●●● ●●

●●

●●●●

●●●● ●

●● ●

●●●

●●

●● ●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

● ●●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●● ●

●●

●●

●●

●●

●●

●●

●●●●●

●●●●●●●

●●●

●●● ●●

●●

●●●●

●●●●●●

●●●●●

●●

●●●●

●● ●

●●

●●

●●

●●● ●

●●

●●●

●●●●

●●●●

●●

●●●

●●

●●

●●

●●

● ●

●●●

●●

●●

●●

●●

●●

●●

Petal.Width

●●●●●

●●●●●●●●●●

●●●●●●

●●

●●●●

●●●●●●●●●●●

●●●●●●

●●●

●●

●●●●

●●●●

●●●

●●●●

●●●●

●●●●

●●

●●●

●●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

●●●● ● ●● ●● ● ●●●● ●●●● ●● ●●● ●● ●● ●●●● ●● ●●● ●●● ●●●● ●●● ●● ●●

●● ●● ●● ●● ●●● ●●●● ●● ● ●● ● ● ●● ● ● ●●●●●● ● ●● ● ●●●●● ●●● ●●● ●● ●

●● ●● ● ●● ●● ●●● ●●● ●● ●●● ●● ●● ● ●●● ● ● ● ●●●● ●●●● ●● ●● ●●●● ●●●

●● ●● ● ●●●● ● ●●●● ● ●●● ●●● ●●●●● ●●●●● ● ●●●● ●●● ●●● ● ● ●● ●● ●●

●●●● ●● ●● ●●● ●● ●● ●●●● ● ●●● ●●●● ●●●●● ●● ● ●●● ●●● ●●● ● ●●●● ●

●● ●●●●● ●● ●●● ●● ● ●● ●●● ●●●● ●●● ●● ●● ●●●● ● ●●●●●●● ●●●● ● ●●

1 2 3 4 5 6 7

●●●●● ●●●●●●●●●● ●●● ●●●●● ●●●●●●●●●●●●●●●●●●●● ● ●●●●●●

●● ●● ●●●● ●●● ●● ●● ●●● ●● ●● ●●●● ●●●● ●●● ●●●●●●● ●●●● ●●●●● ●

●● ●●● ●● ●● ●●●●●●●● ●●● ●● ●● ● ●●● ●● ● ●●● ● ●●●● ●●●● ●●●●●●●

●●●●● ●●●●●●●●●● ●●●●●● ●● ●●● ●●●●● ●●●●●●●●●●●● ●●●●●●●

●●●● ●● ●● ●●● ●● ●●●●● ●● ●● ●●●●● ●●●●● ● ●●●●●●●● ●●● ●●●●● ●

●● ●● ●●●●● ●●● ●● ●●● ●●● ●●●● ●●●● ●● ●● ●●● ●●●● ● ●●● ● ●●●● ●●

1.0 1.5 2.0 2.5 3.0

1.0

1.5

2.0

2.5

3.0

Species

Formation à R Statistiques descriptives 187

Les 5 variables des iris en couleurs

Sepal.Length

2.0 2.5 3.0 3.5 4.0

●●

●●

●●

● ●

●●

●●

●●

●●

●●

●●

4.5

5.0

5.5

6.0

6.5

7.0

7.5

8.0

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

2.0

2.5

3.0

3.5

4.0

●●

● ●

●●

●●

●●

●●

●●●

●●

●●

●●

●●

●●

●Sepal.Width

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

●●

4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0

●●●● ●

● ●● ● ●●●

● ●

●●●

●●

●●

●●

●● ●●●● ●● ●●

● ●●●●

●●●

●●

● ●● ●● ●● ●

●●● ● ●●●

● ●

●●●

●●

●●

●●

● ● ●●●● ● ● ●●

● ● ●●●

●● ●

●●

● ●●

1 2 3 4 5 6 7

12

34

56

7

Petal.Length

Formation à R Statistiques descriptives 188

Covariance et corrélation

I 2 variables : covariance et corrélation empiriqueI > 2 variables : matrices de cov. et de corr. empiriques

Les iris

Sepal.Length Sepal.Width Petal.Length Petal.WidthSepal.Length 0.69 -0.04 1.27 0.52Sepal.Width -0.04 0.19 -0.33 -0.12Petal.Length 1.27 -0.33 3.12 1.30Petal.Width 0.52 -0.12 1.30 0.58

TABLE : Matrice de covariance

Sepal.Length Sepal.Width Petal.Length Petal.WidthSepal.Length 0.69 -0.04 1.27 0.52Sepal.Width -0.04 0.19 -0.33 -0.12Petal.Length 1.27 -0.33 3.12 1.30Petal.Width 0.52 -0.12 1.30 0.58

TABLE : Matrice de corrélation

Formation à R Statistiques descriptives 189

PlanStatistiques descriptives

Variable quantitative discrète ou qualitative ordinale

Variable qualitative nominale

Variable continueRésumés numériquesTableau de fréquencesFonction de répartition empiriqueHistogramme et estimateur à noyauxBoite à moustache

Représentations multivariéesDescription bidimensionnelleDescription multidimensionnelle

Formation à R Statistiques descriptives 190

Les diagrammes fleurs

Les iris

Sepal.LengthSepal.Width

Petal.Length Petal.Width

Formation à R Statistiques descriptives 191

Fléau de la dimension (curse of dimensionality) I

I Espace de grande dimensionI Calculs similaires à ceux du planI Mais difficile de généraliserI Exemple 1 :

I Dans RI Pts uniformément répartis dans [−1,+1]I % de points situées à 1 distance ≤ 0.75 de l’origine : 75%

I Dans R10

I Pts uniformément répartis dans [−1,+1]10

I % de points situées à 1 distance ≤ 0.75 de l’origine : 5%

I Exemple 2 : on veut construire un histogramme ens’appuyant sur au moins une moyenne de 10 points parintervalle et 10 classes par variable

I R : 10 classes n = 100I R2 : 100 classes n = 1000I R10 : 1010 classes n = 1011 = 100milliards

Formation à R Statistiques descriptives 192

Fléau de la dimension (curse of dimensionality) II

I Si p assez grand, l’espace Rp est pratiquement vide et saufsi les données se situent au voisinage d’une variété defaible dimension, l’analyse des données n’apporteraaucune information intéressante.

I Les points voisins d’un point donné sont tous très loin :difficultés dans l’emploi de méthodes du type k -plusproches voisins

Formation à R Statistiques descriptives 193

top related