Analyser son questionnaire marché avec R : FAMD et profils types

Tutoriels R
Pédagogie
Comment j’ai utilisé la FAMD et le k-means pour identifier 4 profils types parmi les répondants de mon questionnaire marché : choix méthodologiques, pièges et ce que l’analyse a changé.
Auteur·rice

Thelma Panaïotis

Date de publication

10 mars 2026

Mots clés

FAMD, k-means, clustering, données mixtes, questionnaire marché, FactoMineR, R

Analyser son questionnaire marché avec R : FAMD et profils types

Quand on lance une activité, on diffuse un questionnaire. On récupère des données. Et puis… on se demande quoi en faire vraiment.

Pourquoi pas juste des fréquences ?

J’ai diffusé un questionnaire marché en février 2026 pour valider l’offre de formations PYRANHIA 38 réponses, 67 variables, des questions à choix multiples, des échelles, des catégories. Voici comment j’ai procédé, et ce que l’analyse m’a appris.

L’objectif n’était pas de savoir “combien de personnes utilisent R”, pour ça un simple comptage suffit. L’objectif était de comprendre qui répond, et si des profils cohérents se dégagent : des groupes de personnes qui se ressemblent sur plusieurs dimensions à la fois. Parce que ce n’est pas la même chose de proposer une formation à quelqu’un qui utilise déjà R et veut apprendre le ML, et à quelqu’un qui vient d’Excel et ne sait pas par où commencer.

Pour ça, il faut du clustering. Mais avant, encore faut-il représenter chaque répondant dans un espace numérique commun, et c’est là que ça se complique.

Le problème des données mixtes

Dans mes données : des booléennes (cases à cocher), des ordinales (niveau en R : jamais utilisé → expert), des catégorielles nominales (domaine, statut). Une ACP ne fonctionne que sur du quantitatif. Une ACM ne gère que du catégoriel. Aucune des deux ne convient.

La solution : la FAMD (Factorial Analysis of Mixed Data). Elle projette chaque répondant dans un espace de faible dimension où les distances ont un sens, quelle que soit la nature des variables d’origine. En R, c’est FactoMineR :

famd <- FAMD(df_actif, sup.var = idx_illus, ncp = 10, graph = FALSE)

Un piège classique : les cases non cochées encodées en NA au lieu de FALSE. La FAMD impute les NA par la moyenne, ce qui n’a aucun sens pour des booléennes. À corriger avant :

df_actif <- df_actif |>
  mutate(across(
    contains("outil") | contains("besoin") | contains("motiv"),
    ~ fct_na_value_to_level(., "FALSE")
  ))

Combien d’axes retenir ?

Avec des données d’enquête hétérogènes, le screeplot ne tranche pas : la variance se distribue de façon homogène, sans coude net (Figure 1).

Figure 1: Variance expliquée par dimension

J’ai donc testé toutes les combinaisons axes × k et mesuré la silhouette (indicateur de qualité du clustering, de -1 à 1) pour chaque combinaison (Figure 2).

Figure 2: Silhouette moyenne selon le nombre d’axes FAMD et le nombre de clusters k

Le résultat est sans ambiguïté : 3 axes dominent clairement quelle que soit la valeur de k. Au-delà, la silhouette chute : les dimensions supplémentaires apportent du bruit plus que de la structure discriminante.

Interprétation des axes

Figure 3: Projection des variables dans le plan FAMD (Dim 1 × Dim 2)

Dim 1 = profil et trajectoire R : oppose les utilisateurs avancés (besoins ML/DL, Python) aux débutants (intro R, transition open-source).

Dim 2 = contexte socio-professionnel et budget : oppose les profils avec budget institutionnel et statut établi aux profils plus contraints financièrement.

Figure 4: Projection des variables dans le plan FAMD (Dim 2 × Dim 3)

Dim 3 = besoins de base vs avancés : structure les répondants selon leurs besoins en visualisation, manipulation et statistiques de base.

