Analyse frequentielle dans le bassin versant de Bafing_Makana

Author

Moussa Ndiaye

Published

May 12, 2026

0.1 Chargement des packages

Nous commençons d’abord par importer les packages nécessaires :

library(trend)
library(readxl)
library(tidyverse)
library(extRemes)
library(knitr)
library(lubridate)

1 Introduction

Ce projet porte sur l’analyse fréquentielle des débits extrêmes du bassin versant de Bafing-Makana, situé en Afrique de l’Ouest. L’analyse fréquentielle est une méthode de prédiction qui permet de voir l’aptitude d’un modèle à reproduire les observations.

L’objectif de cette étude est d’identifier en premier lieu le modèle probabiliste le mieux adapté à la modélisation des crues à partir des débits observés, et d’estimer en suite les quantiles de crue pour différentes périodes de retour à partir des débits observés et des débits simulés par le modèle hydrologique GR4J, afin d’évaluer la capacité du modèle à reproduire les extrêmes.

2 Fondements théoriques de l’analyse fréquentielle

2.1 Enjeux de l’analyse fréquentielle

L’analyse fréquentielle en hydrologie a pour objectif de quantifier la probabilité d’occurrence des événements hydrologiques extrêmes (crues, étiages). Elle répond à des enjeux fondamentaux :

  • Dimensionnement des ouvrages hydrauliques : barrages, ponts, digues, évacuateurs de crues. Le sous-dimensionnement expose à des risques catastrophiques, le sur-dimensionnement à des coûts inutiles.
  • Gestion des risques inondation : délimitation des zones à risque, plans de prévention, assurance.
  • Planification et aménagement du territoire : les périodes de retour (2, 10, 50, 100 ans) servent de référence réglementaire dans de nombreux pays.
  • Évaluation de l’impact du changement climatique : en comparant les fréquences passées et futures des extrêmes.

En pratique, l’analyse fréquentielle permet d’estimer le débit \(Q_T\) associé à une période de retour \(T\) donnée, c’est-à-dire le débit qui n’est dépassé en moyenne qu’une fois tous les \(T\) ans.

2.2 Théorie des valeurs extrêmes (EVA)

La Théorie des Valeurs Extrêmes (Extreme Value Analysis, EVA) est le cadre probabiliste qui fonde l’analyse des événements rares. Elle repose sur deux résultats asymptotiques fondamentaux.

2.2.1 Théorème de Fisher-Tippett-Gnedenko

Si \(M_n = \max(X_1, ..., X_n)\) est le maximum d’une suite de variables aléatoires i.i.d., et s’il existe des suites \(a_n > 0\) et \(b_n\) telles que :

\[P\left(\frac{M_n - b_n}{a_n} \leq x\right) \xrightarrow[n \to \infty]{} G(x)\]

alors \(G\) est nécessairement une loi GEV (Generalized Extreme Value) de la forme :

\[G(x;\mu,\sigma,\xi) = \exp\left\{-\left[1+\xi\left(\frac{x-\mu}{\sigma}\right)\right]^{-1/\xi}\right\}\]

\(\mu\) est le paramètre de localisation, \(\sigma > 0\) le paramètre d’échelle, et \(\xi\) le paramètre de forme. Ce paramètre \(\xi\) détermine le type de queue :

Valeur de \(\xi\) Type Domaine d’attraction
\(\xi > 0\) Fréchet (queue lourde) Pareto, log-normale
\(\xi = 0\) Gumbel (queue légère) Normale, exponentielle
\(\xi < 0\) Weibull (queue bornée) Uniforme, bêta

2.2.2 Hypothèses fondamentales de l’EVA

Pour que l’EVA soit valide, les séries de maxima doivent respecter trois hypothèses :

  1. Stationnarité : les propriétés statistiques (moyenne, variance) ne varient pas dans le temps. Aucune tendance ni saut structurel ne doit affecter la série.
  2. Indépendance : les maxima annuels doivent être indépendants les uns des autres autrement dit, ils ne doivent pas être autocorrélés. En hydrologie, cette hypothèse est généralement satisfaite pour des maxima annuels.
  3. Homogénéité : les données proviennent d’une même population statistique (même loi de probabilité).

2.3 Méthodes d’échantillonnage des valeurs extrêmes

2.3.1 Méthode des maxima par blocs (Block Maxima – BM)

Principe : On divise la série temporelle en blocs de taille fixe (généralement une année), et on retient le maximum de chaque bloc. Les maxima annuels ainsi obtenus sont ajustés par une loi GEV.

Avantages : - Fondement théorique solide (théorème de Fisher-Tippett-Gnedenko). - Facile à mettre en œuvre (Simple). - Garantit l’indépendance des observations si les blocs sont annuels.

Limites : - Perte d’information : un seul événement extrême est retenu par année, même si plusieurs événements importants ont eu lieu. - Exige une série longue pour avoir suffisamment de maxima. - Augmente les incertitudes, - Sensible à la taille du bloc : plus l’échantillon est petit plus le modèle a du mal à reproduire la réalité.

2.3.2 Méthode des dépassements de seuil (Peaks Over Threshold – POT)

Principe : On retient tous les événements qui dépassent un seuil \(u\) prédéfini. Par le théorème de Pickands-Balkema-de Haan, les excès \(X - u\) au-delà de \(u\) convergent vers une loi de Pareto généralisée (GPD).

Avantages :

  • Utilise davantage d’information que la méthode BM (échantillons plus grand, pour une année on peut avoir plus d’une valeur).
  • Plus efficace statistiquement, surtout pour des séries courtes.
  • Diminue les incertitudes

Limites :

  • Choix du seuil \(u\) délicat et subjectif (trop bas → biais(valeurs ne faisant pas parties des valeurs extrêmes et risque d’autocorrélation), trop haut → variance élevée).
  • Nécessite de dépouiller les occurrences pour garantir l’indépendance.

Le choix de la méthode dépendra de :

  • la longueur de la série
  • la précision recherchée

