Entretiens
# TODO : rajouter laisse mail dans les colonnes
# TODO : reprendre avec l'objectif de comparer plusieurs sous-échantillons avec une population de référence.
# TODO : reprendre partie ACM. Objectif : arriver à positionner les sous-échantillons
# TODO : plotter uniquement les éléments les mieux représentés.
Tirage
Je pars du tirage effectué par Ingrid et Patrick, pour construire 3 premiers sous-échantillons :
- l’ensemble des individus ayant déclaré une dégradation des relations (degradOui)
- l’ensemble des individus ayant déclaré avoir noué de nouveaux contacts à l’occasion du confinement (nouvOui)
A cela, s’ajoutent deux sous-échantillons issus de combinaison entre les deux précédent (union et intersection) :
- l’ensemble des individus ayant déclaré une dégradation des relations et de nouveaux contacts (degradEtNouv)
- l’ensemble des individus ayant déclaré une dégradation des relations ou de nouveaux contacts (degradOuNouv)
DegradOuNouv est le plus vaste et celui qui sera utilisé pour le tirage des enquêtés. Je définis néanmoins tous les autres pour me donner les moyens d’objectiver des caractéristiques particulières de certaines des sous-parties du sous-échantillon (pfiou, compliqué…). Un dernier sous-échantillon, degradOuNouvPaca, est une extraction des répondants PACA de degradOuNouv.
degradOui <- filter(brut, NOUVCONTACT == "Oui")
nouvOui <- filter(brut, DEGRAD == "Oui")
degradEtNouv <- filter(brut, DEGRAD == "Oui", NOUVCONTACT == "Oui")
degradOuNouv <- filter(brut, (DEGRAD == "Oui" | NOUVCONTACT == "Oui"))
degradOuNouvPaca <- filter(brut, (DEGRAD == "Oui" | NOUVCONTACT == "Oui"), REGION_NEW == "Provence-Alpes-Côte-d'Azur")
Le renseignement du mail est-il lié aux variables d’intérêt ?
Réponse : oui, et pas qu’un peu.
Evidemment, c’est une mauvaise nouvelle pour notre quali. En revanche et paradoxalement, ce peut-être une bonne nouvelle si on cherche à modéliser la dégradation des relations ou l’apparition de nouveaux contacts. Le contrôle du biais de sélection par une régression de Heckman peut alors “prendre” sur les données, et la correction du biais de sélection peut, au passage, ajuster d’autres biais. A voir cependant… To be continued.
Exploration des caractéristiques socio-démographiques
Je retiens : le genre, l’âge, le niveau de diplôme, la PCS, la région, la taille de l’agglomération.
arrondi_percent <- function(x) {
round(x*100, 0)
}
vars <- c("SEXE_cal", # Cette variable est recodée pour enlever les "autres définition de genre"
"AGE_cal", # Je prends la variable ayant servi au calage sur marges car elle est recodée en peu de modalité
"DIPLONIV",
"PCS_rec6",
"PCS_rec9",
"REGION_NEW", # Il y a aussi une variable REGION_OLD, nécessairement plus fine mais évidemment plus à jour après les regroupements
"TUU2017",
"TUU_cal" # Duo urbain-rural
)
effectifs <- lapply(vars, function(x) {
tabComplet <- table(brut[, x], useNA = "always") %>% addmargins() %>% as.data.frame() %>% .$Freq
tabDegradOui <- table(degradOui[, x], useNA = "always") %>% addmargins() %>% as.data.frame() %>% .$Freq
tabNouvOui <- table(nouvOui[, x], useNA = "always") %>% addmargins() %>% as.data.frame() %>% .$Freq
tabDegradOuNouv <- table(degradOuNouv[, x], useNA = "always") %>% addmargins() %>% as.data.frame() %>% .$Freq
tabDegradEtNouv <- table(degradEtNouv[, x], useNA = "always") %>% addmargins() %>% as.data.frame() %>% .$Freq
tabDegradOuNouvPaca <- table(degradOuNouvPaca[, x], useNA = "always") %>% addmargins() %>% as.data.frame() %>% .$Freq
tmp <- cbind(tabDegradOui, tabNouvOui, tabDegradOuNouv, tabDegradEtNouv, tabDegradOuNouvPaca, tabComplet)
rownames(tmp) <- c(levels(brut[, x]), "Valeurs manquantes", "Somme")
tmp
})
names(effectifs) <- vars
pourcentage <- lapply(vars, function(x) {
tabComplet <- table(brut[, x], useNA = "always") %>% prop.table() %>% addmargins() %>% as.data.frame() %>% .$Freq %>% arrondi_percent()
tabDegradOui <- table(degradOui[, x], useNA = "always") %>% prop.table() %>% addmargins() %>% as.data.frame() %>% .$Freq %>% arrondi_percent()
tabNouvOui <- table(nouvOui[, x], useNA = "always") %>% prop.table() %>% addmargins() %>% as.data.frame() %>% .$Freq %>% arrondi_percent()
tabDegradOuNouv <- table(degradOuNouv[, x], useNA = "always") %>% prop.table() %>% addmargins() %>% as.data.frame() %>% .$Freq %>% arrondi_percent()
tabDegradEtNouv <- table(degradEtNouv[, x], useNA = "always") %>% prop.table() %>% addmargins() %>% as.data.frame() %>% .$Freq %>% arrondi_percent()
tabDegradOuNouvPaca <- table(degradOuNouvPaca[, x], useNA = "always") %>% prop.table() %>% addmargins() %>% as.data.frame() %>% .$Freq %>% arrondi_percent()
tmp <- cbind(tabDegradOui, tabNouvOui, tabDegradOuNouv, tabDegradEtNouv, tabDegradOuNouvPaca, tabComplet)
rownames(tmp) <- c(levels(brut[, x]), "Valeurs manquantes", "Somme")
tmp
})
names(pourcentage) <- vars
Effectifs
SEXE_cal:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Un homme 567 452 911 108 65 3146 Une femme 2066 1684 3302 448 188 9527 Valeurs manquantes 159 189 302 46 10 733 Somme 2792 2325 4515 602 263 13406 AGE_cal:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet [18,25) 262 352 529 85 21 1233 [25,35) 695 565 1109 151 38 3028 [35,50) 1051 844 1667 228 108 5054 [50,65) 599 366 877 88 81 3247 [65,105] 26 9 31 4 5 111 Valeurs manquantes 159 189 302 46 10 733 Somme 2792 2325 4515 602 263 13406 DIPLONIV:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Pas de diplôme 28 22 42 8 1 154 CAP, BEP, Brevet 199 172 331 40 17 1171 Bac 506 507 883 130 38 2462 Bac - Bac+4 983 779 1565 197 78 4627 Bac+4 et + 1069 840 1683 226 129 4956 Valeurs manquantes 7 5 11 1 0 36 Somme 2792 2325 4515 602 263 13406 PCS_rec6:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Agriculteurs, agricultrices 8 7 15 0 1 64 Artisan(e)s, commerçant(e)s, chef(fe)s d’entreprise 120 81 180 21 14 554 Cadres et professions intellectuelles supérieures 920 660 1407 173 107 4321 Professions intermédiaires 738 548 1138 148 73 3317 Employé(e)s 705 623 1166 162 42 3447 Ouvrier(e)s 85 95 161 19 8 558 Valeurs manquantes 216 311 448 79 18 1145 Somme 2792 2325 4515 602 263 13406 PCS_rec9:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Agriculteurs, agricultrices 6 5 11 0 0 53 Artisan(e)s, commerçant(e)s, chef(fe)s d’entreprise 112 72 165 19 14 515 Cadres et professions intellectuelles supérieures 878 626 1345 159 103 4146 Professions intermédiaires 683 499 1045 137 67 3075 Employé(e)s 595 494 954 135 36 2946 Ouvrier(e)s 72 79 134 17 6 472 Retraité(e)s 0 0 0 0 0 0 Elèves, étudiant(e)s 315 420 630 105 24 1493 Autres inactif(ve)s 131 130 231 30 13 706 Valeurs manquantes 0 0 0 0 0 0 Somme 2792 2325 4515 602 263 13406 REGION_NEW:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Auvergne-Rhône-Alpes 229 165 347 47 0 1015 Bourgogne-Franche-Comté 52 50 86 16 0 269 Bretagne 239 188 380 47 0 1273 Centre-Val-de-Loire 55 41 85 11 0 254 Corse 24 32 50 6 0 163 Grand-Est 479 431 801 109 0 2100 Hauts-de-France 203 191 351 43 0 1026 Ile-de-France 386 330 636 80 0 1838 Normandie 220 183 351 52 0 1184 Nouvelle-Aquitaine 99 93 167 25 0 515 Occitanie 307 218 466 59 0 1392 Pays de la Loire 304 212 463 53 0 1355 Provence-Alpes-Côte-d’Azur 156 153 263 46 263 792 Outre-Mer 8 4 11 1 0 50 Valeurs manquantes 31 34 58 7 0 180 Somme 2792 2325 4515 602 263 13406 TUU2017:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Commune rurale 380 309 620 69 13 2044 De 2000 à 4999 hab. 105 97 177 25 3 554 De 5 000 à 9 999 hab. 135 95 201 29 8 703 De 10 000 à 19 999 hab. 136 114 217 33 12 637 De 20 000 à 49 999 hab. 143 127 246 24 4 794 De 50 000 à 99 999 hab. 192 147 299 40 9 887 De 100 000 à 199 999 hab. 133 132 236 29 0 695 De 200 000 à 1 999 999 hab. 1145 939 1828 256 206 5060 Unité urbaine de Paris 338 286 551 73 0 1594 Valeurs manquantes 85 79 140 24 8 438 Somme 2792 2325 4515 602 263 13406 TUU_cal:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Commune rurale 393 320 640 73 14 2106 Commune urbaine 2240 1816 3573 483 239 10567 Valeurs manquantes 159 189 302 46 10 733 Somme 2792 2325 4515 602 263 13406
Pourcentage
SEXE_cal:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Un homme 20 19 20 18 25 23 Une femme 74 72 73 74 71 71 Valeurs manquantes 6 8 7 8 4 5 Somme 100 100 100 100 100 100 AGE_cal:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet [18,25) 9 15 12 14 8 9 [25,35) 25 24 25 25 14 23 [35,50) 38 36 37 38 41 38 [50,65) 21 16 19 15 31 24 [65,105] 1 0 1 1 2 1 Valeurs manquantes 6 8 7 8 4 5 Somme 100 100 100 100 100 100 DIPLONIV:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Pas de diplôme 1 1 1 1 0 1 CAP, BEP, Brevet 7 7 7 7 6 9 Bac 18 22 20 22 14 18 Bac - Bac+4 35 34 35 33 30 35 Bac+4 et + 38 36 37 38 49 37 Valeurs manquantes 0 0 0 0 0 0 Somme 100 100 100 100 100 100 PCS_rec6:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Agriculteurs, agricultrices 0 0 0 0 0 0 Artisan(e)s, commerçant(e)s, chef(fe)s d’entreprise 4 3 4 3 5 4 Cadres et professions intellectuelles supérieures 33 28 31 29 41 32 Professions intermédiaires 26 24 25 25 28 25 Employé(e)s 25 27 26 27 16 26 Ouvrier(e)s 3 4 4 3 3 4 Valeurs manquantes 8 13 10 13 7 9 Somme 100 100 100 100 100 100 PCS_rec9:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Agriculteurs, agricultrices 0 0 0 0 0 0 Artisan(e)s, commerçant(e)s, chef(fe)s d’entreprise 4 3 4 3 5 4 Cadres et professions intellectuelles supérieures 31 27 30 26 39 31 Professions intermédiaires 24 21 23 23 25 23 Employé(e)s 21 21 21 22 14 22 Ouvrier(e)s 3 3 3 3 2 4 Retraité(e)s 0 0 0 0 0 0 Elèves, étudiant(e)s 11 18 14 17 9 11 Autres inactif(ve)s 5 6 5 5 5 5 Valeurs manquantes 0 0 0 0 0 0 Somme 100 100 100 100 100 100 REGION_NEW:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Auvergne-Rhône-Alpes 8 7 8 8 0 8 Bourgogne-Franche-Comté 2 2 2 3 0 2 Bretagne 9 8 8 8 0 9 Centre-Val-de-Loire 2 2 2 2 0 2 Corse 1 1 1 1 0 1 Grand-Est 17 19 18 18 0 16 Hauts-de-France 7 8 8 7 0 8 Ile-de-France 14 14 14 13 0 14 Normandie 8 8 8 9 0 9 Nouvelle-Aquitaine 4 4 4 4 0 4 Occitanie 11 9 10 10 0 10 Pays de la Loire 11 9 10 9 0 10 Provence-Alpes-Côte-d’Azur 6 7 6 8 100 6 Outre-Mer 0 0 0 0 0 0 Valeurs manquantes 1 1 1 1 0 1 Somme 100 100 100 100 100 100 TUU2017:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Commune rurale 14 13 14 11 5 15 De 2000 à 4999 hab. 4 4 4 4 1 4 De 5 000 à 9 999 hab. 5 4 4 5 3 5 De 10 000 à 19 999 hab. 5 5 5 5 5 5 De 20 000 à 49 999 hab. 5 5 5 4 2 6 De 50 000 à 99 999 hab. 7 6 7 7 3 7 De 100 000 à 199 999 hab. 5 6 5 5 0 5 De 200 000 à 1 999 999 hab. 41 40 40 43 78 38 Unité urbaine de Paris 12 12 12 12 0 12 Valeurs manquantes 3 3 3 4 3 3 Somme 100 100 100 100 100 100 TUU_cal:
tabDegradOui tabNouvOui tabDegradOuNouv tabDegradEtNouv tabDegradOuNouvPaca tabComplet Commune rurale 14 14 14 12 5 16 Commune urbaine 80 78 79 80 91 79 Valeurs manquantes 6 8 7 8 4 5 Somme 100 100 100 100 100 100
Conception de l’espace des répondants VICO
J’entre dans le data-frame complet des indicatrices marquant les sous-échantillons, en me fondant sur l’identifiant unique du répondant (qui devrait également servir à contacter)…
brut$degradOui <- brut$id %in% degradOui$id
brut$nouvOui <- brut$id %in% nouvOui$id
brut$degradEtNouv <- brut$id %in% degradEtNouv$id
brut$degradOuNouv <- brut$id %in% degradOuNouv$id
brut$degradOuNouvPaca <- brut$id %in% degradOuNouvPaca$id
Analyse des valeurs manquantes
Pourquoi :
- valeurs manquantes sur TUU_cal alors que construite sur TUU2017 ? Pas compréhensible… je garde TUU207, plus précise et moins sujette aux valeurs manquantes
- pareil pour PCS_rec6 construite sur PCS_rec9 ? Parce que les modalités en plus ont été transférées vers une autre variable (étudiants + autres inactifs), je garde donc PCS_rec9
Beaucoup de valeurs manquantes sur l’âge, je les laisse dans l’espoir que cela ne tire pas les axes. Pour les autres, j’enlève.
Analyse en composantes principales (complète)
supplementaire <- c("degradOui", "nouvOui", "degradEtNouv", "degradOuNouv", "degradOuNouvPaca")
res <- MCA(brut[, c(vars, supplementaire)], graph = F,
quali.sup = match(supplementaire, c(vars, supplementaire)))
# TODO : plotter avec une couleur différente en fonction de la valeur maquante ou non
plot(res,
axes = 1:2,
choix = "ind",
invisible = c("var", "quali.sup"),
title = "Nuage des individus",
label = "none",
cex = 0.8)
Si, elles jouent. Même pas la peine d’analyser ce premier jet. Je les enlève.
res <- MCA(brut[, c(vars, supplementaire)], graph = F,
quali.sup = match(supplementaire, c(vars, supplementaire)))
plot(res,
axes = 1:2,
choix = "ind",
invisible = c("var", "quali.sup"),
title = "Nuage des individus",
label = "none",
cex = 0.8)
for(x in vars) {
plot(res,
axes = 1:2,
choix = "ind",
invisible = "ind",
selectMod = levels(brut[, x]),
title = x,
cex = 0.8) %>%
print
}