Cours 2

Transcription

Cours 2
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
INTRODUCTION AU LOGICIEL R
2. Statistiques descriptives, lois de probabilité.
Anne Dubois, Julie Bertrand, Emmanuelle Comets
[email protected]
INSERM UMR738
E. Comets (UMR738)
Introduction à R - Novembre 2009
1 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Plan
Dataframe
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Statistiques descriptives
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
E. Comets (UMR738)
Introduction à R - Novembre 2009
2 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Remise en jambe (1)
1
2
À l’aide des fonctions rep, seq et c seulement, générer les
séquences suivantes :
a) 0 6 0 6 0 6
b) 1 4 7 10
c) 1 2 3 1 2 3 1 2 3 1 2 3
d) 1 2 2 3 3 3
e) 1 1 1 2 2 3
f) 1 5.5 10
g) 1 1 1 1 2 2 2 2 3 3 3 3
Générer les suites de nombres suivantes à l’aide des fonctions :
et rep seulement, donc sans utiliser la fonction seq :
a) 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
b) 1 3 5 7 9 11 13 15 17 19
c) -2 -1 0 1 2 -2 -1 0 1 2
d) -2 -2 -1 -1 0 0 1 1 2 2
e) 10 20 30 40 50 60 70 80 90 100
E. Comets (UMR738)
Introduction à R - Novembre 2009
3 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Remise en jambe (2)
3
Reprendre la séquence (d) précédente
remplacer toutes les valeurs négatives par NA
compter le nombre de valeurs NA
remplacer les valeurs négatives par -10
E. Comets (UMR738)
Introduction à R - Novembre 2009
4 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Remise en jambe (3)
4
Soit la matrice :
x<-matrix(1:120,ncol=12)
Affichez toutes les lignes de la matrice commençant par un
nombre pair
Affichez toutes les lignes de la matrice dont la moyenne est
inférieure à 60
Affichez toutes les colonnes de la matrice dont la somme est
inférieure à 500
Sélectionnez la sous-matrice formée des lignes de la matrice dont
la moyenne est inférieure à 60 et des colonnes dont la somme est
inférieure à 500
Sélectionnez la même sous-matrice, sauf la troisième ligne
Bien sûr, une seule ligne est nécessaire à chaque fois pour effectuer
ces opérations...
E. Comets (UMR738)
Introduction à R - Novembre 2009
5 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Plan
Dataframe
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Statistiques descriptives
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
E. Comets (UMR738)
Introduction à R - Novembre 2009
6 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Les dataframes
format de jeu de données structuré
un jeu de données réelles a naturellement le format d’un
dataframe
nombreux jeux de données structurés disponibles sous R
Exemple : jeu de données pressure sur la relation entre la
température en degrés et la pression en millimètres de mercure :
> pressure
temperature pressure
1
0
0.0002
2
20
0.0012
...
19
360 806.0000
E. Comets (UMR738)
Introduction à R - Novembre 2009
7 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Manipulation d’un dataframe
Pour récupérer une variable on utilise le caractère $ :
> pressure$temperature
[1]
0 20 40 60 80 100 120 140 160 180 200 220
240 260 280 300 320 340 360
On peut aussi référencer la colonne comme pour une matrice:
> pressure[,1]
Ou encore les appeler par le nom de la colonne :
> pressure[,"temperature"]
Les 2 premiers éléments de temperature s’écriront indifféremment :
> pressure$temperature[1:2]
> pressure[1:2,1]
> pressure[1:2,"temperature"]
E. Comets (UMR738)
Introduction à R - Novembre 2009
8 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Attacher un jeu de données
On peut aussi "attacher" le jeu de données pour avoir un accès direct
aux variables :
> attach(pressure)
> temperature
[1]
0 20 40 60 80 100 120 140 160 180 200 220
240 260 280 300 320 340 360
Attention : on peut modifier le vecteur temperature mais ça ne change
rien au dataframe test. C’est comme si on avait une copie des
variables. Par contre si on travaille sur test$temperature on modifie
bien test.
Pour "détacher" le dataframe, on utilise :
detach(test)
E. Comets (UMR738)
Introduction à R - Novembre 2009
9 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Ecriture de fichiers
pressure est disponible sous R dans la librairie datasets. Pour sauver
le jeu de données dans un fichier essai.dat :
> write.table(pressure,"essai.dat",row.names=F)
L’option row.names=F est nécessaire pour éviter d’écrire un numéro
au début de chaque ligne.
La fonction sink permet de rediriger la sortie (normalement à l’écran)
vers un fichier :
> sink("essai.dat")
> print(pressure)
> sink()
Elle donne ici un résultat similaire à :
> write.table(pressure,"essai.dat")
E. Comets (UMR738)
Introduction à R - Novembre 2009
10 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Lecture de fichiers (1)
Pour lire le dataframe test à partir du fichier essai.dat :
> test <- read.table("essai.dat",header=T)
La table contient un en-tête (header) avec le nom des variables (les
colonnes).
Ces fonctions lisent des formats bien tabulés sans trous. Des
options existent pour spécifier le séparateur de champs, le nombre de
lignes lues, le nombre de lignes à sauter avant de commencer la
lecture, ...
E. Comets (UMR738)
Introduction à R - Novembre 2009
11 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Lecture de fichiers (2)
Fonction la plus générale pour la lecture de fichiers : scan
>
>
>
>
namcol<-scan("essai.dat",nlines=1,what="char")
test <- scan("essai.dat",skip=1)
test<-matrix(test,ncol=4,byrow=T,dimnames=list(c(),namcol))
test
temperature pressure
1
0
0.0002
...
19
360 806.0000
Nécessite de spécifier le type (si différent de "numeric").
Permet de lire certaines lignes seulement d’un fichier.
Permet de gérer des fichiers de structure particulière (ex : "parser" un
fichier texte).
E. Comets (UMR738)
Introduction à R - Novembre 2009
12 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Lecture au clavier
scan peut aussi être utilisé pour la lecture au clavier (input). Au lieu
d’un nom de fichier, on utilise "" :
> x<-scan("",nlines=2)
1: 2
2: 3.2
Read 2 items
> x
[1] 2 3.2
Par défaut, la fonction attend un nombre, mais le type de données
attendu peut être modifié :
> noms<-scan("",nlines=2,what=character())
1: Paul
2: Pierre
Read 2 items
> noms
[1] "Paul"
"Pierre"
E. Comets (UMR738)
Introduction à R - Novembre 2009
13 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Extraction d’une sous-base
On utilise la base airquality, disponible dans R.
Si l’on veut extraire la sous-base pour laquelle la température est > 92
◦F :
> air1 <- subset(airquality, Temp > 92)
> air1
Ozone Solar.R Wind Temp Month Day
42
NA
259 10.9
93
6 11
120
76
203 9.7
97
8 28
..
127
91
189 4.6
93
9
4
On peut également utiliser :
> air1<-airquality[airquality$Temp>92,]
E. Comets (UMR738)
Introduction à R - Novembre 2009
14 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Transformation de données (1)
Pour ajouter dans air1 la variable logTemp, log de la température, on
a également plusieurs choix :
>air1<-transform(air1,logTemp=log(Temp))
> air1
Ozone Solar.R Wind Temp Month Day logTemp
42
NA
259 10.9
93
6 11 4.532599
...
126
73
183 2.8
93
9
3 4.532599
127
91
189 4.6
93
9
4 4.532599
ou :
>air1$logTemp<-log(air1$Temp)
ou encore:
>air1<-cbind(air1,logTemp=log(air1$Temp))
E. Comets (UMR738)
Introduction à R - Novembre 2009
15 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Transformation de données (2)
On peut créer une variable indicatrice à l’aide de la fonction ifelse.
On souhaite par exemple créer la variable ftemp qui vaut 1 si Temp >
94 ◦ F, 0 sinon :
> air1<-transform(air1,ftemp=ifelse(Temp>94,1,0))
> air1
Ozone Solar.R Wind Temp Month Day ftemp
42
NA
259 10.9
93
6 11
0
120
76
203 9.7
97
8 28
1
...
127
91
189 4.6
93
9
4
0
ou encore :
> air1$ftemp<-ifelse(air1$Temp>94,1,0)
E. Comets (UMR738)
Introduction à R - Novembre 2009
16 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Extraction de données : exercice
Créer à partir de air1 le dataframe air2, où :
1) la variable Ozone n’est pas manquante
2) la température est ≤ 94◦ F
Créer à partir de airquality le dataframe air3, où la variable
Ozone n’est pas manquante.
Ajouter une colonne à air3 représentant une variable valant 1 si :
1) on est dans les 6 premiers mois de l’année
2) la température est supérieure à 80◦ F
et 0 sinon.
E. Comets (UMR738)
Introduction à R - Novembre 2009
17 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Ordonner selon une variable
Pour effectuer l’équivalent de la Proc sort de SAS, on utilise la
fonction order. Pour ordonner air1 selon la valeur de Temp :
> air1[order(air1$Temp),]
Ozone Solar.R Wind Temp Month Day ftemp
42
NA
259 10.9
93
6 11
0
126
73
183 2.8
93
9
3
0
...
120
76
203 9.7
97
8 28
1
On peut trier sur plusieurs variables :
> air1[order(air1$Month,air1$Day),]
Ozone Solar.R Wind Temp Month Day
42
NA
259 10.9
93
6 11
120
76
203 9.7
97
8 28
...
127
91
189 4.6
93
9
4
E. Comets (UMR738)
Introduction à R - Novembre 2009
18 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
La fonction match
match teste si un élément est présent dans un vecteur.
> month.name
[1] "January"
"February" "March" "April"
> match(c("Mai","May"),month.name,nomatch=0)
[1] 0 5
"May" ...
Application : rajouter une colonne avec le nom du mois à air1
> NamMon<-month.name[match(air1$Month,1:12)]
> transform(air1,NamMon=NamMon)
Ozone Solar.R Wind Temp Month Day
NamMon
42
NA
259 10.9
93
6 11
June
120
76
203 9.7
97
8 28
August
...
127
91
189 4.6
93
9
4 September
Outil très puissant pour manipuler plusieurs bases de données avec
un identifiant commun (ex : le numéro d’identification du patient).
E. Comets (UMR738)
Introduction à R - Novembre 2009
19 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Exercice
On vous donne un relevé des profondeurs de glace relevées dans une
station météo avec les dates correspondantes :
dates<-c("1971-01-20","1971-01-28","1971-02-03",
"1971-02-11","1971-02-18","1973-01-17","1973-01-25",
"1973-01-31","1973-02-17","1974-01-07","1974-01-10",
"1974-01-15","1974-01-22","1974-01-29","1974-02-05",
"1974-02-12","1974-02-19")
mesure<-c(64,69,71,71,71,32,42,28,32,18,25,29,34,36,42,
50,61)
Extraire de ce vecteur la première incidence de chaque
profondeur mesurée, en utilisant la fonction match.
Trier les mesures de glace dans l’ordre croissant et créer une
matrice avec comme première colonne les mesures triées et
comme deuxième colonne les dates correspondantes (nécessite
un tri simultané!)
E. Comets (UMR738)
Introduction à R - Novembre 2009
20 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Plan
Dataframe
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Statistiques descriptives
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
E. Comets (UMR738)
Introduction à R - Novembre 2009
21 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Moyenne et médiane
Moyenne : fonction mean
Médiane : fonction median
> x<-c(4,6,2,9,0,1,2)
> x
[1] 4 6 2 9 0 1 2
> mean(x)
[1] 3.428571
> median(x)
[1] 2
E. Comets (UMR738)
Introduction à R - Novembre 2009
22 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Moyenne et médiane en présence de valeurs manquantes
Option na.rm=T pour ignorer les valeurs manquantes
> x[3]<-NA
> x
[1] 4 6 NA 9 0 1
> mean(x)
[1] NA
> mean(x,na.rm=T)
[1] 3.666667
> median(x)
[1] NA
> median(x,na.rm=T)
[1] 3
E. Comets (UMR738)
2
Introduction à R - Novembre 2009
23 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Moyenne en enlevant les valeurs extrêmes
Autre option utile
trim=f : où f∈ [0, 0.5]
enlève un pourcentage d’observations égal à f de part et d’autre
avant de calculer la moyenne
peut être utilisé pour calculer une moyenne robuste
> x<-c(4,6,2,9,0,1,2)
> mean(x,trim=0.2)
[1] 3
E. Comets (UMR738)
Introduction à R - Novembre 2009
24 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Variance et écart-type
Variance : fonction var
Ecart-type : fonction sd
On a la même option pour ignorer les valeurs manquantes :
> x<-c(4,6,2,9,0,1,2)
> var(x)
[1] 9.95238
> sd(x)
[1] 3.154739
> sqrt(var(x))
[1] 3.154739
> x[3]<-NA
> var(x)
Erreur dans var(x) : observations manquantes dans cov / cor
> var(x,na.rm=T)
[1] 11.46667
E. Comets (UMR738)
Introduction à R - Novembre 2009
25 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Corrélation (1)
Fonction cor(x,y) : coefficient de corrélation entre x et y
Par défaut, calcul du coefficient de corrélation de Pearson :
r=r
ΣXY −
ΣX 2 −
ΣX ΣY
(ΣX )2 N
N
ΣY 2 −
(ΣY )2 (1)
N
> x<-c(4,6,2,9,0,1,2)
> y<-c(9,2,5,1,6,0,3)
> cor(x,y)
[1] -0.270984
E. Comets (UMR738)
Introduction à R - Novembre 2009
26 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Corrélation (2)
Options
method : deux autres coefficients de corrélation (association
basée sur les rangs)
method="kendall" : τ de Kendall (coefficient de corrélation des
rangs de Kendall)
method="spearman" : ρ de Spearman
use="c" : pour ignorer les valeurs manquantes
Calcul des coefficients de corrélation non-paramétriques
> x<-c(4,6,2,9,0,1,2)
> y<-c(9,2,5,1,6,0,3)
> cor(x,y,method="spearman")
[1] -0.1982062
> cor(x,y,method="k")
[1] -0.19518
Note : on peut juste écrire la première lettre de la méthode
E. Comets (UMR738)
Introduction à R - Novembre 2009
27 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Covariance
Fonction cov(x,y) : covariance entre x et y.
> x<-c(4,6,2,9,0,1,2)
> y<-c(9,2,5,1,6,0,3)
> cov(x,y)
[1] -2.690476
Notes :
mêmes options que pour cor
method, na.rm=T
x et y peuvent être des matrices
cov renvoie alors la matrice de variance-covariance entre les
colonnes de x et de y
E. Comets (UMR738)
Introduction à R - Novembre 2009
28 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Quantiles
On peut obtenir les quantiles empiriques d’un vecteur
> quantile(x)
0%
25%
50%
75%
100%
2.525075 4.413246 4.897222 5.528062 7.327059
Par défaut, on a le min, le max, et les 3 quartiles (0.25, 0.5 et 0.75
quantiles).
Pour obtenir les autres quantiles, par exemple les déciles:
> dec<-seq(0,1,0.1)
> dec
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> quantile(x,dec)
0%
10%
20%
30%
40%
50%
2.525075 3.538811 4.211671 4.468975 4.648577 4.897222
60%
70%
80%
90%
100%
5.190315 5.459779 5.785553 6.198171 7.327059
E. Comets (UMR738)
Introduction à R - Novembre 2009
29 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Attention aux fonctions appliquées à un tableau
Comme la plupart des fonctions, quantile ne calcule pas les
statistiques d’un tableau ou d’un data.frame colonne par colonne mais
le considère comme un grand vecteur :
> x=matrix(seq(1:100),ncol=4)
> quantile(x)
0%
25%
50%
75%
100%
1.00 25.75 50.50 75.25 100.00
La fonction summary est utilisée pour préserver cette structure.
> summary(x)
X1
Min.
: 1
1st Qu.: 7
Median :13
Mean
:13
3rd Qu.:19
Max.
:25
E. Comets (UMR738)
X2
Min.
:26
1st Qu.:32
Median :38
Mean
:38
3rd Qu.:44
Max.
:50
X3
Min.
:51
1st Qu.:57
Median :63
Mean
:63
3rd Qu.:69
Max.
:75
Introduction à R - Novembre 2009
X4
Min.
: 76
1st Qu.: 82
Median : 88
Mean
: 88
3rd Qu.: 94
Max.
:100
30 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Plus généralement
La fonction apply sert à appliquer une autre fonction de façon répétée
sur les lignes ou les colonnes d’un tableau. Par exemple :
> apply(x,2,quantile)
[,1] [,2] [,3] [,4]
0%
1
26
51
76
25%
7
32
57
82
50%
13
38
63
88
75%
19
44
69
94
100%
25
50
75 100
calcule les quantiles par défaut pour les 4 colonnes de la matrice x
(avec 1 à la place de 2, ce serait pour les lignes). Il est possible de
spécifier des options pour la fonction appelée par apply :
> apply(x,2,quantile,c(0.05,0.95))
[,1] [,2] [,3] [,4]
5%
2.2 27.2 52.2 77.2
95% 23.8 48.8 73.8 98.8
E. Comets (UMR738)
Introduction à R - Novembre 2009
31 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Vue d’ensemble d’un jeu de données
La fonction summary donne un résumé quantitatif. Une vue
d’ensemble de la structure d’un jeu de données est fournie par str :
> str(airquality)
’data.frame’: 153 obs. of 6 variables:
$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...
$ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...
$ Wind
: num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
$ Temp
: int 67 72 74 62 56 66 65 59 61 69 ...
$ Month : int 5 5 5 5 5 5 5 5 5 5 ...
$ Day
: int 1 2 3 4 5 6 7 8 9 10 ...
E. Comets (UMR738)
Introduction à R - Novembre 2009
32 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Exercice
Créez une matrice x portant les chiffres de 1 à 100, en 4 colonnes
Calculer les quantiles 0.1 et 0.9 de chaque colonne
Calculer les quantiles 0.1 et 0.9 de chaque ligne
E. Comets (UMR738)
Introduction à R - Novembre 2009
33 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Statistiques descriptives comme en SAS (1)
Il existe une version de summary produisant des tableaux de
statistiques descriptives ressemblant à ceux de SAS. Elle est définie
dans la librairie Hmisc :
> library(Hmisc)
> options(digits=3)
> sex <- factor(sample(c("m","f"), 500, rep=TRUE))
> age <- rnorm(500, 50, 5)
> treatment <- factor(sample(c("Drug","Placebo"), 500, rep=TRUE))
> db<-data.frame(npat=factor(1:500),sex,age,treatment)
> summary(age~factor(sex))
age
N=500
+-----------+-+---+----+
|
| |N |age |
+-----------+-+---+----+
|factor(sex)|f|273|50.1|
|
|m|227|49.9|
+-----------+-+---+----+
|Overall
| |500|50.0|
+-----------+-+---+----+
E. Comets (UMR738)
Introduction à R - Novembre 2009
34 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Statistiques descriptives comme en SAS (2)
On peut demander des statistiques plus élaborées en définissant des
fonctions adaptées :
>
>
>
>
g<-function(x){
c(smean.sd(x),median(x),quantile(x,prob=c(0.25,0.75)))
}
f<-summary(age~factor(sex),fun=g)
> f
age
N=500
+-----------+-+---+----+----+----+----+----+
|
| |N |Mean|SD |
|25% |75% |
+-----------+-+---+----+----+----+----+----+
|factor(sex)|f|273|50.1|4.91|50.0|46.5|53.4|
|
|m|227|49.9|5.02|49.8|47.1|53.3|
+-----------+-+---+----+----+----+----+----+
|Overall
| |500|50.0|4.95|50.0|46.6|53.3|
+-----------+-+---+----+----+----+----+----+
E. Comets (UMR738)
Introduction à R - Novembre 2009
35 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Exercice
Créez une matrice x portant les chiffres de 1 à 100, en 4 colonnes
Calculez la moyenne et la variance
de x
des colonnes de x
des 3 premières lignes de x
Prendre le jeu de données interne à R appelé ToothGrowth
le visualiser pour se faire une idée de son contenu (utilisez l’aide)
la première colonne représente la longueur des dents de cochons
d’inde soumis à différents régimes
ranger la première colonne par colonnes dans une matrice à 6
colonnes mat
calculer la matrice de corrélations entre les colonnes de mat
E. Comets (UMR738)
Introduction à R - Novembre 2009
36 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Plan
Dataframe
Format d’un dataframe
Ecriture et lecture de fichiers
Manipulation d’un dataframe
Tri
Statistiques descriptives
Moyenne et variance
Corrélation et covariance
Quantiles
Exercice
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
E. Comets (UMR738)
Introduction à R - Novembre 2009
37 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Loi normale
Pour chaque distribution qu’il connait, R va en général définir 4
fonctions associées. Pour la loi normale, le suffixe général est ’norm’
et il va être précédé de 4 lettres, d, p, q ou r pour définir 4 fonctions :
dnorm(x,µ,σ) : densité
1
f (x ) = √
2πσ
(x − µ)2
2σ2
e
−
pnorm(x,µ,σ) : probabilité
F (x ) =
Z
x
f (u ) du
−∞
qnorm(αq ,µ,σ) : quantile correspondant de la distribution, c’est-à-dire
pour αq donné la valeur de x pour laquelle
F (x ) = P (X ≤ x ) = αq
rnorm(n,µ,σ) : échantillon aléatoire de taille n
E. Comets (UMR738)
Introduction à R - Novembre 2009
38 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Quantiles d’une loi normale
On utilise la fonction qnorm() pour connaître les valeurs seuils pour la
distribution considérée. Par exemple, pour la loi normale, les bornes
de l’intervalle de confiance à 95% sont données par les valeurs
correspondant aux quantiles à 2.5 et 97.5% :
> qnorm(0.025)
[1] -1.959964
> qnorm(0.975)
[1] 1.959964
soit si on arrondit [-1.96; 1.96].
E. Comets (UMR738)
Introduction à R - Novembre 2009
39 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Exemple
Probabilité d’observer une réalisation de la variable inférieure à une
valeur donnée si X est tirée dans une loi normale ℵ(0, 1) : pnorm()
> 1-pnorm(1)
[1] 0.1586553
> 1-pnorm(1.96)
[1] 0.02499790
Probabilité d’observer les mêmes valeurs si X est tirée dans une loi du
χ2 à 1 degré de liberté : pchisq()
> 1-pchisq(1,1)
[1] 0.3173105
> 1-pchisq(1.96,1)
[1] 0.1615133
E. Comets (UMR738)
Introduction à R - Novembre 2009
40 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Tirage dans une loi normale
Utilisation de la fonction rnorm() :
> rnorm(10,5,1)
[1] 6.581486 4.769339 6.659839 5.297872 4.358885
... 4.337121 5.536682 5.298256
[9] 5.706258 4.536735
Par défaut, tirage dans une loi normale ℵ(0, 1)
> rnorm(10)
[1] -1.29191160 0.40569752 1.14063657 -0.25974412
... -0.14843534 0.03722864
[7] 1.77506059 -0.24868475 -1.04460649 -0.59818091
E. Comets (UMR738)
Introduction à R - Novembre 2009
41 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Tirage d’échantillons avec ou sans remise
La fonction sample() est utilisée. Sa syntaxe est la suivante :
sample(x, size, replace = FALSE, prob = NULL)
Par exemple :
> x<-1:10
> sample(x,3)
[1] 8 2 3
Par défaut, il est effectué un tirage sans remise. Pour demander un
tirage avec remise, utiliser replace=T :
> sample(x,7,replace=T)
[1] 2 9 10 8 2 2 9
Cette fonction sera très utile pour faire du rééchantillonnage
(bootstrap).
E. Comets (UMR738)
Introduction à R - Novembre 2009
42 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Exercice
Créer un vecteur de 10 valeurs en tirant :
les 6 premières dans ℵ(2, 5)
les 4 suivantes dans ℵ(−1, 4)
Tirer un vecteur v1 de 10 valeurs dans une mixture de 2 lois
normales :
ℵ(2, 5)
ℵ(−1, 4)
avec une probabilité 50-50
Calculez la moyenne de v1
répétez l’opération 10 fois en conservant les moyennes des 10
échantillons v1 successifs dans un vecteur
Recommencez la même opération en tirant un échantillon v2
dans une mixture avec une probabilité 10-90
comparez les moyennes obtenues pour v1 et v2
E. Comets (UMR738)
Introduction à R - Novembre 2009
43 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Exercice
Dans un essai clinique, on suppose que la clairance à la
créatinine des patients recrutés suit une loi normale de moyenne
120 mL/min, avec un écart-type de 40 mL/min.
Si on prend 10 patients au hasard, quelle est la probabilité p1
que la clairance moyenne soit inférieure à 130?
Quelle est la probabilité qu’elle soit comprise entre 120 et 130?
Combien de sujets faudrait-il prendre pour que la probabilité p1
soit d’au moins 95%?
E. Comets (UMR738)
Introduction à R - Novembre 2009
44 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Principales distributions statistiques (1)
Nom
dnorm()
dlnorm()
dunif()
dpois()
dexp()
dbinom()
dnbinom()
dchisq()
df()
E. Comets (UMR738)
Distribution
normale
log-normale
uniforme
Poisson
exponentielle
binômiale
binômiale négative
chi-deux
F
Paramètres par défaut
N (µ = 0, σ = 1)
LN (µ = 0, σ = 1)
U (a = 0, b = 1)
P (λ)
E (λ = 1)
B (n, p)
BN (n, p)
χ2 (n) (†)
F (n1 , n2 )
Introduction à R - Novembre 2009
45 / 46
Dataframe
Statistiques descriptives
Lois de probabilité et simulation
Lois de probabilité
Tirage d’échantillons aléatoires
Principales distributions statistiques
Principales distributions statistiques (2)
Nom
Distribution
Paramètres par défaut
dt()
Student
T (df , δ∗ )
dlogis()
logistique
L (α = 0, β = 1)
dgeom()
géométrique
G(p)
dweibull()
Weibull
W (γ, β = 1)
dhyper()
hypergéométrique
H (m, n, k )
dbeta()
Beta
β(α, β)
dgamma() Gamma
Γ(γ, β = 1)
dcauchy() Cauchy
C (α = 0, β = 1)
∗ δ : paramètre de non-centralité, optionnel
E. Comets (UMR738)
Introduction à R - Novembre 2009
46 / 46

Documents pareils