Mais dans la littérature on utilise la méthode du BM à cause de sa simplicité. C’est d’ailleurs la méthode adoptée dans ce travail.

2.4 Le modèle fréquentiel

Un modèle fréquentiel est une loi de probabilité ajustée aux données extrêmes qui permet de relier la valeur d’un événement à sa fréquence d’occurrence. Il se caractérise par une fonction de distribution \(F(x) = P(X \leq x)\) dont les paramètres sont estimés à partir des données. En hydrologie, les modèles les plus utilisés sont la GEV (forme générale), la loi de Gumbel (\(\xi = 0\)), la loi de Fréchet (\(\xi > 0\)), et la loi log-Pearson III.

2.5 Ajustement d’un modèle fréquentiel

L’ajustement consiste à estimer les paramètres du modèle choisi à partir des données observées. Les principales méthodes sont :

  • Maximum de vraisemblance (MLE) : maximise la probabilité d’observer les données sous le modèle.
  • Méthode des moments (MOM) : égalise les moments théoriques et empiriques.
  • Méthode des L-moments : utilise des combinaisons linéaires des statistiques d’ordre, plus robustes aux valeurs aberrantes.

2.6 Pourquoi et comment ajuster un modèle fréquentiel ?

L’ajustement est nécessaire pour extrapoler au-delà des données observées : on ne dispose généralement que de quelques décennies de mesures, alors qu’on souhaite estimer les événements de période de retour 100 ou 1000 ans. Le modèle ajusté permet de calculer le quantile \(Q_T\) associé à la période de retour \(T\) :

\[Q_T = F^{-1}\left(1 - \frac{1}{T}\right)\]

La démarche comprend : (1) choix de la famille de distributions, (2) estimation des paramètres, (3) validation de l’ajustement par des tests statistiques et des graphiques diagnostiques, (4) estimation des quantiles avec intervalles de confiance.


3 Mise en œuvre de l’analyse fréquentielle

3.1 Chargement et préparation des données

Pour faciliter le travail, nous avons placer le fichier Qmm_BafingMakana.xlsx dans le répertoire de travail.

3.2 Répertoire de travail

Pour obtenir le répertoire de travail

getwd()
[1] "C:/Users/Moussa Ndiaye/Desktop/Cours M2/Hydrologie_statistique/Projet_hydro_stat"
setwd("chemin/vers/votre/dossier")

3.3 Importer et afficher les données

Les données sont disponibles à l’adresse : https://ppp.woelkli.com/s/4bnNwMbJXaA3rm2 (mot de passe : satOA2C@2026)

donnees <- read_excel("Qmm_BafingMakana.xlsx")
head(donnees)
# A tibble: 6 × 3
  Date                 Qobs  Qsim
  <dttm>              <dbl> <dbl>
1 2005-01-01 00:00:00 109.  1606.
2 2005-01-02 00:00:00 102.  1451.
3 2005-01-03 00:00:00  95.3 1319.
4 2005-01-04 00:00:00  91.4 1207.
5 2005-01-05 00:00:00  88.4 1110.
6 2005-01-06 00:00:00  86.4 1026.

3.4 Visualisation des débits journaliers

La Figure 1 montre l’évolution des débits journaliers. Le modèle simule bien la dynamique globale des débits sur 2005–2015 : les pics saisonniers sont reproduits en nombre et en timing. on note une bonne concordance sur les débits de base (étiages), les cycles saisonniers annuels bien capturés et la tendance à la hausse des pics vers 2013–2015 bien reproduite. Cependant, certains pics de crue sont sous-estimés, quelques pics montrent un décalage temporel léger et les valeurs extrêmes (>3500 m³/s) semblent mal reproduites.

Le modèle est satisfaisant en régime normal, mais présente des lacunes sur les événements extrêmes, ce qui est classique pour les modèles hydrologiques conceptuels. Une analyse des critères NSE et biais permettrait de quantifier ces écarts.

ggplot(donnees) +
  geom_line(aes(x = Date, y = Qobs, color = "Observé"), linewidth = 0.5) +
  geom_line(aes(x = Date, y = Qsim, color = "Simulé"),  linewidth = 0.5) +
  scale_color_manual(values = c("Observé" = "dodgerblue", "Simulé" = "tomato")) +
  labs(x = "Date", y = "Débit (m³/s)", color = NULL) +
  theme_minimal() +
  theme(legend.position = "top")
Figure 1: Évolution des débits journaliers observés et simulés (2005–2015)

3.5 Application de l’analyse fréquentielle

3.5.1 Extraction des maxima annuels (Block Maxima)

# Fonction d'extraction des maxima annuels
extract_annual_maxima <- function(data, col_name, date_col = "Date") {
  maxima <- data %>%
    mutate(temp_year = year(!!sym(date_col))) %>%
    group_by(temp_year) %>%
    slice_max(order_by = !!sym(col_name), n = 1, with_ties = FALSE) %>%
    ungroup() %>%
    dplyr::select(-temp_year)
  return(maxima[, c(date_col, col_name)])
}

3.5.1.1 Application sur les débits observés et simulés :

AMAXobs <- extract_annual_maxima(donnees, "Qobs")
AMAXsim <- extract_annual_maxima(donnees, "Qsim")
head(AMAXobs)
# A tibble: 6 × 2
  Date                 Qobs
  <dttm>              <dbl>
1 2005-08-19 00:00:00 3035.
2 2006-09-04 00:00:00 1761.
3 2007-08-27 00:00:00 3585.
4 2008-08-23 00:00:00 2489.
5 2009-09-18 00:00:00 3602.
6 2010-09-11 00:00:00 4511.

3.5.1.2 Visualisation des maximas superposés aux débits journaliers :

ggplot() +
  geom_line(data = donnees, aes(x = Date, y = Qobs),
            color = "dodgerblue", linewidth = 0.5) +
  geom_point(data = AMAXobs, aes(x = Date, y = Qobs),
             color = "red", size = 2.5) +
  geom_point(data = AMAXsim, aes(x = Date, y = Qsim),
             color = "green4", size = 2.5, shape = 17) +
  labs(x = "Date", y = "Débit (m³/s)") +
  theme_minimal()
