[Etude de marché - Article 7]
Aurélien Daval
Dans le précédent article, nous avons construit un Tris Croisé (TC) pour voir s’il y avait des différences significatives entre nos sous population. Plusieurs traitements statistiques complémentaires permettent d’aller plus loins dans l’analyse. Le premier que nous allons voir est l’analyse TURF (Total Unduplicated Reach and Frequency).
5. Traitement Statistique.
5.4. L’Ananalyse TURF.
L’objectif de cette analyse est de déterminer l’association de produits/services qui touchent le plus de clients possibles. Cela permet de trouver l’association qui permet une pénétration du marché la plus complète possible.
Dans notre exemple, on va considérer que notre client souhaite faire une campagne de publicité sur les réseaux sociaux. Cependant, notre client a un budget limité pour cette campagne et doit restreindre sa campagne à 3 réseaux. Lesquels choisir ?
Le choix pourrait se faire en fonction des trois réseaux qui arrivent en tête en nombre d’inscription. Soient dans notre exemple :
- Twitter qui totalise 47% d’inscription dans notre population cible.
- Viadeo avec 44%.
- Facebook avec 43%.
Or, si l’on sait que l’on touche 47% de notre population en choissisant Twitter comme canal de diffusion de notre publicité, combien vais-je toucher de clients avec l’association Twitter/Viadeo ? En effet, dans une hypothèse radicale, si ceux qui sont inscrit sur Viadeo sont tous inscrits sur Twitter, je ne vais pas augmenter la part de la population touchée par cette publicité.
Ainsi, l’analyse TURF répond à la question suivante : quelle est la meilleure association pour toucher le plus d’individus possibles via notre publicité ?
5.4.1. Préparation des données.
Nous allons utilisé pour cette analyse le package “turfR”.
install.packages("turfR")
Pour faire tourner la fonction “turf” de ce package, il faut tout d’abord adapter notre base de données à l’entrée attendue. Plus de détails ici.
Notre base de données comporte actuellement toutes les questions et les variables calculées (poids, catégorie d’âge, …) en colonne. Pour utiliser la fonction “turf”, il faut sélectionner uniquement les colonnes nécessaires et les placer dans un ordre particulier :
- Première colonne : l’ID des répondants.
- Deuxième colonne : le redressement (les poids). S’il n’y a pas de redressement, attribuer un poids de 1 à chaque participant.
- n autres colonnes : les éléments à analyser dans notre TURF, ici les différents réseaux sociaux.
Pour sélectionner les colonnes nécessaires, on utilise la fonction “select” du package “dplyr” :
# Sélection de la sous database :
library(dplyr)
DataBase_TURF <- DataBase %>% select(ID, weight, Q3A1:Q3A12)
Les n colonnes doivent être converties en variable binaire (ne comporter que des 0 ou des 1).. Pour l’instant, le répondant a sélectionné des réseaux sociaux (et la base a été incrémentée via un 1 à la bonne colonne), sinon il n’y a rien (NA). Pour transformer ces NA en 0, il faut utiliser la fonction is.na :
# Remplacement des NA par des 0 :
DataBase_TURF[is.na(DataBase_TURF)] <- 0
NB : il aurait été plus intéressant de faire ce TURF sur la fréquence d’utilisation des réseaux sociaux (et de sélectionner ceux qui passent le plus de temps sur ces réseaux). Si cette question avait été posée (1 - Tous les jours à 4 - Quelques fois par mois), une recode était possible via le package “expss” pour ne garder que la réponse “Tous les jours” :
# Sélection de la sous database :
recode(TURF) = c(2 ~ 0, 3 ~ 0, 4 ~ 0)
Après avoir préparer la base d’entrée, il est temps d’appeler la fonction TURF. Plusieurs arguments sont ncécessaires :
- la base de données créée précédemment.
- le nombre d’item évalué pour l’analyse TURF (ici les 12 réseaux sociaux).
- le nombre d’association à tester. Le nombre d’association minimum est de 2. Le nombre maximum est de n-1 (en effet, les n items touchent forcément le maximum d’individus possibles).
Ce qui donne :
# Analyse TURF :
library(turfR)
turf(DataBase_TURF, 12, 2:11)
5.4.2. Analyse des résultats.
L’analyse est réalisé. Quand est-il des résultats ?
La première partie des résultats résume le temps qui a été nécessaire pour faire les différentes analyses / les différents tableaux. On a :
2 of 12: 0.147608 sec
3 of 12: 0.7320411 sec
4 of 12: 1.176238 sec
5 of 12: 1.797901 sec
6 of 12: 1.956977 sec
7 of 12: 1.495011 sec
8 of 12: 0.8529921 sec
9 of 12: 0.3750119 sec
10 of 12: 0.1059811 sec
11 of 12: 0.02300119 sec
total time elapsed: 8.676247 sec
Il s’ensuit plusieurs tableaux. Si nous prenons le premier tableau (l’association de 2 réseaux sociaux) :
- rchx : le pourcentage des personnes inscrites sur au moins un de deux réseaux sociaux.
- frqX : la fréquence associée sur le total de l’échantillon.
- n items : permet d’associer les deux résultats (rchx et frqx) aux réseaux sociaux : la première ligne associe les résultats au 1ier et 11ième réseaux.
$turf[[1]]
combo rchX frqX 1 2 3 4 5 6 7 8 9 10 11 12
1 10 0.7004172 0.8967496 1 0 0 0 0 0 0 0 0 0 1 0
2 20 0.6937963 0.8691955 0 1 0 0 0 0 0 0 0 0 1 0
3 11 0.6901901 0.8710274 1 0 0 0 0 0 0 0 0 0 0 1
4 29 0.6887697 0.8803352 0 0 1 0 0 0 0 0 0 0 1 0
Ainsi, la première association (avec 2 réseaux) qui touche le plus d’individus de l’échantillon (70%) est le 1er réseau (Facebook) et le 11ième (Twitter) .
Pour avoir la réponse à la question de notre client (les 3 réseaux sociaux à choisir), il faut s’intéresser au tableau suivant :
$turf[[2]]
combo rchX frqX 1 2 3 4 5 6 7 8 9 10 11 12
1 45 0.8253808 1.276912 1 0 0 0 0 0 1 0 0 0 0 1
2 49 0.8211605 1.271267 1 0 0 0 0 0 0 1 0 0 0 1
3 55 0.8202222 1.341053 1 0 0 0 0 0 0 0 0 0 1 1
5.4.3. Conclusion.
Pour toucher le plus de personne possible avec cette publicité (82% de notre échantillon), il faut sélectionner : * Facebook (1). * Reddit (7). * Viadeo (12).