Cours_INAT

Haifa Ben Messaoud

11/25/2020

Présentation du logiciel R

R est un langage orienté vers le traitement de données et l’analyse statistique dérivé du langage S. Il est développé depuis une vingtaine d’années par un groupe de volontaires de différents pays. C’est un logiciel libre, publié sous licence GNU GPL.

Utilisation du logiciel R

L’utilisation de R présente plusieurs avantages :

Qu’est-ce qu’un package dans R

R est fourni avec un ensemble de fonctions de bases, principalement dédiées à l’étude statistiques et à la datascience. Cependant, au fur et à mesure de son développement, le langage s’est ouvert à une multitude de pratiques qui ont donné l’occasion à la communauté de créer leurs propres librairies.

Les librairies, que l’on appelle également package, sont un ensemble de fonctions regroupées pour un usage spécifique: traitement de tableaux de données, de chaînes de caractères

Comment installer un package dans R

Pour installer notre package dans R, nous utilisons la fonction install.packages()

Par exemple, si vous cherchez à installer la librairie DPLYR :

install.packages(“dplyr”)

Comment importer des données dans R

Importer des données via Excel

La fonction read_excel permet d’importer à la fois des fichiers .xls (Excel 2003 et précédents) et .xlsx (Excel 2007 et suivants).

library(readxl)

donnees <- read_excel(“data/fichier.xlsx”)

Une seule feuille de calculs peut être importée à la fois. On pourra préciser la feuille désirée avec sheet en indiquant soit le nom de la feuille, soit sa position (première, seconde, …).

donnees <- read_excel(“data/fichier.xlsx”, sheet = 3)

donnees <- read_excel(“data/fichier.xlsx”, sheet = “mes_donnees”)

Comment importer des données dans R

Importer des données via SPSS

Les fichiers générés par SPSS sont de deux types : les fichiers SPSS natifs natifs (extension .sav) et les fichiers au format SPSS export (extension .por).

Dans les deux cas, on aura recours à la fonction read_spss de la bibliothèque haven :

library(haven) donnees <- read_spss(“data/fichier.sav”, user_na = TRUE)

Statistiques descriptives avec R

Exploration des données

Nous allons charger les données iris en utilisants la bibliothèque datasets

#chargement du package 
library(datasets)


#chargement des données 
data("iris")
d <- iris

#les noms des variables 
names(d)
## [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"
#la structure des variables 
str(d)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

Statistiques descriptives avec R

Statistique univariée

#calcul de la moyenne 
mean(d$Sepal.Length)
## [1] 5.843333
#calcul de l'écart type 
sd(d$Sepal.Length)
## [1] 0.8280661
#calcul du minimum
min(d$Sepal.Length)
## [1] 4.3
#calcul du maximum
max(d$Sepal.Length)
## [1] 7.9
#calcul de la médiane 
median(d$Sepal.Length)
## [1] 5.8
#calcul de tous les indicateurs  
summary(d)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Statistiques descriptives avec R

Graphiques : Histogrammes

hist(d$Sepal.Length, main = "longeur de la sépale de chaque espèce", xlab = "Espèce", ylab = "Effectif")

Statistiques descriptives avec R

Graphiques : Boîtes à moustaches

Les boîtes à moustaches, ou boxplots en anglais, sont une autre représentation graphique de la répartition des valeurs d’une variable quantitative. Elles sont particulièrement utiles pour comparer les distributions de plusieurs variables ou d’une même variable entre différents groupes, mais peuvent aussi être utilisées pour représenter la dispersion d’une unique variable. La fonction qui produit ces graphiques est la fonction boxplot.

boxplot(d$Sepal.Length, main = "longeur de la sépale de chaque espèce", ylab = "Longeur de la sépale")

Statistiques descriptives avec R

Graphiques : Boîtes à moustaches

Le carré au centre du graphique est délimité par les premiers et troisième quartiles, avec la médiane représentée par une ligne plus sombre au milieu. Les « fourchettes » s’étendant de part et d’autres vont soit jusqu’à la valeur minimale ou maximale, soit jusqu’à une valeur approximativement égale au quartile le plus proche plus 1,5 fois l’écart interquartile. Les points se situant en-dehors de cette fourchette sont représentés par des petits ronds et sont généralement considérés comme des valeurs extrêmes, potentiellement aberrantes.

Statistiques descriptives avec R

Variables qualitatives

La fonction la plus utilisée pour le traitement et l’analyse des variables qualitatives (variable prenant ses valeurs dans un ensemble de modalités) est sans aucun doute la fonction table, qui donne les effectifs de chaque modalité de la variable, ce qu’on appelle un tri à plat ou tableau de fréquences.

table(d$Species)
## 
##     setosa versicolor  virginica 
##         50         50         50

Statistiques descriptives avec R

Variables qualitatives

Quand le nombre de modalités est élevé, on peut ordonner le tri à plat selon les effectifs à l’aide de la fonction sort.

sort(table(d$Species))
## 
##     setosa versicolor  virginica 
##         50         50         50
sort(table(d$Species),decreasing = TRUE)
## 
##     setosa versicolor  virginica 
##         50         50         50

Statistiques descriptives avec R

Variables qualitatives

Quand le nombre de modalités est élevé, on peut ordonner le tri à plat selon les effectifs à l’aide de la fonction sort.

sort(table(d$Species))
## 
##     setosa versicolor  virginica 
##         50         50         50
sort(table(d$Species),decreasing = TRUE)
## 
##     setosa versicolor  virginica 
##         50         50         50

Statistiques descriptives avec R