Figure 2: Débits journaliers avec maxima annuels (rouge = observés, vert = simulés)

3.5.2 Tests statistiques sur les maxima annuels

Avant d’ajuster un modèle de valeurs extrêmes, il est indispensable de vérifier que les hypothèses fondamentales de l’EVA (stationnarité, indépendance, homogénéité) sont satisfaites.

3.5.2.1 Corrélogramme (indépendance visuelle)

L’analyse du corrélogramme montre que seul le lag 0 dépasse largement les bornes de l’intervalle de confiance à 95% , ce qui est normal car on a une autocorrélation d’une valeur avec elle-même. Tous les autres lags (1 à 10) sont à l’intérieur des bandes de confiance à 95% (lignes rouges pointillées à ±0,5 environ). Donc les maximas annuels observés ne présentent aucune autocorrélation significative. Aucun lag ne dépasse le seuil critique, ce qui indique que chaque maximum annuel est statistiquement indépendant des années précédentes.

L’hypothèse d’indépendance des maximas annuels, condition nécessaire à l’application de la théorie des valeurs extrêmes (EVA) est ainsi validée visuellement.

Afficher le code
bacf     <- acf(AMAXobs$Qobs, plot = FALSE)
bacfdf   <- with(bacf, data.frame(lag, acf))
n        <- length(AMAXobs$Qobs)
conf_lim <- 1.96 / sqrt(n)

ggplot(bacfdf, aes(x = lag, y = acf)) +
  geom_hline(aes(yintercept = 0)) +
  geom_bar(stat = "identity", width = 0.2) +
  geom_hline(yintercept =  conf_lim, linetype = "dashed", color = "red") +
  geom_hline(yintercept = -conf_lim, linetype = "dashed", color = "red") +
  scale_x_continuous(breaks = seq(1, 10)) +
  labs(y = "ACF", x = "Retard (Lag)") +
  theme_minimal() +
  theme(
    axis.title = element_text(size = 10, face = "bold", family = "Times"),
    axis.text  = element_text(size = 10, color = "black", family = "Times")
  )
Figure 3: Autocorrélation des maxima annuels observés. Les lignes rouges représentent l’IC à 95%.

3.5.2.2 Test d’indépendance (Wald-Wolfowitz)

# Test sur les observations
ww_obs <- ww.test(AMAXobs$Qobs)
print(ww_obs)

    Wald-Wolfowitz test for independence and stationarity

data:  AMAXobs$Qobs
z = -0.078307, n = 11, p-value = 0.9376
alternative hypothesis: The series is significantly different from 
 independence and stationarity

Le test de Wald-Wolfowitz appliqué aux maxima annuels observés donne les résultats suivants : (z = -0,078 ) (n = 11, p = 0,937). Étant donné que la p-valeur est très supérieure à 0,05, nous ne rejetons pas l’hypothèse nulle d’indépendance et de stationnarité. Par conséquent les maximas annuels de Bafing-Makana ne présentent aucune structure d’autocorrélation significative. Ce résultat confirme l’analyse visuelle du corrélogramme.

# Test sur les simulations
ww_sim <- ww.test(AMAXsim$Qsim)
print(ww_sim)

    Wald-Wolfowitz test for independence and stationarity

data:  AMAXsim$Qsim
z = 0.53753, n = 11, p-value = 0.5909
alternative hypothesis: The series is significantly different from 
 independence and stationarity

Le test de Wald-Wolfowitz appliqué aux maxima annuels simulés donne les résultats suivants : (z = 0.538, n = 11, p = 0.591). La p-valeur étant largement supérieure au seuil de 0.05, on ne rejette pas l’hypothèse nulle d’indépendance et de stationnarité. Les maxima annuels simulés ne présentent donc aucune structure d’autocorrélation significative, ce qui confirme que le modèle GR4J préserve les propriétés stochastiques de la série observée. Ce résultat est cohérent avec celui obtenu sur les observations (p = 0.937).

3.5.2.3 Test de tendance (Mann-Kendall)

Visualisation graphique de la tendance linéaire :

Afficher le code
model_obs <- lm(Qobs ~ year(Date), data = AMAXobs)
slope_obs <- coef(model_obs)[2]

ggplot(AMAXobs, aes(year(Date), Qobs)) +
  geom_line(color = "dodgerblue", linewidth = 1) +
  geom_smooth(method = "lm", color = "red", linewidth = 1, se = FALSE) +
  scale_x_continuous(labels = function(x) round(x)) +
  annotate("text",
           x     = min(year(AMAXobs$Date)),
           y     = max(AMAXobs$Qobs),
           label = paste0("Pente = ", round(slope_obs, 3), " m³/s/an"),
           hjust = 0, size = 3.5) +
  labs(x = "Année", y = "Débit max annuel (m³/s)") +
  theme_minimal()
Figure 4: Évolution du débit annuel maximal observé avec tendance linéaire.
3.5.2.3.1 Test de Mann-Kendall sur les observations :
mk_obs <- mk.test(AMAXobs$Qobs)
print(mk_obs)

    Mann-Kendall trend test

data:  AMAXobs$Qobs
z = 0.1557, n = 11, p-value = 0.8763
alternative hypothesis: true S is not equal to 0
sample estimates:
           S         varS          tau 
  3.00000000 165.00000000   0.05454545 

Le test de Mann-Kendall appliqué aux maximas annuels observés donne les résultats suivants : (z = 0.1557), (n = 11, p = 0.876). Étant donné que la p-valeur est très supérieure à 0.05, nous ne rejetons pas l’hypothèse nulle d’absence de tendance monotone. Par conséquent, les maximas annuels de Bafing-Makana ne présentent aucune tendance significative à la hausse ou à la baisse sur la période observée. Ce résultat est cohérent avec l’hypothèse de stationnarité de la série.

