cours3 [Mode de compatibilité]

publicité
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
IX- 1 Importer des fichiers ascii
Rgui
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);
IX- 1 Importer des fichiers ascii
Rgui
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.
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
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
normale N(0,1)
Répartition de 1000
réalisations de loi N(0,1)
X-0 Rappels
• Loi normale : X suit une loi N(m,σ) ssif ( x ) =
1
σ 2π
− 1 ( x−m)²
e 2σ ²
∀x ∈ R
• Loi uniforme: X suit une loi U[a,b] ssi f ( x ) = 1 si x ∈ [ a, b ] , 0 sinon
b−a
• Loi de Poisson: X suit une loi P(λ) ssi P ( X = x) = e
−λ
λx
x!
, ∀x ∈ N
• 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)
[1] 5 2 3 2 4 0 4 2 0 2
>rbinom(10,10,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)
25%
54.25
>quantile(age,probs=c(0.1,0.4))
10% 40%
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
>t=table(essai)
essai
1345
1261
>stem(essai)
1|0
2|
3 | 00
4 | 000000
5|0
>barplot(z/length(essai),main
="diagramme des frequences")
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
∑
n

nl j
j =1 
k

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
=
=
1 xi − x
∑
2h
2nh
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)
> density(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
> plot(density(essai),
main="estimateur à noyaux de la
densité de essai")
>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())
Téléchargement