L’objectif ce TP est :
Il est important de remarquer que cet atelier n’est pas un cours de statistiques. Nous supposons que vous avez déjà une connaissance des certains méthodes présentées ici. Si vous souhaitez des précisions théoriques/méthodologiques à propos d’un certain type d’analyses, nous vous conseillons de voir la doc !
On a déjà appris à créé des vecteurs des differentes façons dans le TP prècedant.
Rappel : On peut créer des vecteurs de differentes façons :
x <- c(0,0.125,0.25); x
## [1] 0.000 0.125 0.250
x <- seq(from=0,to=1,length=9); x
## [1] 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000
x <- seq(from=0,to=1,by=0.125);x
## [1] 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000
La commande length(x) permet de connaitre la longueur du vecteur x.
On peut générer des nombres (pseudo-)aléatoires grâce aux fonctions rnorm (normale), rexp (exponentielle), runif(uniforme), rpois (poisson), rbinom (binomiale), rchisq (chi2), rt (Student). Par exemple,
x <- rnorm(10,0,1); x
## [1] 1.70241446 -0.84791908 1.14979933 -0.14371673 -0.26025432
## [6] 0.49253277 -0.03658341 0.18505608 -1.26390229 -1.26020403
Que fait la fonction seq() ? Que fait la fonction rnorm ?
Que font les commandes suivantes ?
x <- rnorm(100000,0,1)
mean(x); sd(x); quantile(x)
## [1] -0.002849253
## [1] 1.002126
## 0% 25% 50% 75% 100%
## -4.063758209 -0.678060888 -0.003732227 0.673794752 4.049716533
summary(x)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -4.064000 -0.678100 -0.003732 -0.002849 0.673800 4.050000
Visualiser les valeurs de x à l’aide d’un histogramme en exécutant la commande
hist(x,probability=T)
Visualiser les données à l’aide d’une boîte à moustaches (boxplot en anglais)
boxplot(x)
Commenter.
Visualiser l’histogramme, la densité de la loi normale centrée réduite (loi théorique) et la densité estimé de vos données (loi estimé), dans une même fenetre, grâce aux commandes
x <- rnorm(100,0,1)
hist(x,probability=T,col='light blue',
main ="Histogramme de x, loi estimé et loi théorique")
ptx <- seq(min(x),max(x), length=100)
lines(ptx,dnorm(ptx,0,1), col='red',lty=1, lwd=3)
lines(density(x), col='blue',lty=2, lwd=3)
legend(par('usr')[2], par('usr')[4], xjust=1,
c('loi estimé', 'loi theorique'),
lwd=2, lty=c(1,2),
col=c('blue','red'))
x <- rnorm(100000,0,1)
hist(x,probability=T,col='light blue',
main ="Histogramme de x, loi estimé et loi théorique")
ptx <- seq(min(x),max(x), length=100)
lines(ptx,dnorm(ptx,0,1), col='red',lty=1, lwd=3)
lines(density(x), col='blue',lty=2, lwd=3)
legend(par('usr')[2], par('usr')[4], xjust=1,
c('loi estimé', 'loi theorique'),
lwd=2, lty=c(1,2),
col=c('blue','red'))
Quel est la difference entre ptx et x ? Que fait la fonction lines()? Que fait la fonction dnorm
La principale fonction permettant de tracer des graphiques est plot. Les options xlab et ylab permettent de modifier le nom des axes tandis que l’option main permet d’ajouter un titre (toutes les options disponibles sont détaillées dans la page d’aide).
Comme dans le graphique précédant, on peut ajouter des lignes ou courbes grâce à la fonction lines(). Par exemple, pour superposer les graphes des densités des lois \(N(0,1)\), \(N(0,1.5)\) et \(N(1,1.5)\), on peut taper les commandes
ptx <- seq(from=-3,to=4,by=0.1)
densiteX=dnorm(ptx,0,1);densiteY=dnorm(ptx,0,1.5);densiteZ=dnorm(ptx,1,1.5)
plot(ptx,densiteX,xlim=c(-3,4),type="l",lwd=2,lty=1,ylab="",xlab="",main="Densités gaussiennes")
lines(ptx,densiteY,type="l",lwd=2,lty=2)
lines(ptx,densiteZ,type="l",lwd=2,lty=4)
legend("topright",c("densité N(0,1)","densité N(0,1.5)","densité N(1,1.5)"),
lty=c(1,2,4),lwd=c(2,2,2))
plot(ptx,densiteX,xlim=c(-3,4),type="l",lwd=2,col="black",ylab="",xlab="",main="Densités gaussiennes")
lines(ptx,densiteY,type="l",lwd=2,col="red")
lines(ptx,densiteZ,type="l",lwd=2,col="blue")
legend("topright",c("densité N(0,1)","densité N(0,1.5)","densité N(1,1.5)"),
lty=c(1,1,1),lwd=c(2,2,2),col=c("black","red","blue"))
Visualier les QQ-plots, l’histogramme, puis tester à l’aide des tests de Kolmogorov-Smirnov (fonction ks.test) et de Shapiro-Wilks (fonction shapiro.test) qu’il s’agit d’un échantillon Gaussien. Pour cela, éxecuter les commandes ci-dessous :
x <- rnorm(100,5,3)
hist(x, probability=T,col='light blue',main='Histogramme de x, loi estimé et loi théorique', ylab="Densité")
ptx <- seq(min(x),max(x), length=100)
lines(ptx,dnorm(ptx,5,3), col='red', lwd=3)
lines(density(x), col='blue',lty=2, lwd=3)
legend(par('usr')[2], par('usr')[4], xjust=1,
c('loi estimé', 'loi theorique'),
lwd=2, lty=c(1,2),
col=c('blue','red'))
qqnorm(x);abline(mean(x),sd(x),col=2)
ks.test(x,"pnorm",mean(x),sd(x))
##
## One-sample Kolmogorov-Smirnov test
##
## data: x
## D = 0.048151, p-value = 0.9746
## alternative hypothesis: two-sided
shapiro.test(x)
##
## Shapiro-Wilk normality test
##
## data: x
## W = 0.99326, p-value = 0.9031
Que peut-on en conclure ?