Le tableau disjonctif

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.

pomelos

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.

pomelo

 

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.

 

disjonctif