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.

Champ

Ensemble des répondants, retraités exclus.

brut %<>% filter(PCS_rec9 != "Retraité(e)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.

# TODO : choper une base qui contient les mails

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

pander(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

pander(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

library(naniar)
vis_miss(brut[, vars])

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
vars <- vars[!vars %in% c("PCS_rec6", "TUU_cal")]
vis_miss(brut[, vars])

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.

brut %<>% filter(
  !is.na(DIPLONIV),
  !is.na(REGION_NEW),
  !is.na(TUU2017)
)
vis_miss(brut[, vars])

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.

brut %<>% filter(!is.na(AGE_cal), !is.na(SEXE_cal))
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
}

Axe 1

Axe 2

Projection des sous-échantillons

# TODO : beau plot des ellipses

plot(res,
     axes = 1:2, 
     choix = "ind", 
     invisible = c("ind", "var"),
     title = x,
     cex = 0.8)