Vous êtes sur la page 1sur 37

Cours 3

IX – Importation et exportation de fichiers ASCII


X- Lois de probabilités et simulation d’échantillons
XI- Statistiques descriptives
IX – Importation et exportation de fichiers
ASCII
Rgui
IX- 1 Importer des fichiers ascii

 Chargement de fichiers textes (Ascii) stockés en externe :

 Avec la fonction read.table(). La sortie est un data.frame.

read.table(file= ,sep= ,header= )


- file = nom du fichier
- sep= séparateur utilisés dans « file » (espace par défaut)
- header= T si le fichier « file » contient le nom des colonnes (en
tête), F sinon (dans ce cas R utilise les noms de variables par défaut
V1,…). header=F par défaut.

>p=read.table("C:/Documents and Settings/R_bbsg/donnees/pollution.txt",


header=T);is.data.frame(p);
Rgui
IX- 1 Importer des fichiers ascii

 Fonction file.choose(): permet de choisir le fichier de façon


interactive

>f=file.choose(); #choisir le fichier


>f
[1] "C:\\Documents and Settings\\R-bbsg\\donnees\\pollution.txt "
>read.table(f);

 read.csv(), read.delim(), read.fwf() : Variantes de read.table()

 R peut lire des fichiers dans d’autres formats (Excel,SAS,SPSS) mais


les fonctions nécessaires ne sont pas dans le package base.
Rgui
IX- 2 Exporter des fichiers ascii

 Fonction write.table() : exporte un fichier créé dans R dans le


répertoire de travail
write.table(x, file=, append=, col.names=,row.names=)
- x : nom du data.frame créé sous R
- file= nom du fichier dans lequel on veut écrire
- append= si TRUE ajoute au fichier éventuellement existant,
si FALSE écrase le fichier existant (F par défaut)
- col.names= si TRUE écrit les noms de colonnes
- row.names= idem pour les lignes

