Chapitre 6 Deux variables qualitatives

6.1 Définitions

  • On calcule les effectifs de chaque couple possible de modalités i et j. \(i \in \{1...k\}, j \in \{1...r\}\). Exemple : le nombre de communes du type ZAU i et de la région j.
  • \(N_{ij}=\sum_c \mathbb{I}_{c=i} \cdot \mathbb{I}_{c=j}\) (nombre de communes du type ZAU i et de la région j)
  • \(N_{i.}=\sum_c \mathbb{I}_{c=i}\) et \(N_{.j}=\sum_c \mathbb{I}_{c=j}\) sont appelées effectifs marginaux (nombre de communes du type ZAU i, puis nombre de communes de la région j)
  • \(f_{ij}=\frac{N_{ij}}{N}\) : la fréquence
  • \(f_{ij}^{*} = \frac{N_{ij}}{N_{i.}}\) les profils ligne : la part de communes de type i et de la région j parmi les communes du type i
  • \(f_{ij}^{**} = \frac{N_{ij}}{N_{.j}}\) les profils colonne : la part de communes de type i et de la région j parmi les communes de la région j

6.2 Tableaux de synthèse

6.2.1 Tableau de contingence (effectifs)

Le tableau à double entrée, avec les lignes et colonnes correspondant aux modalités des variables qui sont croisées est appelé tableau de contingence. Les cellules contiennent le nombre d’occurrences correspondant à chaque case.

La fonction table() fonctionne aussi au-delà de 2 variables, à l’image des tableaux croisés dynamiques dans Excel®, ou de la PROC FREQ en SAS®.

6.2.2 Tableau des fréquences

Le tableau des fréquences est obtenu, comme auparavant, avec la fonction prop.table().

##                            REG
## ZAU2                           11    24    27    52   Sum
##   111 - Grand pôle            4.9   1.2   1.7   1.3   9.1
##   112 - Couronne GP          10.1   8.7  15.4   6.3  40.5
##   120 - Multipol grandes AU   0.0   2.2   4.0   2.2   8.4
##   211 - Moyen pôle            0.0   0.4   0.4   0.3   1.1
##   212 - Couronne MP           0.0   0.9   1.4   0.5   2.8
##   221 - Petit pôle            0.0   0.5   0.7   0.8   2.0
##   222 - Couronne PP           0.0   0.2   1.6   0.1   1.9
##   300 - Autre multipol.       0.1   4.4   8.7   4.6  17.8
##   400 - Commune isolée        0.0   3.3  11.5   1.7  16.5
##   Sum                        15.1  21.8  45.4  17.8 100.1
##                            REG
## ZAU2                          11   24   27   52
##   111 - Grand pôle           4.9  1.2  1.7  1.3
##   112 - Couronne GP         10.1  8.7 15.4  6.3
##   120 - Multipol grandes AU  0.0  2.2  4.0  2.2
##   211 - Moyen pôle           0.0  0.4  0.4  0.3
##   212 - Couronne MP          0.0  0.9  1.4  0.5
##   221 - Petit pôle           0.0  0.5  0.7  0.8
##   222 - Couronne PP          0.0  0.2  1.6  0.1
##   300 - Autre multipol.      0.1  4.4  8.7  4.6
##   400 - Commune isolée       0.0  3.3 11.5  1.7
##   Sum                       15.1 21.8 45.4 17.8
##                            REG
## ZAU2                          11   24   27   52  Sum
##   111 - Grand pôle           4.9  1.2  1.7  1.3  9.1
##   112 - Couronne GP         10.1  8.7 15.4  6.3 40.5
##   120 - Multipol grandes AU  0.0  2.2  4.0  2.2  8.4
##   211 - Moyen pôle           0.0  0.4  0.4  0.3  1.1
##   212 - Couronne MP          0.0  0.9  1.4  0.5  2.8
##   221 - Petit pôle           0.0  0.5  0.7  0.8  2.0
##   222 - Couronne PP          0.0  0.2  1.6  0.1  1.9
##   300 - Autre multipol.      0.1  4.4  8.7  4.6 17.8
##   400 - Commune isolée       0.0  3.3 11.5  1.7 16.5

Ici, on peut voir que, dans les communes que nous avons filtré :

  • environ 10% des communes sont dans la région 11 ET dans une couronne de grand pôle
  • il y a 16,5% des communes qui sont isolées
  • la région 27 totalise plus de 45% des communes

6.2.3 Profils-ligne

Grâce à l’argument margin de la fonction prop.table(), on peut afficher les profils-ligne (avec margin = 1). On regarde ainsi la proportion des régions pour chaque ZAU.

