Mini-projet - Rapport BIXI sur un instantané GBFS
La disponibilité varie-t-elle entre groupes de capacité de stations?
À produire : Un tableau des médianes d’occupation et des proportions de stations sans vélo par groupe et statut, des boîtes à moustaches et l’étendue des heures des rapports.
Prérequis : Savoir ouvrir un projet RStudio et exécuter un script R. Savoir lire un tableau groupé et un graphique descriptif; repérer les valeurs manquantes.
Préparation enseignante
Télécharger la trousse ci-dessous. Extraire le ZIP, puis double-cliquer sur Donnees-bleues.Rproj. Avant la séance, ouvrir installer-packages.R et cliquer sur Source avec une connexion Internet.
Une fois les packages installés, les scripts utilisent les fichiers inclus et peuvent être exécutés hors ligne.
Télécharger la trousse avec les données
36 Ko. Préparation : 05/09/2026 à 07:04 (heure du Québec).
Les fichiers de données sont inclus dans la trousse.
Conditions de la source · Provenance et empreinte du ZIP
Fichiers inclus
-
stations_bixi_snapshot.csv: 1 113 lignes, 10 colonnes.
Contexte
Cette activité utilise la fiche État des stations BIXI. Unité : Une station BIXI dans un instantané de disponibilité.
Source : BIXI Montréal / Données Québec. Les dates de préparation, les fichiers et les conditions de réutilisation sont indiqués dans la trousse.
Consignes
- Ouvrir
activite-longue.Rdans le sous-dossierdatasets/bixidu projet RStudio et cliquer sur Source. Les tableaux apparaissent dans Console et les graphiques dans Plots. - Comparer les médianes d’occupation et les proportions sans vélo par groupe et statut.
- Examiner les boîtes à moustaches et l’étendue des heures des rapports.
- Rédiger une réponse à la question en nommant l’unité observée et une limite de la source.
Limites à faire nommer
Un instantané ne mesure ni la demande, ni les trajets, ni le rééquilibrage. Le statut opérationnel peut expliquer une disponibilité nulle.
Vérifier le travail
- Les groupes de capacité et les statuts opérationnels sont distingués dans le tableau.
- Les résumés précisent les rapports disponibles et leur étendue horaire.
- Les différences entre groupes sont décrites sans être attribuées à la demande.
Objectifs et adaptations
Adaptations
- Débuter avec le script exécuté par la personne enseignante, puis faire interpréter une seule sortie.
- Pour approfondir, modifier une sélection ou un regroupement et justifier ce que cela change.
Statut documenté : Documentation de source et ressources de classe fournies.
Contribution pédagogique : Aurélien Nicosia. Usage en cours non documenté.
- Ajout
- Mise à jour
Code complet
Ce script complet est celui de la trousse. Il lit les fichiers locaux et affiche les résultats dans RStudio.
Afficher le script R
# Mini-projet - Rapport BIXI sur un instantané GBFS
# Ouvrir le projet RStudio de l’archive, puis exécuter ce script.
# Source : https://www.donneesquebec.ca/recherche/dataset/vmtl-bixi-etat-des-stations
# Les données de classe sont figées; ce script ne les télécharge pas.
library(dplyr)
library(readr)
library(ggplot2)
donnees <- read_csv("data/processed/bixi/stations_bixi_snapshot.csv", show_col_types = FALSE)
stopifnot(nrow(donnees) > 0)
selection <- donnees |>
filter(capacity > 0, is.finite(taux_occupation)) |>
mutate(groupe_capacite = factor(groupe_capacite, levels = c(
"Petite station, 15 bornes ou moins", "Station moyenne, 16 à 25 bornes",
"Grande station, 26 à 35 bornes", "Très grande station, 36 bornes ou plus")))
stopifnot(!anyNA(selection$groupe_capacite))
resume <- selection |> group_by(groupe_capacite, etat_operationnel) |> summarise(
stations = n(), occupation_mediane = median(taux_occupation),
proportion_sans_velo = mean(num_bikes_available == 0), .groups = "drop")
print(resume)
print(donnees |> summarise(debut_rapport = min(last_reported_datetime, na.rm = TRUE),
fin_rapport = max(last_reported_datetime, na.rm = TRUE)))
print(ggplot(selection, aes(x = groupe_capacite, y = taux_occupation)) + geom_boxplot() + coord_flip() +
scale_y_continuous(labels = scales::label_percent()) +
labs(x = "Groupe de capacité", y = "Vélos disponibles / capacité (%)",
subtitle = "Comparer la disponibilité; la demande et le rééquilibrage ne sont pas observés"))