Dernière modification

9 octobre 2026

STT-4300 — Régression II

Labo 3

🗓️Date25 mars 2026

📘SujetModèles additifs généralisés (GAM)

Objectifs

  • Ajuster un modèle additif avec la librairie mgcv et interpréter les effets lissés de chaque variable.
  • Comprendre le rôle du paramètre de lissage et des degrés de liberté effectifs dans le compromis biais-variance.
  • Vérifier l’hypothèse d’additivité et étendre les GAM au cas d’une réponse non gaussienne (GAM logistique).

Mise en contexte

On reprend le jeu de données qualite_air (télécharger) du labo 2, mais sur l’année entière : les mesures horaires d’ozone de 2025 à la station de Longueuil, soit environ 8 700 observations. La réponse \(Y\) est la concentration d’ozone (O3) et il y a deux variables explicatives, l’heure de la journée (heure) et le jour de l’année (jour, de 1 à 365). Pour le GAM logistique, on utilisera le jeu de données arbres (télécharger) du labo 1.

library(mgcv)
air <- read.csv("qualite_air.csv", fileEncoding = "UTF-8-BOM")
air$heure <- as.integer(substr(air$Date_Heure, 12, 13))
air$jour  <- as.integer(format(as.Date(substr(air$Date_Heure, 1, 10)), "%j"))
longueuil <- subset(air, Station == "06600 - Longueuil" & !is.na(O3))

Consignes

  1. Ajuster le modèle additif mod1 <- gam(O3 ~ s(heure) + s(jour), data = longueuil). Afficher les effets partiels estimés (plot(mod1, pages = 1)) et commenter leur forme : sont-ils linéaires? Que représente chacun des deux cycles? Justifient-ils l’usage d’un GAM plutôt que d’un modèle linéaire?
  2. Examiner summary(mod1) : rapporter les degrés de liberté effectifs de chaque terme lissé et la déviance expliquée. Tester \(H_0 : f_j \equiv 0\) pour chacune des deux variables. L’un des deux termes utilise presque tous ses degrés de liberté disponibles : lequel, et qu’est-ce que cela suggère?
  3. Comparer le modèle additif à un modèle linéaire usuel (lm(O3 ~ heure + jour)) et à un modèle polynomial (par exemple degré 5 pour chaque variable) à l’aide de l’AIC et d’une estimation de l’erreur de prédiction par validation croisée. Réfléchir à ce que vaut une validation croisée par blocs tirés au hasard quand les observations sont des heures consécutives.
  4. Faire varier artificiellement le paramètre de lissage du terme s(jour) (argument sp, en donnant au terme une base plus riche avec k = 30) pour illustrer l’effet de \(\lambda \to 0\) et \(\lambda \to \infty\) sur la courbe ajustée. Que choisit le GCV avec cette base plus riche, et pourquoi?
  5. Le modèle additif suppose que le cycle journalier a la même forme toute l’année. Ajuster une surface te(heure, jour), puis un modèle avec effets principaux et interaction pure, s(heure) + s(jour) + ti(heure, jour). L’hypothèse d’additivité tient-elle? Discuter de ce que l’interaction apporte, et de ce qu’elle coûte.
  6. GAM logistique. Sur arbres, poser \(Y = 1\) si l’arbre est dans la strate inférieure du couvert (canopy_stratum égal à Intermédiaire ou Opprimé) et ajuster gam(Y ~ s(diameter_cm) + espece, family = binomial). Représenter la probabilité ajustée en fonction du diamètre et comparer à une régression logistique usuelle. Que valent les degrés de liberté effectifs, et qu’en conclure?

Matériel