Pourquoi le k-means ?

Le k-means a mauvaise réputation pour son instabilité. Mais plutôt que de le supposer stable, je l’ai vérifié : 7 seeds différentes, résultats identiques à chaque fois.

# A tibble: 7 × 3
   seed silhouette tailles  
  <dbl>      <dbl> <chr>    
1     1      0.373 2-6-14-16
2    42      0.373 2-6-14-16
3   123      0.373 2-6-14-16
4   456      0.373 2-6-14-16
5   789      0.373 2-6-14-16
6  1234      0.373 2-6-14-16
7  5678      0.373 2-6-14-16

Avec nstart = 50 sur un échantillon de 38 individus, il est parfaitement reproductible. Et il donne des clusters mieux équilibrés en taille, ce qui est important pour des profils actionnables.

Les 4 profils

J’ai testé k = 3 à 6. k=4 offre le meilleur compromis : silhouette solide (0.373) et trois clusters bien dimensionnés. Le quatrième (n=2) est un signal faible structurel : les mêmes individus atypiques isolés quel que soit le k.

Figure 5: Individus dans le plan FAMD (Dim 1 × Dim 2), colorés par cluster
Figure 6: Profil des clusters : variables booléennes les plus discriminantes
Profil n Description
C1 : En route vers le ML 14 Niveau R avancé, besoins ML/DL, peu intéressé par les bases
C2 : Le futur utilisateur 6 Excel/SAS, pas R, débutant, en transition vers l’open-source
C3 : Le praticien 16 Visu, manip, stats, Quarto, budget institutionnel
C4 : Signal faible 2 Reconversion, CPF, débutant

C1 et C3 constituent le cœur de cible immédiat. C2 a besoin d’une porte d’entrée accessible avant tout.

Ce que l’analyse a changé

Le frein principal n’est pas le prix. Le coût arrive derrière le manque de temps, le fait de ne pas savoir par où commencer, et les formations trop théoriques. Un résultat qui oriente les décisions de format bien plus que la tarification.

La sensibilité prix est structurelle, pas perçue. Les profils académiques plafonnent à des budgets contraints parce que leurs budgets de laboratoire sont limités, pas parce qu’ils ne valorisent pas la formation. Ce n’est pas le même problème.

C’est là toute la puissance des méthodes multivariées : C2 — 6 personnes qui utilisent Excel ou SAS, pas R, et qui sont en transition vers l’open-source — n’existe pas dans un graphique univarié. “Combien n’utilisent pas R ?” et “Qui n’utilise pas R, pourquoi, et vers quoi ils se dirigent ?” sont deux questions très différentes. La deuxième est celle qui oriente les décisions : ce profil n’a pas besoin d’une formation ML, il a besoin d’une porte d’entrée.

Les limites

38 répondants et ~20 variables actives, c’est exploratoire. La silhouette à 0.37 reflète l’absence de groupes très distincts dans les données, ce qui est attendu avec ce volume et cette hétérogénéité. Les profils sont des tendances utiles pour orienter la stratégie, pas des segments robustes. L’analyse sera à reconduire avec plus de données.

Et maintenant ?

J’avais prévu de développer la formation ML en premier, et ça, le questionnaire le confirme : c’est la plus demandée, notamment par C1. Bonne nouvelle, les plans ne changent pas.

En revanche, je pensais enchaîner avec “Introduction à R”. Surprise : c’est la formation Statistiques multivariées qui arrive en deuxième position dans les souhaits des répondants, devant les bases. Je change donc mes plans et c’est celle-ci que je prépare ensuite.

Le code de l’analyse est disponible sur le dépôt GitHub du projet. Les données collectées ne sont pas versionnées.

Vos données méritent mieux qu’un graphique en camembert. Apprenez à les analyser vous-même avec les formations PYRANHIA, ou confiez-moi l’analyse.