Projet Statistique sous
Année Académique: 2021/2022
Niveau: C2A1-MDSMS : Cycle 2, Année 1
Filière : Ingénieur Statisticien Economiste
WANSOUWE WANBITCHING, PhD
1
Informations générales
Intitulé : Projet Statistique sous R
◦ Cours magistral : 10 heures
◦ Travaux dirigés : 5 heures
◦ TPE / TP : 5 heures
Éléments constitutifs de l'Unité d'Enseignement
◦ Cours magistral : soyez attentifs!
◦ Travaux Dirigés : Exercices
◦ Travail Personnel de l'étudiant
Organisation des évaluations
◦ Exercices et Travaux Pratiques
◦ Questions de cours
◦ Parfois des QCM
Types d'évaluation
◦ Projet : Travail à faire à la maison
2
Plan
Notions Intitulés
1 Introduction: R et Statistiques
2 Objets de R
3 Structures de données
4 Fonctions
5 Manipulation des données
6 Tests statistiques avec R
3
Pourquoi ce cours ?
L’objet de ce cours est d’initier les
apprenants à l’utilisation du logiciel R
pour l’analyse et le traitement des
données statistiques.
Ce cours doit être compris comme une
introduction à….
4
A- Introduction : R et Statistique
5
Introduction
R est un système d’analyse statistique et graphique
créé par R. Ihaka et R. Gentleman1
•Logiciel gratuit téléchargeable
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
1 6
Ikaha Ross, Gentleman Robert. 1996. R: a language for data analysis and graphics. J. Comput. Graph. Stat., 5: 299-314.
http://www.r-project.org/
Liens pour télécharger
(gratuitement) R, des
packages, de la doc,
etc…
Moteur de recherche
Documentation
7
•R peut être couplé à d’autres systèmes
d’analyse de données (système d’analyse
spatiale GRASS …)
Représentation graphique des données Analyse des structures spatiales
• Le principal inconvénient est un manque de
convivialité
8
Pour vous guider, vous disposez de nombreux sites d’aide
et d’exemples sur internet, par exemple :
http://pbil.univ-lyon1.fr/R/enseignement.html
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/
9
De nombreux tutoriels sont disponibles sur internet, par exemple :
« R pour les débutants », Emmanuel « An introduction to R », Venables et
Paradis 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 ») 10
Bienvenue dans R…
11
Bienvenue dans R…
12
• 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() 13
* procédure pour PC. Quelques subtiles différences pour Macintosh
Adresse du répertoire de travail
14
Aide dans R
À l’aide !
> help.start()
Aide avec recherche par mots clés
> help.search("working directory")
Aide spécifique à une fonction connue
> ? getwd
15
Pour obtenir l’aide sur une commande :
?nom_de_la_commande
Pour utiliser une commande :
nom_de_la_commande(argument1,argument2,…)
16
Sortez moi de là
17
Sauver votre travail
Dans R
1 Dans Tinn R 2.2. Sauver
sauver votre 2.1. votre historique de
script commande.
Sauver votre environnement de
travail cad tous les objets créés au
cours de votre travail. 18
R : un langage
19
Introduction
R est constitué de :
Langage orienté objet
Fenêtre de commande pour envoyer des instructions
Fenêtre graphique pour visualiser les résultats
Système de modules ou ”packages” alimenté par la
communauté
Large communauté d’utilisateurs et de développeurs
20
Structure de R
21
R pour programmer
22
Structure du langage
On compte donc trois grands types
d’éléments structuraux :
Les objets
Les éléments de contrôle
Les fonctions
23
Objets
24
Manipuler les objets
Les objets sont de plusieurs types
character (ex : texte)
logical (ex : booléen)
factor (ex : variable qualitative)
numeric (ex : variable quantitative)
vector (ex : tableau de valeurs de même type sans
dimension)
matrix (ex : tableau de valeurs de même type à 2
dimensions)
array(ex: tableau de valeurs de même type à plus de 2
dimensions)
data frame (ex: tableau de valeurs de types différents à 2
dimensions)
list(ex: stockage de valeurs de plusieurs types
> ?class : une fonction très utile pour le type 25
Création d’objets de classe « numeric »
Trois manières de créer un objet « numeric » ”x” de valeur 10
On peut créer un autre objet ”y” à partir de l’objet ”x” :
26
Objets plus complexes
Soit ”v” un vecteur contenant 6 entiers allant de 1 à 6
La merveilleuse fonction ”seq()” :
27
Création d’objets de classe ”matrix”
Soit ”m1” et ”m2” deux matrices 2*3 contenant les valeurs de ”v” :
28
Opérations matricielles
Addition :
Transposition :
Multiplication :
29
Création d’objets de classe « logical »
Booléens :
30
Les opérations logiques utiles dans R
Quelques opérateurs logiques :
31
Liste : définition
Définition (objet list)
Une liste est une collection d’objets hétérogènes. Elle est définie par la
commande list(el1=, el2=, ...). Les éléments d’une liste peuvent
posséder un nom.
> list(c(1,2,3),c("robert","johnson"),matrix(rnorm(4),2,2))
[[1]]
[1] 1 2 3
[[2]]
[1] "robert" "johnson"
[[3]]
[,1] [,2]
[1,] 0.2913862 0.3303319
[2,] -1.4849716 2.4071609
32
Liste : définition
Définition (objet list)
Une liste est une collection d’objets hétérogènes. Elle est définie par la
commande list(el1=, el2=, ...). Les éléments d’une liste peuvent
posséder un nom.
> list(numero = c(1,2,3), noms = c("robert","johnson"), mat =
matrix(rnorm(4),2,2))
$numero
[1] 1 2 3
$noms
[1] "robert" "johnson"
$mat
[,1] [,2]
[1,] 1.4355363 -0.8544773
[2,] 0.6386084 1.9803265
33
Création d’objets de classe list
Un objet liste, c’est comme une commode
avec plusieurs tiroirs :
34
Retourner aux valeurs dans les objets
Pour ouvrir et modifier les objets dans R on utilise les
crochets ”[ ]” :
35
Facteurs
Définition
Un facteur est un vecteur de variables catégorielles.
Les niveaux du facteur peuvent être ordonnés ou
pas.
Utilisation
Les facteurs s’utilisent pour catégoriser les
données d’un vecteur (ce qui s’avère très utile
pour la gestion des variables qualitatives).
un facteur est souvent associé à d’autres
vecteurs pour en définir une partition.
36
Création, manipulation des facteurs
Création : la fonction factor
> factor(sample(1:3, 10, replace = TRUE))
[1] 3 3 1 2 1 2 3 1 1 1
Levels: 1 2 3
> factor(sample(1:3, 10, replace = TRUE), levels = 1:5)
[1] 3 1 2 2 3 2 1 2 2 1
Levels: 1 2 3 4 5
• Gestion : nlevels,levels,table
> x <- factor(sample(c("thesard", "CR", "MdC"), 15, replace = TRUE))
> cat(nlevels(x), "niveaux:", levels(x))
3 niveaux: CR MdC thesard
> table(x)
x
CR MdC thesard
4 8 3
37
Un exemple de facteur associé à un vecteur
Données
Chacun me donne son âge et son grade
> age <- c(25, 35, 32, 27, 32, 40, 26, 25, 26, 28,
30, NA, 36,30, 30)
> grd <- c("thd", "CR", "MdC", "thd", "thd", "MdC",
"MdC", "thd“, "thd", "MdC", "CR", "MdC", "CR", "thd",
"thd")
Question : nombre d’individus par catégorie ?
> table(grd)
grd
CR MdC thd
3 5 7
38
La fonction tapply
Un autre point fort de R
Utilisation
Applique une fonction sur un vecteur partitionné en
groupes.
Question : âge moyen / écart-type par catégorie ?
> tapply(age, grd, mean, na.rm = TRUE)
CR MdC thd
33.66667 31.50000 27.85714
> tapply(age, grd, sd, na.rm = TRUE)
CR MdC thd
3.214550 6.191392 2.794553
39
Objet dataframe
Définition (objet data.frame)
C’est une liste à laquelle on impose
certaines contraintes, afin de rassembler
vecteurs et facteurs sous la forme d’un
tableau de données.
Pratiquement, un tableau de données est
une matrice dont les colonnes sont de mode
différent,
C’est l’objet idéal pour la manipulation de
données(forcez-vous à l’utiliser).
40
Création de tableau de données
Syntaxe
On peut spécifier le nom des colonnes par le vecteur row.names ou
directement comme pour une liste :
data.frame(e1=,e2=,...,row.names=)
> age <- c(25, 35, 32, 27, 32, 40, 26, 25, 26, 28, 30, NA, 36, 30, 30)
> grd <- c("thd", "CR", "MdC", "thd", "thd", "MdC", "MdC", "thd",
"thd", "MdC", "CR", "MdC", "CR", "thd", "thd")
> sex <- factor(sample(c(rep("M", 3), rep("F", 12))))
> donnees <- data.frame(age = age, grade = grd, sexe = sex)
> head(donnees)
age grade sexe
1 25 thd F
2 35 CR M
3 32 MdC F
4 27 thd F
5 32 thd F
6 40 MdC F
41
Manipulation du tableau de données
Comme une liste !
les commandes attach() / detach placent / ôtent
les éléments du tableaux de données dans
l’itinéraire de recherche.
> donnees$age
[1] 25 35 32 27 32 40 26 25 26 28 30 NA 36 30
30
> attach(donnees, warn.conflicts = FALSE)
> grade
[1] thd CR MdC thd thd MdC MdC thd thd MdC
CR MdC CR thd thd
Levels: CR MdC thd
> detach(donnees)
42
Travailler avec les tableaux de données
beaucoup de fonctions prédéfinies (by, tapply, etc.)
> summary(donnees)
age grade sexe
Min. :25.00 CR :3 F:12
1st Qu.:26.25 MdC:5 M: 3
Median :30.00 thd:7
Mean :30.14
3rd Qu.:32.00
Max. :40.00
NA's : 1.00
> attach(donnees, warn.conflicts = FALSE)
> by(age, sexe, mean, na.rm = TRUE)
> by(age, grade, mean, na.rm = TRUE)
43
Programmation en langage R
44
Rappels
1. Un éditeur de texte
(vos fonctions / scripts)
2. Un terminal avec R
(tester, sourcer)
« Sourcer »
source("un_script.R") : exécute la série
de commandes de mon_script.R
source("mes_fonctions.R") : charge le
contenu (les fonctions) de
mes_fonctions.R
45
Les principaux éléments de contrôle
Il existe trois grands éléments de contrôle
permettant de manipuler les objets et les fonctions
de manière à programmer une ou des tâches :
For
If
While
Tous les trois s’utilisent à peu prés de la même
manière et peuvent se combiner les uns aux autres
de manière imbriquée :
for/if/while (conditions)
{
liste d’instructions
}
46
Structure de contrôles
Regrouper les expressions : Syntaxe
{expr_1; expr_2; ...; expr_n }
ou
{
expr_1
...
expr_n
}
Remarques sur les groupes
o La dernière valeur du groupe est retournée ;
o Un groupe d’expressions peut être passé à une fonction,
réutilisé dans une expression plus grande, etc.
47
Exécution conditionnelle : if,if/else,ifelse
Syntaxe
if (condition) {
expr_1
} else {
expr_2
}
ou
ifelse(condition, a, b)
Remarques
o condition est une valeur logique : penser à &,|,!, . . .
o le else est optionnel,
o elseif permet d’imbriquer les conditionnements.
48
Application : calcul du prix TTC
#demander le prix ht
print("saisir prix ht")
ht <- scan()
#type de produit
print("type de produit : 1 - luxe, autre -
normal")
typprod <- scan()
#calcul du prix ttc
49
#calcul du prix ttc
if (typprod == 1)
{
tva <- 0.33
} else
{
tva <- 0.196
}
#calcul
ttc <- ht * (1 + tva)
#affichage
print(paste("prix ttc = ",as.character(ttc)))
50
Exécution répétée: boucle for
Syntaxe
for (var in set) {
expr(var)
}
ou
for (var in set)
expr(var)
à fuir pour éviter les effets de bords sournois !
Remarques sur la boucle for
o var est la variable incrémentée,
o set est un vecteur définissant les valeurs
successives,
o lente comparée aux opérateurs matriciels.
51
Application : calcul de la somme
# A faire : somme S = SUM_i i^2
# saisie de n
n <- scan()
# initialisation de la somme
s <- 0.0
# boucle for
for (i in 1:n){
s <- s + i^2
}
print("la somme = ")
print(s) 52
Exécution répétée : boucles while et repeat
Syntaxe
while (condition) {
expr
}
ou
repeat {
expr
}
Remarque
o Comme pour for, éviter les imbrications sources de
lenteur.
53
Application : calcul de la somme
# A faire : somme S = SUM_i i^2
# saisie de n
n <- scan()
#initialisation de la somme et de l’indice
s <- 0.0
i <- 1
#boucle « tant que »
while (i < n){
s <- s + i^2
i <- i + 1 }
#affichage des résultats
print("la somme = ")
54
Contrôle des boucles : break, next
Exemples d’utilisation
repeat {
expr
if (condition) {break}
}
ou
while (condition1){
expr_1
if (condition2) {next}
expr_2
}
Remarque
break est la seule manière d’interrompre une boucle
repeat.
55
Fonctions
56
Les fonctions
Syntaxe
nom_de_la_fonction <- function(arg1,arg2, ...) {
expression
return(var)
}
Remarques
o return peut être omis (à éviter) : dans ce cas la
dernière valeur calculée est renvoyée.
o peut être tapée directement dans l’interpréteur ou
dans un fichier externe functions.R, chargé par
source.
57
Un exemple simple
Moyenne empirique d’un vecteur
Avec suppression des valeurs manquantes !
moyenne <- function(x) {
## suppression des valeurs manquantes
x.not.na <- x[!is.na(x)]
## moyenne empirique
resultat <- sum(x.not.na) / length(x.not.na)
return(resultat)
}
Tests
> moyenne(rnorm(100))
[1] 0.06792586
> moyenne(c(1, -5, 3, NA, 8.7))
[1] 1.925 58
Les arguments, leurs valeurs par défaut
Propriétés
o les arguments peuvent être passés dans le désordre
s’ils sont nommés : var=object,
o on peut définir une valeur par défaut pour n’importe
quel argument lors de la définition de la fonction :
var=10.
o en cas de sorties multiples, les sorties doivent être
renvoyées sous forme de liste.
Remarques
o Les valeurs par défaut rendent la lecture des fonctions
beaucoup plus aisée pour l’utilisateur : imposer peu
d’arguments obligatoires.
o Les noms des éléments de la liste définie dans la
fonction sont conservés à l’extérieur de la fonction.
59
Un exemple (un tout petit peu) plus avancé
Résumé numérique d’un vecteur
> resume <- function(x, na.rm = TRUE, affiche = FALSE) {
+ mu <- mean(x, na.rm = na.rm)
+ s2 <- var(x, na.rm = na.rm)
+ if (affiche) {
+ cat("\nMoyenne:", mu, "et variance:", s2)
+}
+ return(list(moyenne = mu, variance = s2))
+}
> out <- resume(rnorm(100))
> out$variance
[1] 0.7163688
> out <- resume(affiche = TRUE, x = rexp(100, 0.5))
Moyenne: 1.896648 et variance: 4.912842 60
« Les fonctions sont nos … amies »
61
Quelques fonctions usuelles
• read.table()
• apply()
• rnorm()
• cor() • sample()
• head() • sum()
• length() • str()
• match()
• table()
• var()
• mean()
• which()
• write.table()
62
Et toujours de l’aide
63
Manipulation des données avec R
64
Importation des données
Cas d’un fichier .csv
La fonction d’importation dépend des
caractères utilisés pour séparer les colonnes
et pour séparer les décimales.
Format européen : read.csv2()
o colonnes séparées par un point-virgule
o décimales par une virgule,
data <- read.csv2("chemin/fichier.csv")
65
Importation des données
Cas d’un fichier .csv
Autres formats : read.csv()
o colonnes séparées par une virgule
o décimales par un point,
data <- read.csv("chemin/fichier.csv")
66
Importation des données
Cas d’un fichier .txt
Dans ce cas, les colonnes sont généralement
séparées par une tabulation.
Dans ce cas, en fonction du caractère
employé pour séparer les décimales, on a les
fonctions read.delim() et read.delim2().
67
Importation des données
Cas des fichiers .fwf et .tsv : read_*()
On a respectivement les fonctions read_.fwf()
et read_.tsv() ou read_table() de « reader».
68
Importation des données
Cas des fichiers .xlxs
Si les données sont au format. xlsx, on utilise
la fonction read.xlxs() du package xlsx.
Cas des fichiers SPSS ou Stata
Le package foreign dispose de deux
commandes permettant de charger des
fichiers enregistrés au format SPSS (fichier
.sav) ou Stata (fichier .dta) : read.spss() et
read.dta().
Il est nécessaire de “charger le package”
o library(foreign)
69
Création et manipulation de fichier
Name_FirstName <-c("Smith_Emily", "Jonhson_Mikael", "Williams_Ashley", "Jones_Alex",
"Brown_Katie", "Davis_John","Miller_Megan", "Wilson_Matthew", "Moore_Grace", "Taylor_Jack")
Sex <- c("F", "M","F", "M","F", "M","F", "M","F", "M")
Age <- c(NA, 253L,38L, 15L, 79L, 56L, 63L, 19L, 24L,-1L)
Height <- c(1.68, 1.93, 1.55, NA, 1.63, 1.70, 1.50, 1.87, 1.52, 2.15)
Hair <- c("Blond", "Brown", "Brown", "Other", "Blond", "Other", NA, "Brown", "Blond", "Brown")
Blue_Eye <- c(1,0,0,0,1,1,0,0,0,0)
Brown_Eye <- c(0,1,1,0,0,0,1,0,1,0)
Other_Eye <- c(0,0,0,1,0,0,0,1,0,1)
people <- data.frame (Name_FirstName=Name_FirstName,
Sex =Sex ,
Age=Age,
Height=Height,
Hair=Hair,
Blue_Eye=Blue_Eye,
Brown_Eye=Brown_Eye,
Other_Eye=Other_Eye
) 70
Création et manipulation de fichier
Quelques fonctions utiles :
Pour vérifier l’importation : head(), tail()
head(people,7)
tail(people,3)
Pour contrôler la structure des données : str()
Elle permet de connaître:
le format des données
les dimensions du jeu de données
le nom des variables le format de ces variables
Remarque : `stringsAsFactor = FALSE` permet
d’éviter que les chaines de caractères soient converties
en variables catégorielles dans R. 71
Gestion des problèmes de structure avec tidyverse
1- Séparer une variable en deux colonnes avec separate()
Fonction : separate()
library(tidyverse)
people <- people %>%
separate(Name_FirstName,c("Name", "FisrtName"))
La fonction inverse est la fonction unite().
72
Gestion des problèmes de structure avec tidyverse
2- Séparer les valeurs d'une colonne en deux lignes
Soit le dataframe enfant ci-dessous :
FirstName <-c("Emily", "Mikael", "Ashley", "Alex", "Katie", "John")
Children <- c("1B/0G","1B/2G", "0B/2G","3B/2G", "1B/1G",
"1B/5G" )
enfant <- data.frame(FirstName ,Children)
La colonne “Children” indique le nombre de
garçons (B) et celui de filles (G)
La fonction separate_rows() permet de créer des
lignes (une pour les garçons et une pour les filles)
enfant <- enfant %>%
separate_rows(Children, sep="/") 73
Gestion des problèmes de structure avec tidyverse
2- Modifier le nom des variables
On peut facilement modifier le nom des variables
en utilisant la fonction name()
Exemple : names(people)[2] <- "Prenom"
3- Gestion des valeurs manquantes
Recherche des valeurs manquantes : summary() ou
df_status()(package `funModelling`).
Supprimer les lignes comportant des NA: na.omit()
people_sans_NA <- na.omit(people)
summary(people_sans_NA)
74
Gestion des problèmes de structure avec tidyverse
3- Gestion des valeurs manquantes
Remplacer les NA : replace_na()
Exemple :
people_rep <- people %>%
mutate(Height=replace_na(Height,mean(Height, na.rm=TRUE)))
4- Identification des valeurs aberrantes
Les valeurs numériques : summary()
Visualisation avec le tableur Rstudio : view() ou clic sur
l’objet dans Environnement et trier les valeurs
Visualisations en construisant les graphiques
5- Identification les outliers : boxplot.stat()
outlier_age <- boxplot.stats(people$Age)$out
Et l’indice : outlier_idx <- which(people$Age %in% c(outlier_age)) 75
Manipulation des données catégorielles
1. La fonction as.factor()
Soit la base de données Melanoma qui contient les données de
patients atteints de Mélanome malin.
library(MASS)
head(Melanoma)
str(Melanoma)
Transformer les variables status, sex et ulcer en facteurs
o Melanoma$status <- as.factor(Melanoma$status)
o Melanoma$sex <- as.factor(Melanoma$sex)
o Melanoma$ulcer <- as.factor(Melanoma$ulcer)
o str(Melanoma)
76
Fonctions essentielles de dplyr (Tidyverse)
select() : selectionne et éventuellement
renomme des variables
filter(): crée un dataframe avec les lignes
satisfaisant la condition.
arrange(): permet de trier des observations
mutate() : ajoute de nouvelles variables
summarise(): résume
77
TP- Utilisation du package « dplyr »
Base de données covid-19.csv
La base contient les données collectées entre
le 20 janvier et le 1er juin 2020.
On désire déterminer les trois pays les plus
touchés par la pandémie à cette date
78
Les variables
1. `Date`: Date
2. `Continent_Name`: Continent names
3. `Two_Letter_Country_Code`: Country Codes
4. `Country_Region`: Country names
5. `Province_State`: States/province names; value is
`All States` when state/provincial level data is not
available
6. `positive`: Cumulative number of positive cases
reported.
7. `active`: Number of actively cases on that day
8. `hospitalized`: Cumulative number of hospitalized
cases reported.
79
Les variables
9. `hospitalizedCurr`: Number of actively hospitalized cases
on that day.
10. `recovered`: Cumulative number of recovered cases
reported.
11. `death`: Cumulative number of deaths reported.
12. `total_tested`: Cumulative number of tests conducted.
13. `daily_tested`: Number of tests conducted on the day; if
daily data is unavailable, daily tested is averaged across
number of days in between.
14. `daily_positive`: Number of positive cases reported on
the day; if daily data is unavailable, daily positive is averaged
across Snumber of days in.
80
TP- manipulation de la base covid-19
Pour cela:
1- Importer la base de données
2- Combien d’observations et de variables compte la base?
3- Explorer la base en affichant les premières et les dernières
lignes de la base
4- Créer une variable col_vectors contenant les noms des
colonnes de la base
5- Afficher une description de la base à l’aide de la fonction
glimpse() du package tibble.
81
TP- manipulation de la base covid-19
6- En explorant la base, vous vous rendez compte que les
informations collectées concernent les pays et parfois des
Etats(variable ‘Province_state’).
Nettoyer la base en gardant uniquement les informations
concernant les pays, puis enlever cette colonne de la base à
l’aide de la fonction filter() du package «dplyr »
7- A l’aide de la fonction groupby() regrouper les données
par pays et calculer le ratio
82
Solution
covid_df_all_states <- covid_df %>%
filter(Province_State == "All States") %>%
select(-Province_State)
covid_df_all_states_daily_sum <- covid_df_all_states_daily %>%
group_by(Country_Region) %>%
summarise(tested = sum(daily_tested),
positive = sum(daily_positive),
active = sum(active),
hospitalized = sum(hospitalizedCurr)) %>%
arrange(desc(tested))
covid_df_all_states_daily_sum 83
Représentations graphiques
84
Importer un fichier
fonction chemin
85
Variables qualitatives – diagrammes à bandes
> barplot(table(smp.c$prof)
86
Variables qualitatives – camembert
> pie(table(smp.c$prof)
87
Variables quantitatives continues - histogramme
> hist(smp.c$age)
88
Variables quantitatives continues - histogramme
> hist(smp.c$age, col=‘’grey ’’,
> hist(smp.c$age) main=‘’’’, xlab=‘’age ’’)
89
Variables quantitatives – bâtons – boites à moustaches
>boxplot(smp.c$age,xlab=‘’age’’)
90
Variables quantitatives – bâtons – boites à moustaches
>boxplot(smp.c$age,xlab=‘’age’’)
91
Variables quantitatives – bâtons – boites à moustaches
>boxplot(smp.c$age ~smp.c$rs,ylab=‘’age’’,xlab=’’recherche de
sensation’’)
Interprétation
La distribution en âge est
légèrement supérieure
quand on a un faible
niveau de sensation que
lorsqu’on a un niveau de
sensation élevé.
92
Distribution conjointe de 2 variables quantitatives – diagramme
cartésien
>plot(smp.c$age , smp.c$n.enfant)
93
Distribution conjointe de 2 variables quantitatives – diagramme
cartésien
>plot(jitter (smp.c$age) , jitter(smp.c$n.enfant))
On évite ainsi la superposition des points à l’aide d’un décalage
94