3.5.2.3.2 Test de Mann-Kendall sur les simulations :
mk_sim <- mk.test(AMAXsim$Qsim)
print(mk_sim)

    Mann-Kendall trend test

data:  AMAXsim$Qsim
z = 1.4013, n = 11, p-value = 0.1611
alternative hypothesis: true S is not equal to 0
sample estimates:
          S        varS         tau 
 19.0000000 165.0000000   0.3454545 

Le test de Mann-Kendall appliqué aux maxima annuels simulés donne les résultats suivants : (z = 1.401, n = 11, p = 0.161). La p-valeur étant supérieure au seuil de 0.05, on ne rejette pas l’hypothèse nulle d’absence de tendance monotone. Bien que le tau de Kendall (τ = 0.345) indique une tendance positive modérée, celle-ci n’est pas statistiquement significative. Les maxima annuels simulés peuvent donc être considérés comme stationnaires sur la période analysée, bien que la p-valeur (0.161) soit plus proche du seuil que pour la série observée (0.876), suggérant une légère tendance à la hausse dans les simulations du modèle GR4J.

3.5.2.3.3 Pente de Sen (amplitude de la tendance) :
sens_obs <- trend::sens.slope(AMAXobs$Qobs)
print(sens_obs)

    Sen's slope

data:  AMAXobs$Qobs
z = 0.1557, n = 11, p-value = 0.8763
alternative hypothesis: true z is not equal to 0
95 percent confidence interval:
 -174.7012  247.4933
sample estimates:
Sen's slope 
   17.12756 

La pente de Sen estimée sur les maxima annuels observés est de 17.13 m³/s par an, avec un intervalle de confiance à 95 % de [−174.70 ; 247.49]. La p-valeur associée (p = 0.876) étant largement supérieure au seuil de 0.05, cette pente n’est pas statistiquement différente de zéro. Ainsi, bien que la tendance estimée soit légèrement positive, elle demeure non significative et statistiquement indiscernable d’une absence de tendance. Ce résultat vient confirmer les conclusions du test de Mann-Kendall : les maxima annuels de Bafing-Makana ne présentent pas de tendance monotone significative sur la période analysée, ce qui est compatible avec l’hypothèse de stationnarité de la série.

3.5.2.4 Test d’homogénéité (Test de rupture de Pettitt)

# Test sur les observations
pett_obs <- pettitt.test(AMAXobs$Qobs)
print(pett_obs)

    Pettitt's test for single change-point detection

data:  AMAXobs$Qobs
U* = 14, p-value = 0.8898
alternative hypothesis: two.sided
sample estimates:
probable change point at time K 
                              4 

Le test de Pettitt appliqué aux maxima annuels observés donne les résultats suivants : (U* = 14), (n = 11, p = 0,890). La p-valeur étant très largement supérieure au seuil de 0.05, nous ne rejetons pas l’hypothèse nulle d’homogénéité de la série. Bien que le test identifie une rupture potentielle à la 4ème observation, cette détection n’est pas statistiquement significative et peut être attribuée aux fluctuations aléatoires inhérentes à une série de faible longueur. Par conséquent, les maxima annuels de Bafing-Makana ne présentent aucune rupture structurelle significative, ce qui confirme l’homogénéité de la série et renforce l’hypothèse de stationnarité retenue pour la suite de l’analyse fréquentielle.

# Test sur les simulations
pett_sim <- pettitt.test(AMAXsim$Qsim)
print(pett_sim)

    Pettitt's test for single change-point detection

data:  AMAXsim$Qsim
U* = 18, p-value = 0.5243
alternative hypothesis: two.sided
sample estimates:
probable change point at time K                            <NA> 
                              2                               4 
                           <NA> 
                              5 

Le test de Pettitt appliqué aux maximas annuels simulés donne les résultats suivants : (U* = 18), (p = 0.524). La p-valeur étant nettement supérieure au seuil de 0.05, nous ne rejetons pas l’hypothèse nulle d’homogénéité de la série simulée. Les points de rupture potentiels identifiés aux positions 2 et 4 ne sont pas statistiquement significatifs et relèvent vraisemblablement de la variabilité naturelle de la série. Par conséquent, les maxima annuels simulés de Bafing-Makana ne présentent aucune rupture structurelle significative, ce qui confirme leur homogénéité et leur compatibilité avec l’hypothèse de stationnarité, au même titre que les débits observés.

3.5.3 Test d’indépendance (Ljung-Box)

# Test sur les observations
Ljung_obs <- Box.test(AMAXobs$Qobs, lag = 10, type = "Ljung-Box")
print(Ljung_obs)

    Box-Ljung test

data:  AMAXobs$Qobs
X-squared = 8.185, df = 10, p-value = 0.6108

Le test de Ljung-Box appliqué aux maxima annuels observés (lag = 10) donne une statistique X² = 8.185 (ddl = 10) avec une p-valeur de 0.611. Cette valeur étant largement supérieure au seuil de 0.05, on ne rejette pas l’hypothèse nulle d’indépendance des observations. Les maxima annuels peuvent donc être considérés comme indépendants et identiquement distribués (i.i.d.), ce qui valide une condition fondamentale pour l’application de l’analyse des valeurs extrêmes (EVA).

# Test sur les simulations
Ljung_sim <- Box.test(AMAXsim$Qsim, lag = 10, type = "Ljung-Box")
print(Ljung_sim)

  Box-Ljung test

data:  AMAXsim$Qsim
X-squared = 8.1862, df = 10, p-value = 0.6107

Le même test de Ljung-Box appliqué aux maxima annuels simulés (lag = 10) donne une statistique X² = 8.186 (ddl = 10) avec une p-valeur de 0.611, pratiquement identique à celle obtenue sur les observations. L’hypothèse d’indépendance n’est pas rejetée, confirmant que les simulations préservent la propriété i.i.d. des données observées, condition nécessaire à l’application de l’EVA.

3.5.4 Ajustement des modèles fréquentiels

