Exemple
Transcription
Exemple
Des statistiques avec
R
Génération de nombres
aléatoires
• Rappel:
Un échantillon est une partie d'une population
sur laquelle s'effectue une étude statistique.
On peut disposer d'échantillons issus d'une
expérimentation, ou,
si on connait la loi de la variable parente X,(de
distribution connue) simuler ces observations:
on parlera d'échantillon empirique (ou observé)
et d'échantillon simulé.
La taille d'un échantillon est le nombre
d'observations de l'échantillon
Exemple 1
• X: v.a.r taille de la population P
• Un échantillon de taille 5 issu d'une
expérimentation:
E=c(1.60,1.80,1.72,1.78,1.63)
• Un échantillon simulé
la loi uniforme discrète U(n)(où les
pi sont tous égaux):sample()
[1] 12
E=sample(1:15,10);a;
8 11 10 9 4 2 14 1
5
Exemple 2: lois discrètes
La loi binomiale B(n,p), rbinom()
P ( X = k )=[n!/p!(n-p)!] p^k
( 1 - p )^n-k
rbinom(10,10,0.3)
[1] 3 5 0 2 3 1 3 5 4 6
rbinom(100,10,0.3)
[1] 4 3 5 2 3 4 4 4 0 0
3 2 4 3 4 3 2 3 1 3 5 3
5 3 5 2 5 5 1 6 2 3 4 3
4 3 2 2 3 2 1 2 5 6 5 2
3 1 3 3 4 6 1 2 6 4 1 2
2 1 1 4 2 4 3 1
2
3
2
3
7
2
4
2
3
3
4
4
4
4
4
4
2
2
2
3
1
2
1
3
4
4
1
1
4
3
3
4
4
5
• la loi de Poisson P(λ):rpois()
(rappel: p(X=k)=e^{-λ} λ^k/k!)
exemple: b=rpois(10, 5);b
[1] 7 5 5 6 4 7 4 6 3 6
• la loi géométrique g(p): rgeom()
(rappel:p(X=k) = p (1-p)^k )
c=rgeom(10,0.25); c;
[1] 1 2 0 0 3 2 1 2 1 0
• La loi normale N(m,σ):
Exemples:
• Un échantillon simulé de taille 10 en
supposant que X suit une loi normale de
paramètres (1,75;15)
x=rnorm(10,175,15);x
[1]209.38 186.99 167.24 168.71 184.49 175.63
162.25 177.86 183.27 181.68
• rnorm(100):génère 100 observations issues
de la loi normale de paramètres 0 et 1 (par
défaut)
• rnorm(100, mean=2,var=3): génére 100
observations issues de la loi normale de
paramètres 2 et 3
Lois de probabilité,
distributions
• On peut évaluer les quantités suivantes:
Fonctions de répartition
Densité
Quantiles
Echantillons Simulés
• Les fonctions ont le même nom avec des préfixes
différents
r: donne des échantillons
d: donne les valeurs P(X=j)
p: donne les valeurs P(X<=x)
q: donne la valeur y telle que P(X=x)=y
• Exemples:
dnorm(),pnorm(),qnorm(),rnorm():loi normale
dbinom(),pbinom(),qbinom(),rbinom():loi binomiale
dt(),pt(),qt(),rt():loi de student
dpois(), ppois(), qpois(), tpois():loi de Poisson …
exemples
dbinom(k, n, p) donne la valeur
une loi B(n,p),c’est-à-dire
Exemple: dbinom(3,10,0.2)
P(X=k) sachant que X suit
0.2013266
rbinom(10,n,p) donne un échantillon de taille 10
extrait d’une population suivant une loi
B(n,p):
Exemple: rbinom(10,10,0.2)
[1] 5 2 3 2 4 0 4 2 0 2
pbinom(k,n,p) donne P(X<=k) sachant que X
suit une loi B(n,p),c’est-à-dire la valeur
de la fonction de répartition F(k)
Exemples:
pbinom(3,10,0.2); 0.8791261
pbinom(1:10,10,0,2)
;
[1] 0.1073742 0.3758096 0.6777995 0.8791261 0.9672065
0.9936306 0.9991356 0.9999221 0.9999958 1.0000000
Fonction de répartition de la loi binomiale de
paramètres 10 et 0,2
0.6
0.4
0.2
0.0
c(0, z)
0.8
1.0
•
0
2
4
6
c(-1, x)
8
10
0
2
4
6
c(-1, x)
8
10
0.0
0.2
0.4
c(0, z)
0.6
0.8
1.0
qbinom(q,n,p) est le quantile , c’est-à-dire la
plus petite valeur x telle que
F(x)=P(X<=x) >=q.
Exemple:
qbinom(0.5,10,0.2) ;
[1] 2
qchisq(.1,df=8) est le premier décile de X^2(8)
(loi du chi-deux a 8 degrés de liberté)
Exemple d'une loi continue: la loi normale
qnorm(0.2)
[1] -0.8416212
0.6
0.4
0.2
0.0
pnorm(x)
0.8
1.0
•
0
5
x
10
Analyse de données
• On distinguera des données
Quantitatives ou qualitatives,
discrètes (binaires,...)ou
continues...
• Des résumés numériques ou
graphiques
Les résumés numériques pour calculer des
statistiques sur un échantillon numérique
• Moyenne arithmétique
mean()
median()
• Médiane d'un échantillon
min(), max()
• Minimum, maximum
quantile()
• Calcul des percentiles
var()
• Variance
sd()
• Écart-type
• Covariance, coefficient de corrélation
cov(),cor()
summary()
• Résumé statistique
Distribution d’un ensemble
d’observations
•
•
•
•
Quelques fonctions: si v est un ensemble d’observations
table(v):
compte les fréquences des éléments de v
hist(v):
trace l’histogramme
summary(v):
renvoie un résumé statistique du contenu
de v,avec le min 1er quartile, moyenne, médiane,3iemme
quartile et max
• quantile(v): renvoie les quantiles correspondant au
vecteur de probabilité donné. Par défaut renvoie les
quartiles
• Moins utilisées
stem():arbre
qqplot(x,y):trace les quantiles de x /quantiles de
y
exemple
> x=sample(1:50,20)
> summary(x)
Min. 1st Qu. Median
3rd Qu.
Max.
5.00
16.50
28.00
42.00
50.00
> summary(x)[2]
1st Qu.
16.5
Mean
28.95
Les résumés graphiques
• Pour des données discrètes ou
catégorielles
Diagramme en batons:
barplot()
Cette fonction prend comme
argument un objet résultat de la
fonction table()
• pour des données continues,
hist(), boxplot()
barplot()
•
tN=table(Ni
rpois(100,
lambda=5))
=
• r=barplot(tN,
col=rainbow(20)
)
•
r
•
•
•
•
•
•
[,1]
[1,] 0.7
[2,] 1.9
[3,] 3.1
[4,] 4.3
[5,]....
hist(x,breaks= « Sturges »,prob=FALSE)
• x un vecteur de valeurs pour lequel on
souhaite un histogramme
• breaks:soit
-un vecteur chaine de caractère donnant
un algorithme pour calculer le nombre
d'intervalles
-un nombre donnant le nombre
d'intervalles
• prob=FALSE:fréquences
• prob=TRUE: fréquences relatives ou
probabilités
Représentation de données
discrètes:
tracés d'histogrammes
La fonction hist()
Exemple: v=rbinom(1000,10,0.4)
table(v);
v
0
1
2
3
4
5
6
7
8
4 44 110 215 253 194 125 42 13
hist(v);
puis hist(v,breaks=15,
prob=TRUE,col=1:16, main="loi binomiale
de param 10 et 0.4")
0.0 0.1 0.2 0.3 0.4 0.5
Density
loi binomiale de param 10 et 0.4
0
2
4
v
6
8
Analyse multivariée
exemple
• Un cas mixte, une donnée
continue, une donnée discrète
boxplot():boites à moustaches
boxplot(len ~ dose, data = ToothGrowth)
Guinea Pigs' Tooth Growth
35
len supp dose
1 4.2 VC 0.5
30
2 11.5 VC 0.5
20
8 11.2 VC 0.5
5
9 5.2 VC 0.5
0
7 11.2 VC 0.5
15
6 10.0 VC 0.5
10
5 6.4 VC 0.5
tooth length
4 5.8 VC 0.5
25
3 7.3 VC 0.5
10 7.0 VC 0.5 ...
0.5
1
Vitamin C dose mg
2
pairs(): plusieurs nuages, tous les nuages
possible sur toutes les colonnes possible du
data frame
pairs(iris[1:4], pch = 21, bg = c("red",
"green3", "blue")[unclass(iris$Species)])
iris
Sepal.Length
Sepal.Width Petal.Length
Petal.Width
Species
1
5.1
3.5
1.4
0.2
setosa
2
4.9
3.0
1.4
0.2
setosa
3
4.7
3.2
1.3
0.2
setosa
4
4.6
3.1
1.5
0.2
setosa
5
5.0
3.6
1.4
0.2
setosa
6
5.4
3.9
1.7
0.4
setosa
Anderson's Iris Data -- 3 species
3.0
4.0
0.5
1.5
2.5
7.5
2.0
4.0
4.5
6.0
Sepal.Length
5
7
2.0
3.0
Sepal.Width
1.5
2.5
1
3
Petal.Length
0.5
Petal.Width
4.5 5.5 6.5 7.5
1 2 3 4 5 6 7
exemples
essai=sample(1:20,200,replace=TRUE)
• stem(essai)
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
1 | 0000000000000000
1|
2 | 0000000000000000000000000
2|
3 | 00000000000000000000000
3|
4 | 0000000000000000
4|
5 | 00000000000000000000
5|
6 | 000000000000000000000
6|
7 | 00000000000000000
7|
8 | 00000000000000000000000000
8|
9 | 00000000000000000
9|
10 | 0000000000000000000
Pour sauvegarder des
graphiques
Il faut:
• Choisir un format d'exportation (png,
eps,pdf...
• Encadrer les commandes graphiques par un appel
à pdf() et dev.off() (dans le cas d'un
graphique sauvegardé au format pdf)
• Pour plus d'informations, ?Devices
Méthode
En pratique, on pourra créer un répertoire
de travail par analyse de données, et y
déposer:
• les fichiers de données brutes
• le fichier script contenant les commandes
R
• le workspace et les fichiers
résultats(textes et graphiques)
Exemples
Exercice 1 : Dans une enquête sur
les conditions de vie des
ménages de banlieue, on dispose
de la série statistique du
nombre d’enfants de 10 ménages:
D=data.frame(men=1:11,nbenf=c(3,2,5,3,6,3
,5,5,1,5,2));D;
men nbenf
1
1
3
2
2
2
3
3
5
4
4
3
5
5
6
6
6
3
7
7
5
8
8
5
9
9
1
10 10
5...
Calculer la moyenne du nombre
d’enfants par ménage de deux
façons différentes
mean(D$nbenf);
[1] 3.636364
sum(D$nbenf)/length(D$nbenf)
[1] 3.636364
Construire le tableau de la
distribution des fréquences de cette
série
• df=D$nbenf/sum(D$nbenf)
• > df
• [1] 0.075 0.050 0.125 0.075
0.150 0.075 0.125 0.125 0.025
0.125 0.050
Représenter graphiquement cette
distribution.
plot(table(D$nbenf),main="diagramme
en batons des effectifs")
plot(table(D$nbenf),main="polygone
des effectifs ", type="b", col=2)
0.2
0.1
0.0
frequence
0.3
plot(table(D$nbenf)/length(D$nbenf),x
lab="nombre d'enfants",
ylab="frequence")
1
2
3
nombre d'enfants
5
6
2
1
0
table(D$nbenf)
3
4
polygone des effectifs
1
2
3
5
6
Exercice 2 : Au poste de
péage, on compte le
nombre de voitures se
présentant sur une
période de 5mn. Sur 100
observations de 5mn, on
obtient les résultats
suivants:...
Construire le diagramme en
bâtons et le polygone des
fréquences cumulées de la série
du nombre de voitures.
• D1=data.frame(nv=1:12,no=c(2,8,1
4,20,19,15,9,6,2,3,1,1))
●
•
plot(D1$nv,D1$no,type="h",
main="diagramme en
batons",xlab="nombre de
voitures", ylab="nombre
d'observations")
15
10
5
nombre d'observations
20
diagramme en batons
2
4
6
8
nombre de voitures
10
12
Polygone des fréquences
cumuléees
●
fc=cumsum(no)
• plot(D1$nv,fc,type="l",
main="polygone des frequences
cumulées",xlab="nombre de
voitures", ylab="frequences
cumulees")
•
●
80
60
40
20
0
frequences cumulees
100
polygone des frequences cumulées
2
4
6
8
nombre de voitures
10
12
Calculer la moyenne et l’écarttype de cette série.
(attention il s'agit de moyennes
• et d'ecart type pondérés)
moy=sum(D1$nv*D1$no)/100
[1] 5.07
et=sqrt(sum(0.01*D1$no*(D1$nvmoy)^2))
> et
[1] 2.182911
Déterminer la médiane, les
quartiles et tracer le box-plot.
●
s=rep(D1$nv,D1$no);s
summary(s)
Min. 1st Qu.
3rd Qu.
Max.
1.00
4.00
5.07
6.00
boxplot(s)
Median
5.00
12.00
Mean
2
4
6
8
10
12
barplot(): diagrammes en batons
0
5
10
15
20
T =table(rpois(100,lambda=5))
r = barplot(T, col='gray')
1
2
3
4
5
6
7
8
9
10
11