Calcul de la fréquence

eff<-table(d$Species)
eff
## 
##     setosa versicolor  virginica 
##         50         50         50
ecc<-cumsum(eff)
ecc
##     setosa versicolor  virginica 
##         50        100        150
ecd<-rev(cumsum(rev(eff)))
ecd
##     setosa versicolor  virginica 
##        150        100         50
freq<-prop.table(eff)
freq
## 
##     setosa versicolor  virginica 
##  0.3333333  0.3333333  0.3333333
fcc<-cumsum(freq)
fcc
##     setosa versicolor  virginica 
##  0.3333333  0.6666667  1.0000000
fcd<-rev(cumsum(rev(freq)))
fcd
##     setosa versicolor  virginica 
##  1.0000000  0.6666667  0.3333333

Statistiques descriptives avec R

Présentation graphique des variables qualitatives

Les diagrammes en bâtons sont utilisés automatiquement par R lorsqu’on applique la fonction générique plot à un tri à plat obtenu avec table. On privilégiera cependant ce type de représentations pour les variables de type numérique comportant un nombre fini de valeurs.

plot(table(d$Species), main = "Nombre de fleurs par espèce", ylab = "Effectif")

Manipulation des données avec R

Filtrer les données

filter sélectionne des lignes d’une table selon une condition. On lui passe en paramètre un test, et seules les lignes pour lesquelles ce test renvoie TRUE (vrai) sont conservées. Pour plus d’informations sur les tests et leur syntaxe, voir la section 9.2.

Par exemple, si on veut sélectionner les vols du mois de janvier, on peut filtrer sur la variable month de la manière suivante :

library(dplyr)

# filter() les données de l'espèce virginica

virginica <- filter(d, Species == "virginica")

head(virginica) # afficher les 6 premières lignes
##   Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
## 1          6.3         3.3          6.0         2.5 virginica
## 2          5.8         2.7          5.1         1.9 virginica
## 3          7.1         3.0          5.9         2.1 virginica
## 4          6.3         2.9          5.6         1.8 virginica
## 5          6.5         3.0          5.8         2.2 virginica
## 6          7.6         3.0          6.6         2.1 virginica

Manipulation des données avec R

Filtrer les données

On peut également placer des fonctions dans les tests, qui nous permettent par exemple de sélectionner les fleurs avec le max de sepal.length :

max.sepal = filter(d , Sepal.Length == max(Sepal.Length))
head(max.sepal)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
## 1          7.9         3.8          6.4           2 virginica

Manipulation des données avec R

Sélectionner des colonnes

select permet de sélectionner des colonnes d’un tableau de données.

# select() des colonnes spécifiques
selected <- select(d, Sepal.Length, Sepal.Width, Petal.Length)
# selectionner toutes les colonnes de sepal.length à petal.length
selected2 <- select(d, Sepal.Length:Petal.Length)
head(selected, 3)
##   Sepal.Length Sepal.Width Petal.Length
## 1          5.1         3.5          1.4
## 2          4.9         3.0          1.4
## 3          4.7         3.2          1.3
head(selected2, 3)
##   Sepal.Length Sepal.Width Petal.Length
## 1          5.1         3.5          1.4
## 2          4.9         3.0          1.4
## 3          4.7         3.2          1.3

Manipulation des données avec R

arranger des colonnes

arrange réordonne les lignes d’un tableau selon une ou plusieurs colonnes.

arranged = arrange(d,Sepal.Length)
head(arranged)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          4.3         3.0          1.1         0.1  setosa
## 2          4.4         2.9          1.4         0.2  setosa
## 3          4.4         3.0          1.3         0.2  setosa
## 4          4.4         3.2          1.3         0.2  setosa
## 5          4.5         2.3          1.3         0.3  setosa
## 6          4.6         3.1          1.5         0.2  setosa

Manipulation des données avec R

Création d’une nouvelle colonne

mutate permet de créer de nouvelles colonnes dans le tableau de données, en général à partir de variables existantes.

# Créer une nouvelle colonne qui donne Vrai si sepal.width > 0.5 * sepal.length
newCol <- mutate(d, greater.half = Sepal.Width > 0.5 * Sepal.Length)
tail(newCol)
##     Sepal.Length Sepal.Width Petal.Length Petal.Width   Species greater.half
## 145          6.7         3.3          5.7         2.5 virginica        FALSE
## 146          6.7         3.0          5.2         2.3 virginica        FALSE
## 147          6.3         2.5          5.0         1.9 virginica        FALSE
## 148          6.5         3.0          5.2         2.0 virginica        FALSE
## 149          6.2         3.4          5.4         2.3 virginica         TRUE
## 150          5.9         3.0          5.1         1.8 virginica         TRUE

Manipulation des données avec R

Goup by

Un élément très important de dplyr est la fonction group_by. Elle permet de définir des groupes de lignes à partir des valeurs d’une ou plusieurs colonnes.

# Créer une nouvelle colonne qui donne Vrai si sepal.width > 0.5 * sepal.length
groupped.species = d %>% group_by(Species)
tail(groupped.species)
## # A tibble: 6 x 5
## # Groups:   Species [1]
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species  
##          <dbl>       <dbl>        <dbl>       <dbl> <fct>    
## 1          6.7         3.3          5.7         2.5 virginica
## 2          6.7         3            5.2         2.3 virginica
## 3          6.3         2.5          5           1.9 virginica
## 4          6.5         3            5.2         2   virginica
## 5          6.2         3.4          5.4         2.3 virginica
## 6          5.9         3            5.1         1.8 virginica