vegan ou FactoMineR : deux packages, deux visions du monde
Écologie quantitative
Pédagogie
Derrière le choix d’un package R se cache une histoire, une communauté, et une façon de penser les données.
Auteur·rice
Thelma Panaïotis
Date de publication
10 août 2026
Mots clés
vegan R, FactoMineR, analyse des correspondances, écologie numérique, histoire des statistiques
vegan ou FactoMineR : deux packages, deux visions du monde
Derrière le choix d’un package R se cache une histoire, une communauté, et une façon de penser les données.
Cet article est une vulgarisation historique, pas une revue exhaustive des méthodes ou des packages. Il contient toutefois un exemple de code, pour illustrer concrètement une différence entre les deux packages. L’objectif reste de montrer comment des choix techniques s’enracinent dans des traditions intellectuelles, pas de comparer les performances ou les fonctionnalités.
Un choix qui n’a l’air de rien
Mes premières ACP, je les ai faites en TD de M2, sur des données génériques, avec le package FactoMineR : l’outil du cours, utilisé sans se poser de question.
Quelques mois plus tard, en stage de M2, j’ai analysé des communautés de plancton pour la première fois. Avec mon encadrant, on a décidé de se pencher sur la composition de ces communautés, pas seulement sur l’abondance totale. Or pour comparer des profils de composition plutôt que des quantités brutes, on transforme les données avec une distance de Hellinger avant l’ACP1, une transformation que propose vegan. En R, ça tenait en deux lignes :
Notez que c’est la même fonction rda() qui sert aussi à faire une véritable RDA2.
Je suis passée de FactoMineR à vegan sans vraiment le décider : c’est la question posée sur les données qui a entraîné le choix de la méthode, qui a entraîné le choix du package. Je n’avais pas conscience, à ce moment-là, que ce changement traduisait quelque chose de plus profond qu’une préférence syntaxique.
Pendant longtemps, j’ai cru que la différence entre les deux packages était cosmétique, un choix qui dépendait surtout de ce qu’on avait sous la main. Ce n’est pas tout à fait faux. Mais c’est loin d’être tout à fait vrai : derrière ces deux packages se trouvent deux histoires différentes, deux façons de poser les questions, deux traditions qui ont grandi en parallèle, et qui se sont parfois croisées de façon inattendue.
Deux traditions, un pont
La tradition française : la géométrie avant tout
Dans les années 1960, Jean-Paul Benzécri enseigne à Rennes, avant de rejoindre l’Institut de statistique de l’université de Paris en 1965. Mathématicien de formation, il développe l’analyse factorielle des correspondances (AFC) : à partir d’un tableau de contingence, la méthode projette lignes et colonnes dans un même espace géométrique, sans modèle probabiliste imposé ni loi de distribution supposée. On regarde la forme des nuages de points, on interprète les proximités.
Benzécri résume sa philosophie ainsi : le modèle doit suivre les données, non l’inverse (Benzécri 1973). L’analyse des données à la française part du particulier pour aller vers le général, refuse d’imposer une structure a priori, et fait confiance à la géométrie comme langage universel.
Cet héritage est codifié dans FactoMineR, publié en 2008 par Sébastien Lê, Julie Josse et François Husson (Lê et al. 2008), qui propose une implémentation unifiée de toute la famille des analyses factorielles (ACP, AFC, ACM et leurs extensions pour les données mixtes), dans la continuité explicite de l’école de Benzécri.
La tradition écologique : la question de l’environnement
De l’autre côté, une question différente émerge dans les années 1980 en écologie des communautés. Ce n’est plus « quelle est la forme de mes données ? » mais « comment les espèces répondent-elles à leur environnement ? ».
En 1986, Cajo ter Braak publie dans la revue Ecology un article décrivant l’analyse canonique des correspondances (CCA) (ter Braak 1986). La méthode relie directement la composition des communautés (tableau espèces × sites) aux variables environnementales (tableau environnement × sites) : c’est une analyse sous contrainte, où les axes factoriels sont des combinaisons linéaires des variables environnementales. On ne cherche pas à décrire un nuage de points pour lui-même, mais à expliquer pourquoi les espèces sont là où elles sont, en lien avec la température, les nutriments, la profondeur.
C’est cette tradition que vegan incarne. Développé par Jari Oksanen (Oksanen et al. 2025), le package est devenu la référence pour l’écologie des communautés en R : CCA, RDA (analyse de redondance, version linéaire de la CCA), indices de diversité, tests de permutation. Tout ce dont un écologue a besoin pour relier composition et environnement.
Le pont : Legendre & Legendre
Entre ces deux traditions, il y a eu des passeurs. Le plus important est sans doute le livre Écologie numérique de Pierre et Louis Legendre, paru en français en 1979, puis en anglais sous le titre Numerical Ecology en 1983 (Legendre et Legendre 1979, 2012). Les deux frères, l’un à l’Université de Montréal, l’autre à l’Université Laval avant de diriger le Laboratoire d’Océanographie de Villefranche-sur-Mer de 2001 à 2009, y font dialoguer Benzécri et ter Braak, les ACP et les CCA, les distances euclidiennes et les distances de Bray-Curtis. Le livre n’appartient ni à la tradition française ni à la tradition écologique anglophone : c’est une synthèse, devenue référence mondiale et citée dans les deux communautés.
Pierre et Louis Legendre racontent eux-mêmes l’origine du livre : en mai 1975, à la Station marine de Villefranche-sur-Mer, ils participent à un atelier de trois jours sur l’analyse statistique des données écologiques. Le soir de clôture, en terrasse d’un restaurant, ils décident d’écrire un manuel accessible aux écologues non mathématiciens, et esquissent sur un set de table en papier la liste des sujets qui deviendra le sommaire de la première de Numerical Ecology(Legendre 2021). Ce genre de transmission, dans les marges, entre deux discussions, loin des formats officiels, dit quelque chose de réel sur la façon dont naissent parfois les idées scientifiques. Ce n’est pas un hasard si des chercheurs francophones ont occupé ce rôle de pont, la tradition française d’analyse des données et la pratique de l’écologie quantitative s’étant croisées naturellement dans certains labos et certains séminaires.
Un même jeu de données, deux lectures
Cette différence de philosophie se voit jusque dans les graphiques. Prenons un exemple concret, sur des données physico-chimiques de qualité du vin3 : pour chaque échantillon, onze mesures chimiques (acidité, sucre résiduel, sulfates, alcool…) et une note de qualité. C’est un jeu de données multivarié typique : les variables sont corrélées entre elles, et aucune ne suffit seule à résumer ce qui distingue les échantillons. C’est exactement le terrain de jeu d’une ACP, qui cherche les combinaisons de variables qui capturent le plus de variabilité, pour résumer l’essentiel de l’information en deux ou trois axes plutôt que onze.
Code
data(wine, package ="datapyranhia")# FactoMineR : centrage-réduction automatique (scale.unit = TRUE par défaut)pca_facto <-PCA(wine, graph =FALSE)p_ind <-plot(pca_facto, choix ="ind", label ="none", title ="Plan des individus", cex =0.8)p_var <-plot(pca_facto, choix ="var", title ="Plan des variables", cex =0.8)p_ind + p_var +plot_layout(widths =c(1, 1))
Figure 1: avec FactoMineR, deux plans séparés.
Code
# vegan : centrage-réduction demandé explicitement via l'argument scalepca_vegan <-rda(wine, scale =TRUE)# % de variance expliquée par les deux premiers axes, pour les afficher sur le biploteig_pct <-100* pca_vegan$CA$eig /sum(pca_vegan$CA$eig)biplot( pca_vegan, scaling =2, main ="", type =c("text", "points"),xlab =paste0("PC1 (", round(eig_pct[1], 1), "%)"),ylab =paste0("PC2 (", round(eig_pct[2], 1), "%)"),cex =1.02)
Figure 2: avec vegan, un biplot unique.
Les deux premiers axes résument 45% de la variabilité totale (26,5% pour l’axe 1, 18,6% pour l’axe 2), ce qui reste modeste : avec onze variables physico-chimiques, aucun résumé en deux dimensions ne peut être exhaustif. Mais les axes restent interprétables. Le premier axe oppose fixed_acidity, citric_acid et density (fortement positifs) à p_h (fortement négatif) : c’est un axe d’acidité globale, cohérent avec la chimie du vin puisque le pH mesure justement l’inverse de l’acidité. Le second axe est porté par volatile_acidity et total_sulfur_dioxide : une autre dimension, indépendante de la première, qui oppose des vins plus ou moins soumis à ces deux composés. Sur le biplot vegan, ces deux logiques se lisent d’un coup d’œil, dans les mêmes flèches que sur le plan des variables FactoMineR : le contenu de l’information est identique, seule la mise en forme diffère.
ImportantLa normalisation : un geste qui en dit long
FactoMineR::PCA() centre-réduit les variables par défaut (scale.unit = TRUE). vegan::rda() ne le fait pas : sur une ACP non contrainte, il faut demander explicitement scale = TRUE, sans quoi les variables aux plus grandes échelles dominent les axes.
Ce n’est pas un détail d’implémentation, c’est une trace de la même divergence philosophique. FactoMineR, héritier de Benzécri, part du principe qu’on veut une structure géométrique propre : la standardisation est la norme, pas l’exception. vegan part du terrain écologique, où les unités et les échelles portent souvent un sens biologique qu’on ne veut pas effacer par défaut : c’est à l’utilisateur de décider s’il veut gommer ces différences d’échelle ou les garder.
AstuceBiplot ou pas : un choix mathématique, pas seulement esthétique
FactoMineR sait produire un biplot si on le demande explicitement, par exemple via le package compagnon factoextra. Ce n’est simplement pas son affichage par défaut, alors que vegan en fait le sien.
Le biplot pose un problème mathématique concret : individus et variables ne vivent pas naturellement dans le même espace, donc les superposer suppose de choisir une mise à l’échelle (le scaling). Avec scaling = 1, les distances entre individus sont fidèles, mais pas les angles entre variables. Avec scaling = 2, c’est l’inverse : les angles entre variables reflètent leurs corrélations, mais plus les distances entre individus. Il existe un troisième compromis, scaling = 3 (symétrique), qui met les deux à l’échelle par la racine carrée des valeurs propres, sans toutefois préserver parfaitement ni les distances ni les angles.
FactoMineR, fidèle à l’héritage de Benzécri, préfère séparer les deux lectures plutôt que d’imposer un compromis : deux figures propres, chacune fidèle à ce qu’elle représente. vegan, plus proche des besoins de terrain de l’écologue habitué à lire des relations espèces-environnement d’un coup d’œil, préfère un graphique unique, quitte à demander à l’utilisateur de choisir son scaling en connaissance de cause. Encore une fois : pas de bon ou de mauvais choix, juste deux réponses différentes à la question « qu’est-ce que je veux lire en premier sur ce graphique ? ».
Et moi dans tout ça
Mon profil est à cheval entre les deux mondes. Thèse en écologie marine quantitative, formation en machine learning, passage par des labos anglophones : j’ai appris à naviguer entre les deux traditions sans vraiment le savoir au départ. Ce stage de M2 sur le plancton a débouché sur un article (Panaïotis et al. 2023) où vegan reste l’outil central, puisque ce travail se concentre sur la composition des communautés planctoniques via un tableau espèces × sites.
Mais depuis, ça dépend des données et de la question. Un coup c’est vegan, un coup c’est FactoMineR, que j’utilise dans les contextes où je reviens à une logique de structure géométrique pure : données mixtes, tableaux d’enquête, situations où je veux explorer la structure générale sans a priori sur ce qui explique quoi. La FAMD (factorial analysis of mixed data, analyse factorielle de données mixtes) de FactoMineR est particulièrement utile pour ça, comme je l’ai montré dans un article récent sur l’analyse d’un questionnaire marché.
Lors de ma soutenance de thèse, Louis Legendre était président du jury, dans une salle de la station marine de Villefranche-sur-Mer qu’il a dirigée pendant plusieurs années, le même lieu où lui et son frère avaient esquissé Écologie numérique quarante ans plus tôt. Cela m’a fait réaliser que les deux lignes de code qui ouvraient mon analyse de plancton avaient une histoire que je n’avais jamais pris le temps de retracer.
Comprendre d’où vient un outil, c’est comprendre ce qu’il présuppose, et donc quand ne pas l’utiliser. vegan part de la question « comment les espèces répondent-elles à l’environnement ? ». FactoMineR part de la question « quelle est la géométrie de mes données ? ». Ce ne sont pas les mêmes questions, et choisir le bon package, c’est d’abord clarifier laquelle on pose.
C’est exactement ce genre de réflexion que j’essaie de transmettre dans ma formation Machine Learning avec R : pas seulement comment appeler les fonctions, mais pourquoi ces fonctions existent, ce qu’elles supposent, et dans quels cas une autre approche serait plus juste.
Benzécri, Jean-Paul. 1973. L’Analyse Des Données. Dunod.
Lê, Sébastien, Julie Josse, et François Husson. 2008. « FactoMineR: An R Package for Multivariate Analysis ». Journal of Statistical Software 25 (1): 1‑18. https://doi.org/10.18637/jss.v025.i01.
Legendre, Louis. 2021. « The Pleasure of Writing, Being Published, Appealing to Readers, and Contributing to the Advancement of Knowledge ». ICES Journal of Marine Science 78 (6): 1943‑55. https://doi.org/10.1093/icesjms/fsab097.
Legendre, Pierre, et Eugène D. Gallagher. 2001. « Ecologically Meaningful Transformations for Ordination of Species Data ». Oecologia 129 (2): 271‑80. https://doi.org/10.1007/s004420100716.
Legendre, Pierre, et Louis Legendre. 1979. Écologie Numérique. Masson et Presses de l’Université du Québec.
Legendre, Pierre, et Louis Legendre. 2012. Numerical Ecology. Elsevier.
Oksanen, Jari, Gavin L. Simpson, F. Guillaume Blanchet, et al. 2025. vegan: Community Ecology Package. https://vegandevs.github.io/vegan/.
Panaïotis, Thelma, Marcel Babin, Tristan Biard, et al. 2023. « Three Major Mesoplanktonic Communities Resolved by in Situ Imaging in the Upper 500 m of the Global Ocean ». Global Ecology and Biogeography 32 (11): 1991‑2005. https://doi.org/10.1111/geb.13741.
ter Braak, Cajo J. F. 1986. « Canonical Correspondence Analysis: A New Eigenvector Technique for Multivariate Direct Gradient Analysis ». Ecology 67 (5): 1167‑79. https://doi.org/10.2307/1938672.
Notes de bas de page
La distance de Hellinger est une racine carrée des fréquences relatives, qui neutralise les écarts d’abondance totale entre échantillons pour se concentrer sur les différences de composition. Introduite en écologie par Legendre et Gallagher (2001).↩︎
Détail amusant : rda() est la même fonction qui sert à faire une RDA (analyse de redondance, contrainte par des variables environnementales). Sans second tableau de données en argument, elle bascule simplement en ACP non contrainte. Un raccourci pratique une fois qu’on le sait, mais qui peut dérouter au premier abord : le nom de la fonction ne dit pas ce qu’elle fait par défaut.↩︎