Afficher le code
# Fonction d'affichage du résumé d'ajustement
pretty_fit_summary <- function(fitobj, model) {
  cat("===", model, "– Résumé de l'ajustement ===\n\n")

  cat("Paramètres estimés:\n")
  params <- fitobj$results$par
  print(round(params, 4))

  look <- summary(fitobj, silent = TRUE)
  cat("\nCritères d'ajustement:\n")
  cat(sprintf("LogLik : %.2f\n", look$nllh))
  cat(sprintf("AIC    : %.2f\n", look$AIC))
  cat(sprintf("BIC    : %.2f\n", look$BIC))

  return(data.frame(Model = model,
                    Crit  = c("AIC", "BIC"),
                    Value = c(look$AIC, look$BIC)))
}

3.5.4.1 Ajustement GEV – Série observée

gevfit_obs <- fevd(x = AMAXobs$Qobs, type = "GEV")
gevfit_obs_res <- pretty_fit_summary(gevfit_obs, "GEV – Observé")
=== GEV – Observé – Résumé de l'ajustement ===

Paramètres estimés:
 location     scale     shape 
2897.1433  795.1522   -0.3170 

Critères d'ajustement:
LogLik : 88.57
AIC    : 183.14
BIC    : 184.33

L’ajustement d’une loi des valeurs extrêmes généralisée (GEV) aux maxima annuels observés fournit les paramètres suivants : un paramètre de position μ = 2897.14 m³/s, un paramètre d’échelle σ = 795.15 m³/s, et un paramètre de forme ξ = −0.317. Le paramètre de forme négatif indique que la distribution appartient au domaine de Weibull, caractérisé par une borne supérieure finie, ce qui est physiquement cohérent pour des débits extrêmes. Les critères d’information donnent une log-vraisemblance de 88.57, un AIC de 183.14 et un BIC de 184.33, qui serviront de références pour la comparaison avec d’autres distributions candidates. Dans l’ensemble, cet ajustement GEV constitue une représentation satisfaisante du comportement des maximas annuels observés à la station de Bafing-Makana.

plot(gevfit_obs)

L’ajustement du modèle GEV aux données de maxima annuels (AMAXobs) présente un BIC de 184.33, indiquant une qualité d’ajustement acceptable. Les diagnostics graphiques confirment la validité du modèle : le QQ-plot montre un bon alignement des points sur la diagonale, traduisant une bonne reproduction de la distribution empirique. Le PP-plot révèle une légère déviation aux queues, attendue pour les valeurs extrêmes rares. La comparaison des densités confirme que la densité modélisée suit la forme générale des observations. Enfin, la courbe des niveaux de retour est croissante avec des bandes de confiance à 95 % qui s’élargissent pour les grandes périodes de retour, ce qui reflète l’incertitude naturellement croissante associée aux événements rares. Le modèle GEV est donc adapté pour l’estimation des quantiles extrêmes.

3.5.4.2 Ajustement Gumbel – Série observée

gumfit_obs <- fevd(x = AMAXobs$Qobs, type = "Gumbel")
gumfit_obs_res <- pretty_fit_summary(gumfit_obs, "Gumbel – Observé")
=== Gumbel – Observé – Résumé de l'ajustement ===

Paramètres estimés:
 location     scale 
2875.1772  733.7636 

Critères d'ajustement:
LogLik : 89.26
AIC    : 182.53
BIC    : 183.32

L’ajustement d’une loi de Gumbel (GEV avec ξ = 0) aux maximas annuels observés fournit les paramètres suivants : un paramètre de position μ = 2875.18 m³/s et un paramètre d’échelle σ = 733.76 m³/s. Les critères d’information donnent une log-vraisemblance de 89.26, un AIC de 182.53 et un BIC de 183.32. Comparativement à l’ajustement GEV (AIC = 183.14 ; BIC = 184.33), la loi de Gumbel présente des critères légèrement plus favorables malgré un paramètre de moins, ce qui suggère qu’elle offre un meilleur compromis entre qualité d’ajustement et parcimonie pour cette série. Ce résultat est cohérent avec la faible valeur du paramètre de forme estimé par la GEV (ξ = −0.317), qui, bien que négatif, reste associé à une incertitude importante compte tenu de la courte longueur de la série (n = 11).

plot(gumfit_obs)

L’ajustement du modèle de Gumbel aux données de maxima annuels (AMAXobs) présente un BIC de 183.32, légèrement inférieur à celui du modèle GEV (184.33), ce qui indique un meilleur ajustement au sens du critère BIC. Le QQ-plot montre un bon alignement des points sur la diagonale pour les valeurs centrales, mais une déviation plus marquée aux queues supérieures que pour le GEV. Le PP-plot confirme cette tendance, avec des écarts plus visibles pour les probabilités extrêmes. La densité modélisée suit globalement la forme empirique, bien que le pic soit moins bien capturé. La courbe des niveaux de retour est croissante avec des bandes de confiance qui s’élargissent pour les grandes périodes de retour. Malgré un BIC plus favorable, le modèle de Gumbel, étant un cas particulier du GEV (paramètre de forme ξ = 0), est plus contraint et peut sous-estimer les quantiles extrêmes rares.

3.5.4.3 Comparaison des modèles – Série observée

La comparaison repose exclusivement sur les données observées, conformément aux consignes.

crit_obs <- bind_rows(gevfit_obs_res, gumfit_obs_res) %>%
  pivot_wider(names_from = Crit, values_from = Value)

kable(crit_obs, digits = 2,
      caption = "Comparaison AIC/BIC – GEV vs Gumbel (série observée)")
Comparaison AIC/BIC – GEV vs Gumbel (série observée)
Model AIC BIC
GEV – Observé 183.14 184.33
Gumbel – Observé 182.53 183.32

