Passer au contenu

Portrait descriptif des profils financiers municipaux

Comment comparer des indicateurs fonciers entre territoires?

Durée : 2-3 heures. Niveau : Introduction à intermédiaire.

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

277 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
  • dictionnaire_postes_profil_financier_2025.csv : 21 lignes, 6 colonnes.
  • profil_financier_municipalites_2025.csv : 1 105 lignes, 31 colonnes.
  • profil_financier_municipalites_long_2025.csv : 15 470 lignes, 24 colonnes.
  • valeurs_manquantes_profil_financier_2025.csv : 31 lignes, 4 colonnes.

Contexte

Cette activité utilise la fiche Profil financier des municipalités locales du Québec. Unité : Une municipalité, ou un couple municipalité-poste dans la table longue.

Source : Données Québec / Ministère des Affaires municipales et de l’Habitation. Les dates de préparation, les fichiers et les conditions de réutilisation sont indiqués dans la trousse.

Consignes

  1. Ouvrir activite-longue.R dans le sous-dossier datasets/budgets-municipaux-quebec du projet RStudio et cliquer sur Source. Les tableaux apparaissent dans Console et les graphiques dans Plots.
  2. Résumer les cinq postes retenus par région sans mélanger leurs unités.
  3. Interpréter la distribution de l’indice RFU FIALX02097 par classe de population.
  4. Rédiger une réponse à la question en nommant l’unité observée et une limite de la source.

Résultat attendu

Les tableaux et graphiques du script, accompagnés d’une interprétation de 6 à 8 lignes répondant à la question.

Limites à faire nommer

Le dictionnaire distingue parts et indices. Comparer des profils publiés ne permet pas d’évaluer l’efficacité d’une administration.

Code complet

Ce script complet est celui de la trousse. Il lit les fichiers locaux et affiche les résultats dans RStudio.

# Portrait descriptif des profils financiers municipaux
# Ouvrir le projet RStudio de l’archive, puis exécuter ce script.
# Source : https://www.donneesquebec.ca/recherche/dataset/profil-financier-des-municipalites-locales
# Les données de classe sont figées; ce script ne les télécharge pas.

# Load libraries
library(dplyr)
library(ggplot2)
library(readr)
library(stringr)

# Import prepared files
municipalites <- read_csv(
  "data/processed/budgets-municipaux-quebec/profil_financier_municipalites_2025.csv",
  show_col_types = FALSE
)

profil_long <- read_csv(
  "data/processed/budgets-municipaux-quebec/profil_financier_municipalites_long_2025.csv",
  show_col_types = FALSE
)

dictionnaire <- read_csv(
  "data/processed/budgets-municipaux-quebec/dictionnaire_postes_profil_financier_2025.csv",
  show_col_types = FALSE
)

valeurs_manquantes <- read_csv(
  "data/processed/budgets-municipaux-quebec/valeurs_manquantes_profil_financier_2025.csv",
  show_col_types = FALSE
)

# Choose a small set of interpretable indicators
indicateurs_retenus <- c(
  "FIALX02005",
  "FIALX02006",
  "FIALX02007",
  "FIALX02010",
  "FIALX02097"
)

profil_selection <- profil_long |>
  filter(code_poste %in% indicateurs_retenus, !is.na(valeur)) |>
  left_join(
    dictionnaire |> select(code_poste, libelle_court, type_indicateur),
    by = c("code_poste", "libelle_court", "type_indicateur")
  )

# Summary by region and indicator
resume_regions <- profil_selection |>
  filter(!is.na(region_administrative)) |>
  group_by(region_administrative, code_poste, libelle_court) |>
  summarise(
    municipalites = n(),
    mediane = median(valeur, na.rm = TRUE),
    q1 = quantile(valeur, 0.25, na.rm = TRUE),
    q3 = quantile(valeur, 0.75, na.rm = TRUE),
    .groups = "drop"
  )

print(resume_regions)

# Visualise one selected indicator
print(ggplot(
  profil_selection |>
    filter(code_poste == "FIALX02097", !is.na(classe_population)),
  aes(x = classe_population, y = valeur)
) +
  geom_boxplot(fill = "#D8B365", color = "#4A3A1D", outlier.alpha = 0.35) +
  coord_flip() +
  labs(
    x = "Classe de population",
    y = "Indice RFU publié",
    title = "Indice RFU par classe de population",
    subtitle = "Profil financier 2024-2025, données de 2025"
  ))

Contribution pédagogique : Aurélien Nicosia. Cours : usage non documenté

Fiche de mise en œuvre

Repères pédagogiques

Les objectifs et critères ci-dessous permettent d’adapter la séance. La disponibilité des ressources ne constitue pas une validation de leur efficacité en classe.

Objectifs d'apprentissage
  • Résumer les cinq postes retenus par région sans mélanger leurs unités.
  • Interpréter la distribution de l’indice RFU FIALX02097 par classe de population.
  • Formuler une limite qui découle de la source et de l’unité observée.
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.
Critères de réussite
  • L’unité, la période ou la portée documentaire et les variables utilisées sont nommées.
  • Résumer les cinq postes retenus par région sans mélanger leurs unités.
  • Interpréter la distribution de l’indice RFU FIALX02097 par classe de population.
  • La conclusion répond à la question et explique au moins une limite précise.
Adaptations possibles
  • 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.

Ressources : Fichiers inclus