Introduction à l’utilisation du logiciel R - Statistiques descriptives -
description
Transcript of Introduction à l’utilisation du logiciel R - Statistiques descriptives -
Introduction à l’utilisation du logiciel R
- Statistiques descriptives -
M. Jacquot
UMR Chrono-EnvironnementL3 BEBioNum
R est un système d’analyse statistique et graphique créé par R. Ihaka et R. Gentleman1
1 Ikaha Ross, Gentleman Robert. 1996. R: a language for data analysis and graphics. J. Comput. Graph. Stat., 5: 299-314.
• Logiciel gratuit et langage qualifié de dialecte du langage S. Il est téléchargeable dans sa version 2.9.2. depuis :
http://www.r-project.org/
• Également disponible sous forme commercialisée S-Plus
• Développé par une communauté de statisticiens rassemblés dans le R Development Core Team
• Distribué pour Windows, Linux, Unix, Macintosh
http://www.r-project.org/
Liens pour télécharger (gratuitement) R, des packages, de la doc, etc…
Moteur de recherche
Documentation
• Avec R, vous disposez d’un logiciel puissant aux possibilités quasi-illimitées.
• Il peut être couplé à d’autres systèmes d’analyse de données (système d’analyse spatiale GRASS …)
• Le principal inconvénient est un manque de convivialité dans l’utilisation puisque son utilisation implique la programmation de chaque commande en langage S. Seule la pratique peut vous permettre de vous familiariser avec R.
Représentation graphique des données Analyse des structures spatiales
Pour vous guider, vous disposez de nombreux sites d’aide et d’exemples sur internet, par exemple :
http://zoonek2.free.fr/UNIX/48_R/all.html
En cas de difficultés, il est possible d’adresser vos questions à la R help list
http://stat.ethz.ch/R-manual/
http://pbil.univ-lyon1.fr/R/enseignement.html
http://cran.r-project.org/doc/contrib/Paradis-rdebuts_fr.pdf
De nombreux tutoriels sont également disponibles sur internet, par exemple :
http://cran.r-project.org/doc/manuals/R-intro.pdf
« R pour les débutants », Emmanuel Paradis
« An introduction to R », Venables et al (en anglais)
D’autres sont disponibles sur le site de R-project : http://cran.r-project.org (cliquer sur « Manuals » dans la sous-partie « Documentation »)
Bienvenue dans R…
Conseil : travaillez avec Tinn-R1. D’abord ouvrir Tinn-R, ouvrir un script et l’enregistrer2. A partir de l’interface Tinn-R, ouvrir R et sélectionner le fichier de travail dans R
Bienvenue dans R…
• Il est indispensable avant tout travail dans R, de spécifier le dossier de travail dans lequel se trouve le (ou les) fichier(s) de données à analyser :
File → Change Dir… → sélectionner le dossier*Ou pour la version française :Fichier → Changer le répertoire courant… → sélectionner le dossier*
• Pour vérifier que vous travaillez bien dans le bon dossier, vous pouvez contrôler votre working directory par la commande :getwd()
* procédure pour PC. Quelques subtiles différences pour Macintosh
Pour obtenir l’aide sur une commande :
?nom_de_la_commande
Pour utiliser une commande :
nom_de_la_commande(argument1,argument2,…)N.B. certains arguments sont définis par défaut pour une fonction donnée.
Opération Commande sous R
pi pi
Racine carrée sqrt
Multiplication, division, addition, soustraction *, /, +, -
Arrondir round
Moyenne, médiane, variance mean, median, var
Obtenir pour chaque variable d’un tableau : quartiles et moyenne
summary
Ecart-type sd
Etendue d’une série de valeurs range
Appliquer une même fonction (FUN) à toutes les catégories Y d’une variable X
tapply (X,Y,FUN)
Importer des données d’un tableau read.delim, read.table
Créer une matrice matrix
Effectuer un modèle linéaire lm(x~y*z)
Représenter un nuage de points plot(y~x)
Tracer une droite de régression correspondant à un modèle linéaire (lm)
abline(lm)
Fabriquer un graphique en « boîte à moustache » boxplot(x~y)
Options graphiques (propriétés de la fenêtre, des polices des axes,…)
par
Différents types d’objets dans R :• vecteurs (vector)
• matrices (matrix)
• tableaux de données (data.frame)
• listes (list): collection d’objets
myvector=1myvector[1] 1
> mymatrix [,1] [,2] [,3] [,4][1,] 1 1 2 2[2,] 3 4 5 6[3,] 6 6 6 7
> mytab Echantillon Masse 1 53 0.02732 353 0.0586
Exercice 1
1. Calculez sous R la racine carrée de : pi multiplié par l’âge de l’enseignant divisé par le nombre d’étudiants dans la salle.
2. Arrondissez la valeur obtenue à 1 décimale.
Exercice 1
1. Calculez sous R la racine carrée de : pi multiplié par l’âge de l’enseignant divisé par le nombre d’étudiants dans la salle.
Si l’enseignant a 23 ans et qu’il y a 18 étudiants dans la salle :
sqrt((pi*23)/18)
[1] 2.003561
round(sqrt((pi*23)/18),1)
[1] 2.003561
OU
calcul=sqrt((pi*23)/18)#on crée ici un objet de type vecteurround(calcul,1)
[1] 2.003561
2. Arrondissez la valeur obtenue à 1 décimale.
Exercice 2
1. Importez sous R le jeu de données appelé « Donneesmanchot ».
Présentation des données dans excel pour une exploitation dans
R
• Chaque variable doit être présentée en colonne
Variable explicative
Variable mesurée
Noms de colonnes
1. Pas d’espace
2. Pas d’accent
3. Pas de caractères spéciaux
• Pas de colonne vide à gauche
• Pas de ligne vide au-dessus
• Uniquement le tableau de données!
Privilégier les points comme séparateur de décimale
Enregistrer le fichier de données en format
texte (séparateur:tabulation)
(*.txt) pour Microsoft Office
texte (*.csv) pour Open Office
Exercice 2
1. Importez sous R le jeu de données appelé « Donneesmanchot ».
bdd_1=read.delim("Donneesmanchot.csv")bdd_1 #permet de visualiser le dataframe créé
class(bdd_1)[1] "data.frame" #nous donne la nature de l’objet
is.factor(bdd_1$annee)
[1] TRUE # nous dit si oui (TRUE) ou non (FALSE) notre variable est un facteur.
N.B. Notre variable peut être numérique (numeric) ou catégorielle (factor).
Exercice 2
2. Trouvez les moyennes, écart-types, minima, maxima et variances des concentrations en mercure des 3 groupes.
tapply(bdd_1$Concentration,bdd_1$annee,mean)2000 2001 museum 2.109222 1.909746 2.657152
tapply(bdd_1$Concentration,bdd_1$annee,sd) 2000 2001 museum 0.8337022 0.7671264 0.8604982
tapply(bdd_1$Concentration,bdd_1$annee,range)$`2000`[1] 0.4973822 3.9056604
$`2001`[1] 0.1156069 2.7457627
$museum[1] 1.646562 4.292169
Exercice 2
#Il faut d’abord isoler les données qui nous intéressent dans des vecteurs. Attention à la donnée manquante en 2001 qui nous contraint à éliminer la concentration de la plume du même individu en 2000. Hg_01=bdd_1[11:40,6]#on sélectionne dans bdd_1 les lignes 11 à 40 de la colonne 6
Hg_00=bdd_1[41:71,6] Hg_00=Hg_00[-4]#on sélectionne toutes les concentrations de Hg en 2000 exceptée celle en 4e place ds le vecteur Hg_00 qui correspond à l’individu à éliminer.
3. Représentez les concentrations 2001 en fonction des concentrations 2000. Tracer la droite de régression des concentrations 2001 en fonction des concentrations 2000 en vert. Donnez un titre pertinent et complet aux axes des abscisses et des ordonnées. Donnez un titre pertinent à votre graphique.
#Puis on passe à la représentation graphique
plot(Hg_01~Hg_00,pch=19,xlab="[Hg] en 2000" ,ylab="[Hg] en 2001",main="Concentrations de Hg dans les plumes de manchot empereur de 2001 en fonction de celles de 2000") lmHg=lm(Hg_01~Hg_00) abline(lmHg,col="green")
Exercice 2
boxplot(bdd_1$Concentration~bdd_1$annee,xlab="année",ylab="Concentrations en Hg",main="[Hg] dans les plumes de manchot empereur suivant l'année d'échantillonnage")
4. Représentez les concentrations 2000, 2001 et Museum dans un graphique en boîte à moustache. Donnez un titre pertinent au graphique et aux axes des abscisses et des ordonnées
Exercice 2
Exercice 2
par(mfrow=c(1,2))#permet de scinder la fenêtre graphique en 2 parties dans le sens de la longueur
plot(Hg_01~Hg_00,pch=19,xlab="[Hg] en 2000" ,ylab="[Hg] en 2001",main="Concentrations de Hg dans les plumes de manchot empereur de 2001 en fonction de celles de 2000",cex.main=1) lmHg=lm(Hg_01~Hg_00) abline(lmHg,col="green")
boxplot(bdd_1$Concentration~bdd_1$annee,xlab="année",ylab="Concentrations en Hg",main="[Hg] dans les plumes de manchot empereur suivant l'année d'échantillonnage",cex.main=1)
5. Agencez les 2 graphiques côte à côte sous R. Lorsque ce double graphique est fait, importez-le dans Word.
Exercice 2
Pour importer le graphique dans word :- Cliquez sur la fenêtre graphique et faites Ctrl+C pour sauver en JPEG (Ctrl+W en
metafile) puis Ctrl+V dans word- Sur la fenêtre graphique : Fichier→ Sauver comme → choisir le format
Vous sauvez ainsi un fichier image à copier dans word
Exercice 3
1.Créez une matrice comportant les données suivantes. Les densités de Chevêches d’Athéna (en couple/km²) ont été étudiées dans 2 secteurs s1 et s2 de 1994 à 2000 inclus. Les densités du secteur 1 sont : 0,27 ; 0,28 ; 0,25 ; 0,27 ; 0,25 ; 0,15 et 0,13. Celles du secteur 2 sont 0,17 ; 0,17 ; 0,19 ; 0,13 ; 0,10 ; 0,11 et 0,09.
2.Représentez ces données sous forme d’une matrice.
3.Représentez graphiquement l’évolution des densités de Chevêches d’Athéna en fonction du temps pour les 2 secteurs.
Exemple de réalisation d’une matrice
Ordre de remplissage par défaut d’une matrice dans R
m = matrix(c(47,6,23,14,52,2,14,7), ncol=2)m [,1] [,2][1,] 47 52[2,] 6 2[3,] 23 14[4,] 14 7
En ajoutant byrow=T, on inverse l’ordre de remplissage :
m = matrix(c(47,6,23,14,52,2,14,7), ncol=2, byrow=T)m [,1] [,2][1,] 47 6[2,] 23 14[3,] 52 2[4,] 14 7
m = matrix (c(0.27,0.28,0.25,0.27,0.25,0.15, 0.13,0.17,0.17,0.19,0.13,0.10,0.11,0.09), ncol=7, byrow=T)m [,1] [,2] [,3] [,4] [,5] [,6] [,7][1,] 0.27 0.28 0.25 0.27 0.25 0.15 0.13[2,] 0.17 0.17 0.19 0.13 0.10 0.11 0.09
Exercice 3
1. Créez une matrice comportant les données suivantes. Les densités de Chevêches d’Athéna (en couple/km²) ont été étudiées dans 2 secteurs s1 et s2 de 1994 à 2000 inclus. Les densités du secteur 1 sont : 0,27 ; 0,28 ; 0,25 ; 0,27 ; 0,25 ; 0,15 et 0,13. Celles du secteur 2 sont 0,17 ; 0,17 ; 0,19 ; 0,13 ; 0,10 ; 0,11 et 0,09.
m = matrix (c(0.27,0.28,0.25,0.27,0.25,0.15, 0.13,0.17,0.17,0.19,0.13,0.10,0.11,0.09), ncol=7, byrow=T, dimnames=list(c("s1","s2"), seq(1994,2000,1)))m 1994 1995 1996 1997 1998 1999 2000s1 0.27 0.28 0.25 0.27 0.25 0.15 0.13s2 0.17 0.17 0.19 0.13 0.10 0.11 0.09
dimnames(m)[[1]][1] "s1" "s2"
[[2]][1] "1994" "1995" "1996" "1997" "1998" "1999" "2000"
Pour donner des titres de ligne et de colonne :
par(mfrow=c(1,2))
plot(m[1,] ~ dimnames(m)[[2]], xlab="Année du relevé", ylab="Densité (couple/km²)", col="red", main = "Densités de Chevêches d’Athéna en fonction du temps dans le site 1", cex=1.5, lwd=2, pch=8)
plot(m[2,] ~ dimnames(m)[[2]],xlab="Année du relevé", ylab="Densité (couple/km²)", col="green", main = "Densités de Chevêches d’Athéna en fonction du temps dans le site 2", cex=1.5, lwd=2, pch=9)
3. Représentez graphiquement l’évolution des densités de Chevêches d’Athéna en fonction du temps pour les 2 secteurs.
On obtient les deux figures suivantes dans la même fenêtre :
par(mfrow=c(1,1))
plot(m[1,] ~dimnames(m)[[2]], xlab="Année du relevé", ylab="Densité (couple/km²)", col="red", main = "Densités de Chevêches d’Athéna en fonction du temps", cex=1.5, lwd=2, pch=8)
points(m[2,]~dimnames(m)[[2]],col="green", cex=1.5, lwd=2, pch=9)
Pour avoir les deux sites sur la même figure :
Exercice 41. Importez sous R le jeu de données appelé « arbres ».
# Pour afficher le tableau de données bdd_2 = read.delim(“arbres.txt")bdd_2
#exemple pour le diametre. Utiliser la fonction remplacer (Ctrl+R) pour faire pareil pour le volume et la hauteur.
m_d=mean(bdd_2$diametre)s_d=sd(bdd_2$diametre)v_d=var(bdd_2$diametre)
rm_d=round(m_d,2)rs_d=round(s_d,2)rv_d=round(v_d,2)
2. Calculez les moyennes, écart-types et variances des diamètres, des volumes et des hauteurs.
3. Arrondissez ces valeurs à 2 chiffres après la virgule.
Exercice 4
#on crée la matrice :
m2=matrix(c(rm_d,rs_d,rv_d,rm_v,rs_v,rv_v,rm_h,rs_h,rv_h),ncol=3,dimnames=list(c("moyenne","sd","var"), c("diametre","volume","hauteur")))
#on la visualise :
m2
diametre volume hauteurmoyenne 1.10 30.17 76.00sd 0.26 16.44 6.37var 0.07 270.20 40.60
4. Représentez ces valeurs dans une matrice.
Exercice 4
valeur=c(bdd_2$diametre,bdd_2$volume,bdd_2$hauteur) #on stocke les valeurs ds un vecteur
parametre=c(rep("diametre",31),rep("volume",31),rep("hauteur",31)) #on crée un vecteur avec le nom des paramètres correspondant
tab=data.frame(valeur,parametre)#on fusionne les 2 vecteurs en 1 dataframe
moy=tapply(valeur,parametre,mean)#on applique tapply ; les résultats sont alors stockés ds un vecteurarr_mo=round(moy,2)#on peut appliquer round aux 3 valeurs contenues dans le vecteur
ecartyp=tapply(valeur,parametre,sd)arr_ecart=round(ecartyp,2)
vari=tapply(valeur,parametre,var)arr_vari=round(vari,2)
m3=matrix (c(arr_mo,arr_ecart,arr_vari),ncol=3, byrow=T, dimnames=list(c("moyenne","sd","var"),c("diametre","hauteur« ,"volume")))m3
2.3.4. Autre solution pour les questions 2 à 4
Exercice 45. Sur le jeu de données initial, enlevez les données qu’on juge extrêmes, c'est-à-dire
les données d’arbre(s) dont la hauteur est supérieure à 80 m.
bdd_2extrem=bdd_2[bdd_2$hauteur<80,]summary(bdd_2extrem) #permet de vérifier rapidement le maximum des variables de l’objet
par(mfrow=c(1,3))plot(volume~hauteur,data=bdd_2extrem,pch=19, cex.axis=1.5,cex.lab=1.5)plot(diametre~hauteur,data=bdd_2extrem,pch=19, cex.axis=1.5,cex.lab=1.5)plot(diametre~volume,data=bdd_2extrem,pch=19, cex.axis=1.5,cex.lab=1.5)
6. Sur ce nouveau jeu de données, représentez graphiquement le volume et le diamètre en fonction de la hauteur. Représentez sur un même graphique les 2 graphiques précédents plus un graphique représentant le volume en fonction du diamètre.
#on peut tout résumer en 1 seul graphique 3D avec la fonction cloud incluse dans le package lattice :library(lattice)cloud(diametre~volume+hauteur,data=bdd_2extrem)
Sauver votre travail
Dans Tinn R sauver votre script
12.1.
Sauver votre environnement de travail cad tous les objets créés au cours de votre travail.
2.2. Sauver votre historique de commande.
Dans R