La comparaison des critères d’information entre la loi GEV et la loi de Gumbel sur la série observée révèle des différences très faibles : ΔAIC = 0.61 et ΔBIC = 1.01, tous deux en faveur de la loi de Gumbel. Conformément au principe de parcimonie, lorsque la différence d’AIC entre deux modèles est inférieure à 2, le modèle le plus simple est préféré. La loi de Gumbel, qui ne comporte que deux paramètres contre trois pour la GEV, est donc retenue comme modèle d’ajustement pour la série observée des maxima annuels de Bafing-Makana. Ce choix est d’autant plus justifié que la courte longueur de la série (n = 11) ne permet pas d’estimer le paramètre de forme ξ de la GEV avec une précision suffisante, rendant l’ajout de ce paramètre supplémentaire peu fiable statistiquement.

3.5.4.4 Ajustement Gumbel – Série simulée

gumfit_sim <- fevd(x = AMAXsim$Qsim, type = "Gumbel")
gumfit_sim_res <- pretty_fit_summary(gumfit_sim, "Gumbel – Simulé")
=== Gumbel – Simulé – Résumé de l'ajustement ===

Paramètres estimés:
 location     scale 
2319.0250  560.4637 

Critères d'ajustement:
LogLik : 86.31
AIC    : 176.61
BIC    : 177.41

L’ajustement d’une loi de Gumbel aux maximas annuels simulés fournit les paramètres suivants : un paramètre de position μ = 2319.03 m³/s et un paramètre d’échelle σ = 560.46 m³/s. Les critères d’information donnent une log-vraisemblance de 86.31, un AIC de 176.61 et un BIC de 177.41. Comparativement à l’ajustement Gumbel sur la série observée (μ = 2875.18 m³/s ; σ = 733.76 m³/s), les paramètres estimés sur la série simulée sont sensiblement plus faibles, ce qui traduit une tendance centrale et une dispersion inférieures des débits simulés par rapport aux débits observés. Cet écart entre les deux séries mérite d’être pris en compte lors de l’interprétation des quantiles extrêmes, notamment pour les périodes de retour élevées, où la divergence entre les deux ajustements pourrait s’accentuer.

plot(gumfit_sim)

L’ajustement du modèle de Gumbel aux données simulées (AMAXsim) révèle un ajustement nettement moins satisfaisant que sur les données observées. Le QQ-plot montre une dispersion importante des points autour de la diagonale, avec des déviations significatives aux deux extrémités, indiquant que le modèle de Gumbel capture mal la structure des données simulées. Le PP-plot confirme ces écarts, particulièrement prononcés dans les queues. La comparaison des densités est particulièrement révélatrice : la densité empirique présente une forme bimodale avec deux pics distincts, que le modèle de Gumbel (unimodal) ne peut pas reproduire. Ce décalage est majeur et remet en question l’adéquation du modèle. La courbe des niveaux de retour présente des bandes de confiance très larges, reflétant une forte incertitude. La présence d’une bimodalité dans les données simulées suggère une hétérogénéité dans le processus générateur, rendant le modèle de Gumbel inadapté pour cette série simulée.

3.5.4.5 Ajustement GEV – Série simulée

gevfit_sim <- fevd(x = AMAXsim$Qsim, type = "GEV")
gevfit_sim_res <- pretty_fit_summary(gevfit_sim, "GEV – Simulé")
=== GEV – Simulé – Résumé de l'ajustement ===

Paramètres estimés:
 location     scale     shape 
2368.1285  588.1921   -0.1833 

Critères d'ajustement:
LogLik : 85.98
AIC    : 177.96
BIC    : 179.16

L’ajustement d’une loi GEV aux maxima annuels simulés fournit les paramètres suivants : un paramètre de position μ = 2368.13 m³/s, un paramètre d’échelle σ = 588.19 m³/s et un paramètre de forme ξ = −0.183. Comme pour la série observée, le paramètre de forme négatif indique une distribution de type Weibull à queue bornée, bien que sa valeur absolue soit plus faible que celle estimée sur la série observée (ξ = −0.317), suggérant une queue de distribution légèrement moins contrainte. Les critères d’information donnent une log-vraisemblance de 85.98, un AIC de 177.96 et un BIC de 179.16. Comparativement à l’ajustement Gumbel sur la même série simulée (AIC = 176.61 ; BIC = 177.41), la loi de Gumbel présente à nouveau des critères plus favorables avec ΔAIC = 1.35 et ΔBIC = 1.75, tous deux inférieurs au seuil de 2, confirmant ainsi la préférence pour le modèle de Gumbel au titre du principe de parcimonie.

plot(gevfit_sim)

L’ajustement GEV sur les données simulées (AMAXsim) montre des diagnostics globalement satisfaisants mais avec une qualité moindre par rapport aux données observées. Le QQ-plot révèle une dispersion plus importante des points autour de la diagonale, notamment aux valeurs extrêmes, indiquant un ajustement moins précis. Le PP-plot confirme cette tendance avec des écarts plus marqués. La comparaison des densités montre un décalage notable entre la densité empirique et modélisée, suggérant que les données simulées présentent une distribution légèrement différente de celle capturée par le modèle GEV. La courbe des niveaux de retour reste croissante, mais les bandes de confiance sont plus larges que pour les données observées, traduisant une incertitude accrue. Ce résultat est cohérent avec le fait que les données simulées introduisent une variabilité supplémentaire par rapport aux observations, ce qui rend l’ajustement plus incertain.

3.6 Estimation des quantiles de crue

Le meilleur modèle (identifié par l’AIC) est utilisé pour chaque série. Dans ce travail, nous retenons la loi de Gumbel.

rperiods <- c(2, 10, 20, 50)

3.6.1 Quantiles – Série observée

rlevels_obs <- return.level(gumfit_obs, return.period = rperiods, do.ci = TRUE)
print(rlevels_obs)
fevd(x = AMAXobs$Qobs, type = "Gumbel")

[1] "Normal Approx."

                     95% lower CI Estimate 95% upper CI
2-year return level      2625.846 3144.111     3662.376
10-year return level     3534.114 4526.415     5518.715
20-year return level     3851.882 5054.598     6257.315
50-year return level     4255.396 5738.278     7221.160

