Nous chargeons la base de données dans la variable cpes :
# Charger des données dans la variable cpes
cpes <- read.csv("./cpes_quanti/bdd_alimentation.csv")
On considère conjointement deux variables X et Y pour
Nous allons étudier deux outils qui peuvent être employés pour décrire le lien entre deux variables quantitatives.
Premier exemple : lien entre le nombre de repas pris seuls et le nombre de repas pris dans son logement personnel.
repas.seul <- cpes$repas.qui.seul.midi + cpes$repas.qui.seul.soir
repas.logt <- cpes$repas.ou.logement.midi + cpes$repas.ou.logement.soir
plot(repas.seul, repas.logt,
xlab = "Nombre de repas pris seuls",
ylab = "Nombre de repas pris chez soi",
main = "Lien entre le nombre de repas pris seuls et chez soi")
Questions :
Deuxième exemple : lien entre montant des courses par personne et des ressources financières totales.
# On commence par sélectionner un sous-ensemble de notre échantillon,
# ceux qui ont fait des courses pour au moins une personne.
cpes.courses <- cpes[cpes$courses.pers >= 1, ]
# On peut ensuite ajouter une nouvelle variable à notre base de données : le montant des courses pour une personne
cpes.courses$courses.prixprop <- cpes.courses$courses.prix/cpes.courses$courses.pers
# On trace le nuage de points
plot(cpes.courses$ressources.total, cpes.courses$courses.prixprop,
pch = 19, col = rgb(1, 0, 0, 0.3), # Faire des points transparents à 30%
frame.plot = F, # Supprimer la boîte en haut et à droite
xlab = "Montant des ressources totales (€)",
ylab = "Montant des courses par personne (€)",
main = "Lien entre ressources financières et montant des courses")
Questions :
Le coefficient \(r\) de Pearson permet de mesurer le degré de corrélation linéaire entre deux variables quantitatives \(X\) et \(Y\). Il est compris entre \([-1 ; 1]\) :
Prudence ! Le \(r\) de Pearson mesure seulement la force de la corrélation linéaire entre deux variables. D’autres relations, non-linéaires, peuvent exister.
Calcul du \(r\) pour l’exemple 1 :
# L'argument "use" permet de ne pas se préoccuper des NA
cor(repas.seul, repas.logt, use = "complete.obs")
## [1] 0.4300067
Interprétez ce coefficient.
Calcul du \(r\) pour l’exemple 2 :
# L'argument "use" permet de ne pas se préoccuper des NA
cor(cpes.courses$ressources.total, cpes.courses$courses.prixprop, use = "complete.obs")
## [1] 0.1249346
Interprétez ce coefficient et comparez-le au précédent. Que pouvez-vous en déduire ?
Aussi appelé “tableau croisé”.
Si les statisticiens préfèrent, en toute rigueur, parler de « table de contingence », les sociologues utilisent plus facilement l’expression de « tableau croisé », plus imagée, pour désigner cet outil qui à lui seul incarne, en même temps qu’il la symbolise, toute une façon de faire de la sociologie.
Pierre Mercklé - Les 100 mots de la sociologie
Exemple : étudier le lien entre genre et filière du CPES.
t <- table(cpes$genre, cpes$cpes.filiere)
t
##
## humanites sciences sesj
## femme 35 17 42
## homme 17 9 8
Avec les marges :
t.margins <- addmargins(t)
t.margins
##
## humanites sciences sesj Sum
## femme 35 17 42 94
## homme 17 9 8 34
## Sum 52 26 50 128
En changeant le nom des marges :
t.margins <- addmargins(t, FUN = list(list(Ensemble = sum)), quiet = T)
t.margins
##
## humanites sciences sesj Ensemble
## femme 35 17 42 94
## homme 17 9 8 34
## Ensemble 52 26 50 128
Interprétez. Quelles sont les limites d’un tableau contenant uniquement des effectifs ?
Solution “manuelle” ?
t/nrow(cpes)
##
## humanites sciences sesj
## femme 0.2734375 0.1328125 0.3281250
## homme 0.1328125 0.0703125 0.0625000
Évidemment, il existe une fonction plus élégante, fournie par le package questionr :
library("questionr")
prop(t)
##
## humanites sciences sesj Total
## femme 27.3 13.3 32.8 73.4
## homme 13.3 7.0 6.2 26.6
## Total 40.6 20.3 39.1 100.0
Interprétez ce tableau. Quelles sont ses limites ?
Fonction rprop, fournie par questionr, rend la tâche très simple :
rprop(t)
##
## humanites sciences sesj Total
## femme 37.2 18.1 44.7 100.0
## homme 50.0 26.5 23.5 100.0
## Ensemble 40.6 20.3 39.1 100.0
Comment interpréter ce tableau ? Comment utiliser l’ensemble ? Ce tableau nous informe-t-il sur le lien entre ces deux variables ? Si oui, de quelle manière ?
Encore une fois, une fonction très simple :
cprop(t)
##
## humanites sciences sesj Ensemble
## femme 67.3 65.4 84.0 73.4
## homme 32.7 34.6 16.0 26.6
## Total 100.0 100.0 100.0 100.0
Comment interpréter ce tableau ? Comment utiliser l’ensemble ? Ce tableau nous informe-t-il sur le lien entre ces deux variables ? Si oui, de quelle manière ?
Difficulté pour les questions à choix multiples,
# Étape 1 : regrouper les variables dichotomiques
courses <- cpes[, c("courses.bio", "courses.discount", "courses.epicerie", "courses.marche", "courses.supermarche", "courses.traiteur")]
# Étape 2 : créer le tableau des effectifs
t <- cross.multi.table(courses, cpes$cpes.filiere)
addmargins(t)
## humanites sciences sesj Sum
## courses.bio 9 5 4 18
## courses.discount 18 5 15 38
## courses.epicerie 6 2 5 13
## courses.marche 2 1 1 4
## courses.supermarche 19 10 23 52
## courses.traiteur 4 2 8 14
## Sum 58 25 56 139
On peut aussi calculer des pourcentages en colonne si l’on souhaite :
# Étape 3 : afficher le tableau avec des % en colonne
cprop(t)
## humanites sciences sesj Ensemble
## courses.bio 15.5 20.0 7.1 12.9
## courses.discount 31.0 20.0 26.8 27.3
## courses.epicerie 10.3 8.0 8.9 9.4
## courses.marche 3.4 4.0 1.8 2.9
## courses.supermarche 32.8 40.0 41.1 37.4
## courses.traiteur 6.9 8.0 14.3 10.1
## Total 100.0 100.0 100.0 100.0
Attention : est-ce normal d’obtenir 100% en total ? Déduisez l’individu statistique dans ce tableau.
Graphique en mosaïque :
mosaicplot(genre ~ cpes.filiere, data = cpes,
main = "Relation entre genre et filière du CPES")
Premier exemple : lien entre temps passé à cuisiner et le genre.
boxplot(cuisine.temps ~ genre, data = cpes)
Interprétez.
Exemple 2 : temps de cuisine et baccalauréat de la mère.
boxplot(cuisine.temps ~ mere.bac, data = cpes)
Interprétez.
Tableau qui croise la variable catégorielle avec la moyenne de la variable quantitative dans chacun des groupes.
Exemple 1 :
aggregate(cpes$cuisine.temps, list(Genre=cpes$genre), mean, na.rm = TRUE)
Exemple 2 :
aggregate(cpes$cuisine.temps, list(MereBac=cpes$mere.bac), mean, na.rm = TRUE)
Comment interpréter ces deux tableaux ?