>write.table(f,file= "C:/Documents and


Settings/R_bbsg/donnees/pollution2.txt", row.names=T,col.names=T)

 Fonction write(): équivalent à write.table() mais moins d’options


Rgui
IX-3 Sauvegarder des objets R et les restaurer

 On peut sauver des objets crées dans R dans un fichier, en binaire ou en


Ascii:

 dump(): sauve en ascii des objets R


 source(): recharge les objets sauvés par dump()

 save(): sauve en binaire des objets R


 load(): recharge les objets sauvés par source()

>dump(ls(), file="C:/Documents and


Settings/R_bbsg/donnees/object.txt")

>source("C:/Documents and Settings/donnees/ R_bbsg/object.txt")


X- Lois de probabilités
X-0 Rappels
Densité de la loi Répartition de 1000
normale N(0,1) réalisations de loi N(0,1)
X-0 Rappels
− 1 ( x−m)²
e 2σ ²
1
• Loi normale : X suit une loi N(m,σ) ssif ( x ) = ∀x ∈ R
σ 2π

• Loi uniforme: X suit une loi U[a,b] ssi f ( x ) = 1 si x ∈ [ a, b ] , 0 sinon


b−a

−λ λx
• Loi de Poisson: X suit une loi P(λ) ssi P ( X = x) = e , ∀x ∈ N
x!

• Loi binomiale X suit une loi B(n,p)P ( X = x) = Cnx p x (1 − p ) n− x , ∀x ∈ [ 0, n ]


X-1 Lois de probabilité, distributions

 Lois classiques : *norm(),*binom(),*chisq(),*unif,()*pois,(),*t,(),


*exp(), …….

 R permet d’évaluer les quantités probabilistes suivantes sur les lois


classiques:
Préfixe p : Fonctions de répartition (F(x)=P(X<=x))
>pnorm(3); pnorm(3,2,1); pbinom(3,10,0.5); pt(6,5)
Préfixe d : Densité (P(X=x) ou f(x))
>dnorm(4); dt(7,2); dpois(4,5)
Préfixe q : Quantiles d’ordre q (plus petite valeur x telle que
P(X<=x)>=q
>qnorm(0.4,2,1); qbinom(0.5,10,0.5); qchisq(0.1,8)
Préfixe r : Simulations (construction d’échantillons)
>runif(50,0,2); rpois(20,3);
X-2 Exemples

dbinom(k, n, p) : Valeur de P(X=k) lorsque X suit une loi B(n,p).


>dbinom(3,10,0.2) [1] 0.2013266
rbinom(k,n,p): k réalisations d’une variable aléatoire de loi B(n,p)
>rbinom(10,10,0.2) [1] 5 2 3 2 4 0 4 2 0 2
pbinom(k,n,p) : Valeur de P(X<=k) (fdr de X en k) lorsque X suit une
loi B(n,p)
>pbinom(1,10,0.2) [1] 0.3758096
> pbinom(2,10,0.2) [1] 0.6777995
qbinom(q,n,p): Quantile d’ordre q, c’est-à-dire la plus petite valeur x
telle que P(X<=x)>=q
>qbinom(0.5,10,0.2) [1] 2
>qchisq(0.1,8) [1] 3.489539
X-2 Exemples

>x=rbinom(100,5,1/3)
> barplot(table(x))
>barplot(dbinom(0:5,5,1/3),add=
T,col=2)
XI- Statistiques
descriptives
XI-1 Caractéristiques d’une série statistique

Soit (x,y) deux séries statistiques (vecteurs ou data.frame)

 table(x) : compte les fréquences des valeurs de x (x discrète ou


caractère)
 summary(x) : renvoie un résumé statistique du contenu de x,
avec le min, 1er quartile, moyenne, médiane, 3 ième quartile et max
( x numérique)
 mean(x), median(x), var(x), sd(x) : moyenne, médiane, variance ,
ecart-type (x numérique)
 quantile(x, probs=) : renvoie les quantiles de la série x (x
numérique) correspondant au vecteur de probabilité donné (% de
population). Par défaut renvoie les quartiles
 cor(x,y) : Donne la matrice de corrélations entre x et y (x et y
numeriques)
 cov(x,y) : Donne la covariance entre x et y (x et y numeriques)
XI-1 Caractéristiques d’une série statistique
>age=c(18, 15, 12, 16, 20, 17); poids=c(55, 57, 46, 54, 60,57); nom=c("a","b","c","a")
> table(poids) >table(nom)
Poids nom
46 54 55 57 60 abc
1 1 1 2 1 211
> summary(poids) >summary(nom)
Min. 1st Qu. Median Mean 3rd Qu. Max. Length Class Mode
46.00 54.25 56.00 54.83 57.00 60.00 4 character character
>mean(poids) >quantile(age)
[1] 54.83333 0% 25% 50% 75% 100%
12.00 15.25 16.50 17.75 20.00
> quantile(poids)
0% 25% 50% 75% 100% > cor(age, poids)
46.00 54.25 56.00 57.00 60.00 [1] 0.860365

>quantile(poids,prob=0.25) >quantile(age,probs=c(0.1,0.4))
25% 10% 40%
54.25 13.5 16.0
XI-2 Visualisation d’une série statistique

hist(x) : trace l’histogramme de la série x (x continue)


density(x): construit l’estimateur par noyau de la densité de x (x
continue). plot(density(x)) le trace.
ecdf(x) : construit la fonction de répartition empirique de x.
plot(ecdf(x) ) la trace.
barplot(x): diagramme en bâtons de la série x (x discrète)
stem(x): arbre des valeurs de x (x discrète)
boxplot(x): boxplot (boite à moustaches) des valeurs de x
qqnorm(x): trace les quantiles de x/ quantiles de la loi normale
qqplot(x,y) : trace les quantiles de x /ceux de y
plot(x)
plot(x,y): nuage des points de coordonnées (x,y)
XI-3 Exemples : estimation de la fonction de
répartition par la fonctionde répartion
empirique (ecdf())
 La fonction de répartition empirique associée une série
d'observations ayant les valeurs x1 ,....xn est la fonction en escalier
entre les points (x(i), i/n)

nombre de x i ≤ x 1 n
Fn ( x) = = ∑1xi ≤ x
n n i =1

 Si x1 ,....xn sont des réalisations d’une variable aléatoire X, Fn ( x)


est une estimation de la fonction de répartition de X: F ( x) = P( X ≤ x)

 Au plus n est grand, au plus Fn ( x) est proche de F en tout point.


XI-3 Exemples : estimation de la fonction de
répartition (ecdf()) d’une loi
> essai=rnorm(10);essai # x1….x10
[1] 0.38981636 -0.21302926 0.03082812 -1.30205952
0.18251605 -1.93613408 -0.55674645 0.67634396
1.85267654 1.87018196
> sort(essai) #x(1)….x(10)
[1] -1.93613408 -1.30205952 -0.55674645 -0.21302926
0.03082812 0.18251605 0.38981636 0.67634396
1.85267654 1.87018196

>ecdf(essai)
Empirical CDF
Call: ecdf(essai)
x[1:10] = -1.9361, -1.3021, -0.55675, ..., 1.8527,
1.8702

>plot(ecdf(essai))
>essai=rnorm(n);
> plot(ecdf(essai),main="fdre pour n- fdr")
> curve(pnorm, add=T)
XI-3 Exemples: estimation d’une loi discrète
(stem(), barplot())

 Pour une série discrète x1 ,....xn , on peut représenter la proportion


des observations qui prennent chaque valeur x de la série
(diagramme en bâtons de la série).
nombre de x i = x 1 n
pn ( x) = = ∑1xi = x
n n i =1

 Si x1 ,....xn sont des réalisations d'une variable aléatoire X à


valeurs discrètes dans E, pn ( x) est une approximation de la loi de
probabilité de X (la séquence P(X=x), x ∈ E ).
 Le diagramme en bâtons de la série estime le graphe de la loi de X.
Au plus n est grand au meilleure est l’estimation.
XI-3 Exemples: estimation d’une loi discrète
(stem(), barplot())

>essai=rbinom(10, 10,0.3); essai


[1] 4 4 4 5 4 4 4 3 1 3
>barplot(z/length(essai),main
>t=table(essai) ="diagramme des frequences")

essai
1345
1261
>stem(essai)
1|0
2|
3 | 00
4 | 000000
5|0
XI-3 Exemples: estimation d’une loi discrète
(stem(), barplot())

>essai=rbinom(n,10,0.3);t=table(essai);
barplot(t/length(essai), main="n=");
x=0:10;
barplot(dbinom(x,10,0.3),col="red"
,add=T);
XI-3 Exemples: estimation de la densité
d’une loi continue (hist(), density())
 La densité f d’une variable continue X

 Peut être approchée par histogramme : soit I l’intervalle d’observation


( )
de la série et I j j ≤ kune partition de I en k classes. L’histogramme basé
sur cette partition est la fonction en escaliers valant, dans chaque classe
la proportion des observations tombant dans cette classe
renormalisée par l’amplitude de la classe. les amplitudes l j des classes
doivent être choisies afin de rendre le mieux possible compte de la
distribution réelle des observations.

ˆf ( x ) =  nombre de xi ∈ I j
k  
n ∑ 
j =1  nl j
1x∈I j

 Généralement les classes sont choisies de même amplitude, déterminée
par le nombre de classes choisies, R le fait tout seul ou on utilise cut()
ˆ
 Au plus l’échantillon et grand au plus f n est proche de f.
XI-3 Exemples: estimation de la densité
d’une loi continue (hist(), density())

hist(x, breaks = , prob=, right =,col =, main =, xlab =, ylab=,…)

- x: série
- breaks: un vecteur donnant les « breakpoints » des classes ou un nombre
donnant le nombre de classes+1 ou une fonction pour calculer le nombre de
classes. Par défaut , la détermination du nombre k de classes se fait par la règle
de Sturges:
k = 1 + 1,322log10 n
- prob : si F, histogramme des fréquences; si T, histogramme des fréquences relatives
(probas). Le défaut est F.
-right : si T les classes de l’histogrammes sont fermées à dte, ouvertes à gauche. F par
défaut
- col=couleur
- main, xlab, ylab: titres.
XI-3 Exemples: estimation de la densité
d’une loi continue (hist(), density())
>x=rnorm(100); hist(x, prob=T,
breaks=12)
> t=hist(x, prob=T,breaks=12)
> names(t)
[1] "breaks" "counts"
"intensities" "density" "mids"
[6] "xname" "equidist"
> t$breaks
[1] -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.5
1.0 1.5 2.0 2.5 3.0
> t$density
[1] 0.02 0.08 0.24 0.26 0.40 0.44
[7] 0.22 0.18 0.04 0.08 0.04
> t$counts
[1] 1 4 12 13 20 22 11 9 2 4 2
>essai=rnorm(50);
>hist(essai) #n’estime pas la densité

>hist(essai, prob=T,
main="histogramme des
probabilités")
>essai=rnorm(n);
>hist(essai, prob=T, main="n");
>curve(dnorm,add=T);
XI-3 Exemples: estimation de la densité
d’une loi continue (hist(), density())
 Peut être approchée par un estimateur à noyau : l’idée est d’approcher
la densité de X par celle d’un estimateur de la fonction de répartition de
X. La « dérivée » de la fonction de répartition empirique, estimateur
classique de la fonction de répartition n’existe pas. Mais en un point x
de I, elle vaut à peu près avec h petit :
Fˆn ( x + h) − Fˆn ( x − h) nombre de xi tombant dans [ -hx, hx ] 1 n
2h
=
2nh
= ∑ 1 xi − x
2nh i =1 −1< h ≤1

Prendre cet estimateur revient à considérer que les observations sont


uniformément réparties autour de chaque xi. Au lieu de considérer une
approximation uniforme, on peut utiliser une distribution plus lisse, de
densité K. noyau au point x= somme pondérés des contributions de
chaque xi. h est appelé paramètre de lissage, sa valeur détermine la
qualité d’estimation. n
1  x − xi 
fɶn ( x) = ∑ K
nh i =1  h 
XI-3 Exemples: estimation de la densité
d’une loi continue (hist(), density())

d=density(x, bw = , kernel =, …)

- x: série
- bw: taille de la fenêtre de lissage. Définie par un chiffre ou
une règle. Automatique par défaut.
- kernel: une chaine de caractères donnant le noyau utilisé
(gaussien, rectangulaire…). Gaussien par défaut.
L’output sort des statistiques sur la série x ainsi que des statistiques sur les
valeurs y de la densité estimée en ces points.

plot(density(d)) permet d’obtenir le graphe


XI-3 Exemples: estimation de la densité
d’une loi continue (hist(), density())
• Importance de la fenêtre de
lissage: au plus elle est grande,
au plus l’estimation est lisse et
biaisée, au plus elles est petite, au
plus l’estimation est bruitée.

>plot(density(essai, bw=0.1))

>plot(density(essai, bw=0.5))
XI-3 Exemples: estimation d’une densité

> essai=rnorm(50) > plot(density(essai),


> density(essai) main="estimateur à noyaux de la
densité de essai")
Call:
density(x = essai)

Data: essai (50 obs.);


Bandwidth 'bw' = 0.476

x y
Min. :-3.80115 Min. :0.0001951
1st Qu.:-1.91420 1st Qu.:0.0167786
Median :-0.02725 Median :0.1253643
Mean :-0.02725 Mean :0.1323521
3rd Qu.: 1.85970 3rd Qu.:0.2431201
Max. : 3.74665 Max. :0.2861070
>essai=rnorm(n);
>plot(density(essai), main="n" ,ylim=c(0,0.4));
>curve(dnorm,add=T);
XI-3 Exemples: estimation de la densité
d’une loi continue (hist(), density())
>plot(density(essai),
main="n=10000");
>hist(essai, prob=T, add=T);
XI-3 Exemples: caractéristiques d’une série
(boxplot(),qqnorm())
 Le boxplot permet de visualiser  La fonction qqnorm( ) permet de
les caractéristiques d’une série comparer la distribution d’une série à
(points aberrants, symétrie, la distribution gaussienne standard.
dispersion)
>x=c(1,1,2,2,2,3,4); summary(x)
>boxplot(formula) Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 1.500 2.000 2.143 2.500 4.000
>boxplot(x)
Formula : série x ou formule
y~ grp, avec y série à diviser en
groupe selon la variable grp
(donne 1 boxplot par groupes )
XI-3 Exemples: caractéristiques d’une série
(boxplot(),qqnorm())
XI-3 Exemples: caractéristiques d’une série
(boxplot(),qqnorm())

Vous aimerez peut-être aussi