Les quantiles estimés croissent régulièrement avec la période de retour, passant de 3144 m³/s pour la crue biennale à 5738 m³/s pour la crue cinquantennale. On notera toutefois que les intervalles de confiance à 95 % sont particulièrement larges, reflétant l’incertitude importante liée à la faible taille de l’échantillon (n = 11). Cette incertitude s’accentue avec la période de retour, ce qui invite à la prudence dans l’interprétation des quantiles extrêmes, notamment pour la crue cinquantennale dont la borne supérieure n’est pas disponible dans les résultats fournis.

3.6.2 Quantiles – Série simulée

rlevels_sim <- return.level(gumfit_sim, return.period = rperiods, do.ci = TRUE)
print(rlevels_sim)
fevd(x = AMAXsim$Qsim, type = "Gumbel")

[1] "Normal Approx."

                     95% lower CI Estimate 95% upper CI
2-year return level      2132.356 2524.442     2916.528
10-year return level     2820.015 3580.274     4340.534
20-year return level     3057.527 3983.712     4909.897
50-year return level     3358.457 4505.920     5653.383

Comparativement aux quantiles issus de la série observée, les estimations de la série simulée sont systématiquement inférieures pour toutes les périodes de retour, avec des écarts allant de 619 m³/s pour la crue biennale à 1232 m³/s pour la crue cinquantennale. Cet écart croissant avec la période de retour traduit une sous-estimation progressive des débits extrêmes par le modèle hydrologique, vraisemblablement liée aux différences de paramètres d’échelle entre les deux ajustements (σ = 733.76 m³/s pour la série observée contre σ = 560.46 m³/s pour la série simulée). Ces résultats soulignent l’importance de recourir aux données observées pour le dimensionnement des ouvrages hydrauliques, les débits simulés ne reproduisant pas fidèlement l’amplitude des crues extrêmes à la station de Bafing-Makana.

3.6.3 Tableau récapitulatif

Afficher le code
# Extraction forcée quantile par quantile
get_rl <- function(fitobj, periods) {
  res <- lapply(periods, function(p) {
    val <- return.level(fitobj, return.period = p)
    ci_val <- tryCatch(
      ci(fitobj, return.period = p, type = "return.level"),
      error = function(e) matrix(c(NA, as.numeric(val), NA), nrow = 1)
    )
    as.numeric(ci_val)
  })
  df <- do.call(rbind, res)
  colnames(df) <- c("IC_inf", "Q", "IC_sup")
  as.data.frame(df)
}

q_obs <- get_rl(gumfit_obs, rperiods)
q_sim <- get_rl(gumfit_sim, rperiods)

colnames(q_obs) <- c("IC_inf_obs", "Q_obs", "IC_sup_obs")
colnames(q_sim) <- c("IC_inf_sim", "Q_sim", "IC_sup_sim")

recap <- data.frame(T = rperiods) %>%
  bind_cols(q_obs, q_sim) %>%
  mutate(
    U_obs = (IC_sup_obs - IC_inf_obs) / Q_obs,
    U_sim = (IC_sup_sim - IC_inf_sim) / Q_sim,
    Br    = (Q_sim - Q_obs) / Q_obs
  )

3.6.4 Visualisation des quantiles et intervalles de confiance

Afficher le code
recap_long <- recap %>%
  select(T, Q_obs, IC_inf_obs, IC_sup_obs, Q_sim, IC_inf_sim, IC_sup_sim) %>%
  pivot_longer(-T,
               names_to  = c(".value", "Serie"),
               names_pattern = "(.+)_(obs|sim)") %>%
  mutate(Serie = ifelse(Serie == "obs", "Observé", "Simulé"))

ggplot(recap_long, aes(x = T, y = Q, color = Serie, fill = Serie)) +
  geom_ribbon(aes(ymin = IC_inf, ymax = IC_sup), alpha = 0.15, color = NA) +
  geom_line(linewidth = 1) +
  geom_point(size = 3) +
  scale_color_manual(values = c("Observé" = "dodgerblue", "Simulé" = "tomato")) +
  scale_fill_manual(values  = c("Observé" = "dodgerblue", "Simulé" = "tomato")) +
  scale_x_log10(breaks = rperiods, labels = paste0(rperiods, " ans")) +
  labs(x = "Période de retour (échelle log)",
       y = "Débit (m³/s)", color = NULL, fill = NULL) +
  theme_minimal() +
  theme(legend.position = "top")
Figure 5: Quantiles de crue avec intervalles de confiance à 95%

La Figure 5 compare les quantiles de crue estimés à partir des données observées (bleu) et simulées (rouge) en fonction de la période de retour (échelle logarithmique, de 2 à 60 ans). Les deux courbes sont croissantes, ce qui est cohérent avec la théorie des valeurs extrêmes. Cependant, les débits estimés à partir des données observées sont systématiquement supérieurs à ceux issus des données simulées, pour toutes les périodes de retour. Cet écart s’accentue avec l’augmentation de la période de retour, atteignant environ 1000 m³/s pour une période de 60 ans. Les intervalles de confiance à 95 % des deux séries se chevauchent partiellement, suggérant que les différences ne sont pas toujours statistiquement significatives pour les courtes périodes de retour, mais le deviennent pour les événements rares. Ce résultat indique que le modèle de simulation tend à sous-estimer les débits extrêmes par rapport aux observations, ce qui constitue un biais important à considérer pour le dimensionnement des ouvrages hydrauliques.

3.6.5 Biais relatif par période de retour

Afficher le code
ggplot(recap, aes(x = factor(T), y = Br * 100, fill = Br > 0)) +
  geom_col(width = 0.5, show.legend = FALSE) +
  geom_hline(yintercept = 0, linetype = "dashed") +
  geom_text(aes(label = paste0(round(Br * 100, 1), "%"),
                vjust = ifelse(Br >= 0, -0.4, 1.3)),
            size = 3.5, fontface = "bold") +
  scale_fill_manual(values = c("TRUE" = "seagreen3", "FALSE" = "tomato")) +
  scale_x_discrete(labels = paste0(rperiods, " ans")) +
  labs(x = "Période de retour", y = "Biais relatif Br (%)") +
  theme_minimal()
