Tableau disjonctif complet
Dans le principe, l'établissement d'un tableau disjonctif complet est très simple. Ce n'est pas cette page qui devrait vous prendre la tête...
Principe
L’exercice consiste à coder des données d'ordre qualitatif avec le code 1 pour la modalité observée et 0 pour toute autre modalité (donc, somme des lignes = nombre de variables).
Le tableau disjonctif complet est une représentation matricielle universelle des variables qualitatives. De nombreuses méthodes de statistique et d'apprentissage automatique (analyse des correspondances multiples, régression logistique, arbres de décision, réseaux de neurones, etc.) commencent par transformer les variables qualitatives sous cette forme binaire avant de procéder aux calculs.
Au pire, vous n’avez même pas besoin de savoir que ces tableaux existent puisqu’ils n’ont pas à être interprétés. Il s’agit juste d’une étape de calcul (sauf dans le cadre de certaines enquêtes). L’intérêt de cette modeste page est de permettre la compréhension de certains mécanismes et éventuellement le choix d’options proposés par certains logiciels.
Exemple
Illustrons ceci avec deux caractéristiques de différentes variétés de pamplemousses (pomelos), établies à partir du Larousse gastronomique 2004 :
| Variété | Pulpe | Saveur |
| Marsh seedless | Blonde | Assez parfumée |
| Thomson ou Pink marsh | Rose | Parfumée |
| Ruby red | Rose | Parfumée |
| Star ruby | Rouge | Très parfumée |
Les variétés sont considérées comme étant les individus. Les variables Pulpe et Saveur ont chacune trois modalités. Le tableau disjonctif aura donc \(2 \times 3 = 6\) colonnes.
Il devient :
| Variété | Pulpe blonde | Pulpe rose | Pulpe rouge | Saveur assez parfumée | Saveur parfumée | Saveur très parfumée |
| Marsh seedless | 1 | 0 | 0 | 1 | 0 | 0 |
| Thomson | 0 | 1 | 0 | 0 | 1 | 0 |
| Ruby red | 0 | 1 | 0 | 0 | 1 | 0 |
| Star ruby | 0 | 0 | 1 | 0 | 0 | 1 |
Note : ceci n’est pas de la publicité déguisée pour le star ruby.

On remarque que toutes les modalités bénéficient d’un et un seul code 1 au contraire d’autres systèmes de codification où l’une des modalités n’est pas codée et se déduit des autres (variables muettes d’une enquête, par exemple). Ainsi, la somme de chaque ligne est égale à 2 puisqu'on observe deux variables (la couleur de la pulpe et la saveur).
Bon appétit.

Mais encore...
Notez qu'un tableau peut n'être que partiellement disjonctif, notamment pour intégrer des variables dichotomiques (Cf. la régression avec saisonnalité).
Un autre tableau disjonctif complet illustre les pages exemple d'ACM et tableau de Burt.
Python
Peut-être souhaitez-vous vous entraîner en dressant un tableau disjonctif complet avec Python ? La bibliothèque pandas fournit directement cette fonctionnalité grâce à la fonction get_dummies().
Supposons que le tableau d'origine ci-dessus se trouve dans le fichier Excel pomelos.xlsx.
import pandas as pd
# Le fichier Excel contient une feuille nommée "Feuil1"
tableau = pd.read_excel("pomelos.xlsx", sheet_name="Feuil1")
# Affichage des premières lignes
print(tableau.head())
# Construction du tableau disjonctif complet
tableau_disjonctif = pd.get_dummies(tableau)
# Conversion des booléens en 0/1
tableau_disjonctif = tableau_disjonctif.astype(int)
# Affichage
print(tableau_disjonctif)
Le tableau disjonctif ne s'affiche pas comme représenté plus haut car les variétés de pamplemousses figurent aussi en colonnes.
On obtient donc une liste qui comporte dix colonnes.
R
Il est possible d'utiliser la fonction matrix avec R de base (voir ci-dessous) mais plusieurs packages peuvent néanmoins vous faciliter la tâche.
library(readxl)
tableau <- read_excel("pomelos.xlsx")
tableau
disjonctif <- model.matrix(~ . -1, data = tableau)
disjonctif
Le point signifie que l'on prend toutes les variables et le -1 supprime la colonne d'interception (une colonne de 1 utile pour une régression mais pas pour une ACM).
Comme avec Python, on obtient un tableau à 10 colonnes. Il aurait fallu apporter une précision pour indiquer à R que la variété de pomelo devait, dans ce cas, être considérée comme identifiant d'individu.
Les packages qui permettent de réaliser un tableau disjonctif sont FactoMineR, fastDummies ou encore ade4.
Remarque : contrairement à Python, R transforme automatiquement les variables qualitatives (facteurs) en variables indicatrices dans de nombreuses méthodes statistiques : régression linéaire, régression logistique, analyses de variance, etc. Autrement dit, la création du tableau disjonctif est souvent implicite. L'ACM fait exception : le tableau disjonctif complet n'est pas seulement une étape de calcul interne, c'est l'objet mathématique central sur lequel repose toute la méthode. Il est donc particulièrement intéressant de le construire explicitement au moins une fois pour comprendre la logique de l'analyse.
