MQT-2101 - Analyse et modélisation des données
La semaine 02 transforme la lecture descriptive de la semaine 01 en démarche reproductible.
Le parcours guidé construit un mini-rapport Quarto sur les ventes. Les exercices appliquent ensuite la démarche à un autre fichier, sur les retours et les délais.
Ces notes donnent la vue d’ensemble. La page des démonstrations reprend les mêmes gestes avec le code complet, les sorties et leur interprétation.
| Capsule | Geste principal | Trace finale préparée |
|---|---|---|
| 1 | Préparer l’environnement | note de vérification |
| 2 | Se repérer dans RStudio | rôle de deux zones |
| 3 | Organiser un projet | justification des chemins relatifs |
| 4 | Importer et inspecter | code, dimensions, unité d’observation |
| 5 | Résumer et diagnostiquer | diagnostic et tableau descriptif |
| 6 | Produire le rapport | HTML, constats et question finale |
CSV
les données de départ
QMD
le texte et le code
HTML
le rapport à lire
Un projet garde ensemble les données, le code, les résultats et l’interprétation.
data/ contient les fichiers importés..qmd contient le texte et le code; le HTML affiche les résultats calculés.Une analyse reproductible ne repose pas sur des clics invisibles. Elle repose sur des fichiers organisés et sur du code que l’on peut relire.
Le code suppose que le .qmd est à la racine du projet et que le CSV se trouve dans data/.
Rows: 24
Columns: 12
$ mois <date> 2025-01-01, 2025-01-01, 2025-01-01, 2025-01-01,…
$ mois_nom <chr> "janvier", "janvier", "janvier", "janvier", "fév…
$ succursale <chr> "Montréal", "Québec", "Sherbrooke", "Trois-Riviè…
$ region <chr> "Montréal", "Capitale-Nationale", "Estrie", "Mau…
$ surface_m2 <dbl> 540, 420, 360, 335, 540, 420, 360, 335, 540, 420…
$ campagne_locale <chr> "non", "oui", "non", "non", "non", "non", "oui",…
$ canal_principal <chr> "magasin", "magasin", "web", "web", "web", "maga…
$ clients <dbl> 2254, 1858, 1506, 1199, 2162, 1682, 1585, 1458, …
$ panier_moyen <dbl> 53.11, 59.40, 63.31, 68.21, 66.53, 55.20, 58.44,…
$ ventes <dbl> 119710, 110365, 95345, 81784, 143838, 92846, 926…
$ delai_livraison_jours <dbl> 2.2, 3.8, 4.5, 3.5, 3.6, 1.8, 3.5, 2.6, NA, 3.9,…
$ satisfaction <dbl> 8.3, 8.6, 7.3, 8.1, NA, 7.9, 7.8, 8.0, 7.7, 7.9,…
glimpse()Rows indique le nombre d’observations.Columns indique le nombre de variables.La première question à poser est toujours la même : que représente une ligne du tableau?
Le tableau contient 24 lignes, 4 succursales, 4 régions et 3 canaux, de janvier à juin 2025.
Préparer les variables ne veut pas dire changer les données au hasard. Cela veut dire rendre explicite la façon dont chaque colonne sera utilisée.
# A tibble: 2 × 2
variable valeurs_manquantes
<chr> <int>
1 delai_livraison_jours 1
2 satisfaction 2
Une valeur manquante doit être signalée avant d’interpréter un résumé ou un graphique.
Dans ce module, le bon réflexe est de signaler les valeurs manquantes et de rester prudent. Les stratégies de traitement plus avancées viendront plus tard.
resume_succursales <- ventes_preparees |>
group_by(succursale, region) |>
summarise(
ventes_totales = sum(ventes),
clients_totaux = sum(clients),
panier_moyen = ventes_totales / clients_totaux,
nb_mois_satisfaction = sum(!is.na(satisfaction)),
satisfaction_moyenne = mean(satisfaction, na.rm = TRUE),
.groups = "drop"
) |>
arrange(desc(ventes_totales))| Succursale | Ventes ($ CA) | Panier ($ CA) | Mois utilisés | Satisfaction (/10) |
|---|---|---|---|---|
| Montréal | 831 777 $ | 59,17 $ | 5 | 8,08 |
| Québec | 677 971 $ | 59,14 $ | 5 | 8,06 |
| Sherbrooke | 589 922 $ | 61,68 $ | 6 | 7,88 |
| Trois-Rivières | 515 975 $ | 60,07 $ | 6 | 8,18 |
ventes_totales compare le volume observé par succursale.clients_totaux aide à interpréter les écarts de ventes.panier_moyen est le rapport des ventes totales au total de clients.satisfaction_moyenne est la moyenne non pondérée des scores mensuels disponibles; nb_mois_satisfaction donne leur nombre.Un tableau descriptif résume. Il ne démontre pas une cause.
graphique_ventes <- resume_succursales |>
mutate(succursale = fct_reorder(succursale, ventes_totales)) |>
ggplot(aes(x = ventes_totales, y = succursale)) +
geom_col(fill = "#0B4F6C") +
scale_x_continuous(labels = scales::label_dollar(
prefix = "", suffix = " $", big.mark = " ", decimal.mark = ","
)) +
labs(
title = "Ventes totales par succursale",
x = "Ventes totales ($ CA)",
y = NULL
) +
theme_minimal(base_size = 14)
graphique_ventesLe graphique aide à voir une structure. Le texte du rapport doit ensuite dire ce qui est visible, avec prudence.
.qmd se rend sans erreur.Le rapport se termine par deux constats descriptifs et une question pour la suite.
Question possible : quelles variables pourraient aider à expliquer les écarts de ventes entre succursales?
1
Un projet organise le travail.
2
Le code rend l’analyse vérifiable.
3
Quarto garde ensemble texte, code et résultats.