Figure 6: Biais relatif Br des quantiles GR4J par rapport aux quantiles observés

Le biais relatif est négatif pour toutes les périodes de retour, confirmant que le modèle GR4J sous-estime systématiquement les quantiles de crue par rapport aux observations. Les valeurs sont de -19.7 % pour 2 ans, -20.9 % pour 10 ans, -21.2 % pour 20 ans et -21.5 % pour 50 ans. Le biais s’accentue légèrement avec la période de retour, indiquant que la sous-estimation est plus marquée pour les événements rares et extrêmes. Cette tendance est préoccupante du point de vue de la gestion des risques hydrologiques, car sous-estimer les crues rares peut conduire à un sous-dimensionnement des ouvrages hydrauliques. Ce biais systématique peut s’expliquer par les limites du modèle GR4J à reproduire fidèlement les processus générateurs des débits de pointe extrêmes, notamment en cas de saturation des sols ou d’événements de précipitations intenses non représentés dans la période de calage.

3.6.6 Incertitude normalisée par période de retour

Afficher le code
recap %>%
  select(T, U_obs, U_sim) %>%
  pivot_longer(-T, names_to = "Serie", values_to = "U") %>%
  mutate(Serie = ifelse(Serie == "U_obs", "Observé", "Simulé")) %>%
  ggplot(aes(x = T, y = U * 100, color = Serie, shape = Serie)) +
  geom_line(linewidth = 1) +
  geom_point(size = 3) +
  scale_color_manual(values = c("Observé" = "dodgerblue", "Simulé" = "tomato")) +
  scale_x_log10(breaks = rperiods, labels = paste0(rperiods, " ans")) +
  labs(x = "Période de retour (échelle log)",
       y = "U = (IC_sup − IC_inf) / Q  (%)",
       color = NULL, shape = NULL) +
  theme_minimal() +
  theme(legend.position = "top")
Figure 7: Incertitude normalisée U en fonction de la période de retour

L’incertitude normalisée U = (IC_sup − IC_inf) / Q représente la largeur relative des intervalles de confiance à 95 % rapportée au quantile estimé. Les deux courbes (observée et simulée) sont croissantes, confirmant que l’incertitude augmente avec la période de retour, ce qui est statistiquement attendu. Pour les données observées, U passe d’environ 33 % à 2 ans jusqu’à plus de 55 % à 50 ans. Les données simulées présentent une incertitude légèrement inférieure à celle des observations pour toutes les périodes de retour, les deux courbes convergeant vers des valeurs proches pour les grandes périodes. Ce résultat peut sembler paradoxal : une incertitude plus faible sur les données simulées ne signifie pas un meilleur ajustement, mais plutôt que le modèle GR4J produit des séries moins variables, sous-estimant ainsi la dispersion naturelle des extrêmes. En résumé, bien que l’incertitude soit moindre sur les données simulées, cela reflète le biais de sous-estimation déjà identifié en Figure 6, et non une meilleure représentation des crues extrêmes.

3.7 Discussion

3.7.1 Validation des hypothèses de l’EVA

Les trois tests statistiques convergent vers les mêmes conclusions pour les séries observées et simulées :

  • Indépendance (Wald-Wolfowitz et Ljung-Box) : aucune autocorrélation significative n’est détectée (p > 0.05). L’hypothèse i.i.d. est validée pour les deux séries.
  • Stationnarité (Mann-Kendall, pente de Sen) : aucune tendance monotone significative n’est identifiée. Les maxima annuels sont stationnaires sur la période 2005–2015.
  • Homogénéité (Pettitt) : aucune rupture structurelle n’est détectée. Les données proviennent d’une population statistique homogène.

Ces résultats valident collectivement les conditions nécessaires à l’application de la théorie des valeurs extrêmes (EVA).

3.7.2 Choix du modèle fréquentiel

La comparaison GEV vs Gumbel sur la série observée donne \(\Delta\)AIC = 0.61 et \(\Delta\)BIC = 1.01, tous deux inférieurs au seuil de 2. Conformément au principe de parcimonie, la loi de Gumbel (2 paramètres) est retenue. Ce choix est renforcé par la faible longueur de la série (n = 11), qui ne permet pas d’estimer le paramètre de forme \(\xi\) de la GEV avec une précision statistique suffisante.

3.7.3 Performance du modèle GR4J pour les crues extrêmes

Le modèle GR4J sous-estime systématiquement les quantiles de crue : le biais relatif \(B_r\) est négatif pour toutes les périodes de retour (−19.7 % à 2 ans, −21.5 % à 50 ans). Ce biais s’accentue avec la période de retour, ce qui est préoccupant pour le dimensionnement des ouvrages hydrauliques. Cette sous-estimation s’explique par le calage du modèle sur le comportement moyen de la série, sans optimisation ciblée sur les événements extrêmes.

3.7.4 Incertitude des estimations

L’incertitude normalisée \(U\) croît avec la période de retour pour les deux séries, atteignant plus de 55 % à 50 ans pour les observations. Les intervalles de confiance plus étroits sur les simulations ne reflètent pas une meilleure précision, mais une sous-estimation de la variabilité naturelle par le modèle GR4J. Ces incertitudes élevées, liées à la courte durée de la série (11 ans), doivent être communiquées et prises en compte dans tout usage opérationnel des quantiles estimés.


3.8 Lien de publication

Ce document est disponible en ligne à l’adresse suivante :

🔗https://moussa-ndiaye12.quarto.pub/analyse-frequentielle-bafing-makana

Pour publier sur Quarto Pub, exécuter dans le terminal :

quarto publish quarto-pub Projet_Analyse_Frequentielle_2025_2026.qmd

Un compte gratuit sur quartopub.com est nécessaire. Le lien définitif sera généré à la première publication et pourra être partagé.


3.9 Références