##                            REG
## ZAU2                           11    24    27    52   Sum
##   111 - Grand pôle           54.1  13.5  18.3  14.1 100.0
##   112 - Couronne GP          24.9  21.5  38.0  15.6 100.0
##   120 - Multipol grandes AU   0.4  26.4  47.1  26.1 100.0
##   211 - Moyen pôle            3.4  34.5  35.6  26.4  99.9
##   212 - Couronne MP           0.8  30.0  50.8  18.3  99.9
##   221 - Petit pôle            0.0  26.3  34.3  39.4 100.0
##   222 - Couronne PP           0.0  11.6  83.5   4.9 100.0
##   300 - Autre multipol.       0.5  24.9  49.0  25.6 100.0
##   400 - Commune isolée        0.0  19.8  69.9  10.3 100.0
##   Sum                        84.1 208.5 426.5 180.7 899.8

Ici, on voit que, parmi les communes que nous avons filtré :

  • 70% des communes classées comme “Commune isolée” sont dans la région 27
  • 54% des communes classées “Grand pôle” sont dans la région 11

6.2.4 Profils-colonne

Pour obtenir les profils-colonnes, on se sert de margin = 2. On regarde alors la proportion de ZAU pour chaque région.

##                            REG
## ZAU2                           11    24    27    52   Sum
##   111 - Grand pôle           32.2   5.6   3.7   7.2  48.7
##   112 - Couronne GP          66.6  39.8  33.9  35.6 175.9
##   120 - Multipol grandes AU   0.2  10.2   8.8  12.4  31.6
##   211 - Moyen pôle            0.2   1.6   0.8   1.5   4.1
##   212 - Couronne MP           0.2   3.9   3.2   2.9  10.2
##   221 - Petit pôle            0.0   2.5   1.6   4.6   8.7
##   222 - Couronne PP           0.0   1.0   3.6   0.5   5.1
##   300 - Autre multipol.       0.5  20.4  19.2  25.7  65.8
##   400 - Commune isolée        0.0  14.9  25.3   9.5  49.7
##   Sum                        99.9  99.9 100.1  99.9 399.8

De la même manière que précedemment, parmi nos communes :

  • 66,6% des communes de la région 11 sont classées comme “Courrone GP”
  • 2,5% des communes de la région 24 sont classées comme “Petit pôle”

6.3 Graphiques

6.3.1 Diagramme en bâtons

Pour visualiser un croisement de deux variables qualitatives, il est possible de faire un diagramme superposé. La fonction est similaire aux diagrammes en bâtons déjà tracés. Cette fois, on précise dans aes que les régions sont sur l’axe, et que les différents ZAU sont colorés (argument fill).

Si l’on veut ordonner les modalités par ordre décroissant de la hauteur totale des barres, c’est un peu plus compliqué :

Il est aussi possible de faire un diagramme juxtaposé en changeant la valeur position de la fonction geom_bar :

6.4 Avec pondération

Si on désire connaître le “poids” d’une variable suivant le croisement de 2 variables qualitatives, on peut créer un tableau pondéré. Si par exemple, on souhaite connaître la population pour chaque croisement REG / ZAU : on se sert de la fonction xtabsen précisant la formula qu’on souhaite (P14_POP par REG et ZAU).

##     ZAU_COURT
## REG       111      112      120      211      212      221      222      300
##   01   307294    59632     4149        0        0    15995        0     8886
##   02   299891        0    19388    33187        0    11311        0    11478
##   03   109538    17223        0    70037        0    10984        0        0
##   04   623948    41639    71880    75100        0        0        0     5950
##   11 10659489  1349018      985    12927      757        0        0     4389
##   24  1088230   676997   142859   130552    41751   121185     7883   223588
##   27  1025799   689277   194488   119122    41438   172248    30457   249496
##   28  1443395   800329   286367   117695    40818   168795    10085   279772
##   32  3709369  1124937   521043   108449     5885   129443     4876   286099
##   44  2699363  1134602   621246   177829    26099   242055    26455   368481
##   52  1575655   973415   225904   149431    37815   250004     3036   372614
##   53  1169052   914047   244926   214774    17052   145728      786   387382
##   75  2708020  1190761   225545   171744    40468   410303    33199   494269
##   76  2748178  1179129   315400   293385    54187   302203    24407   348798
##   84  4432062  1857298   374734   144472    43441   288745    15498   282066
##   93  4003370   365184   164985   101619     7703   119567     2163    81279
##   94   135450    64031      302    11625     2303    33598     8873    10675
##     ZAU_COURT
## REG       400
##   01     4230
##   02     8656
##   03    44556
##   04    24250
##   11        0
##   24   144390
##   27   298298
##   28   188389
##   32   116055
##   44   258515
##   52   102959
##   53   182796
##   75   604835
##   76   465066
##   84   382650
##   93   137568
##   94    57355

Une fois l’objet table généré, tout est identique pour les tables. Il faut ajouter le paramètre weight pour les graphiques.

Ici, la hauteur de chaque rectangle coloré représente la population totale des communes concernées par le croisement.