Puis nous trouvons les modèles les plus intéressants d'une manière
graphique en dessinant le Cp versus le nombre de paramètres du modèle.
Nous conservons les modèles qui ont une valeur Cp petite et qui sont proches
de la droite y=x.
On peut construire le graphique suivant : La partie en haut à droite est un agrandissement
des modèles ayant une valeur Cp plus petite que 20. Pour produire ce
dessin, il faut utiliser; la commande split.screen()
(voir chapitre Quelques paramètres graphiques ).
Nous constatons clairement que les températures en Mars et en Avril
sont les deux variables les plus importantes. Si nous voulons une troisième
variable, nous
devrions prendre soit les précipitations
en Février soit les températures dans ce même mois.
Nous avons effectué les mêmes procédures pour
les 7 autres variables. Le tableau suivant contient pour chacune des
8 variables les meilleures régressions (signifiant plus petite valeur Cp) pour deux
et trois régresseurs :
On remarque que ce sont surtout les températures
qui influencent les phénomènes et assez rarement les
précipitations. En plus, nous voyons clairement que les mois
de Mars, Avril et Février sont déterminants. Pour mieux discerner
ces dépendances, on peut representer à l'aide de ``scatterplot'' nos
8 variables versus les différentes températures, les points
représentant des années. Nous ajoutons un
lissage par la méthode `` LOESS'' (en utilisant la fonction S-PLUS
scatter.smooth()) pour visualiser plus clairement la forme du nuage des
points. Référez-vous au chapitre 8 du ``White Book'' pour une
description plus détaillée de scatter.smooth() et loess().
Généralement, la tendance est que, plus la température moyenne est haute,
plus le phénomène se passe tôt dans l'année; c'est en fait ce à quoi
il fallait s'attendre.
Or, on voit très bien que cette tendance n'est pas forcément linéaire;
la courbure de certaines courbes de lissage est évidente.
Il est maintenant important d'estimer la variabilité du lissage. La fonction
loess() incorpore une option qui calcule et dessine des intervalles
de confiance pour la courbe estimée. Nous allons présenter une
autre approche, celle du ``bootstrap''. L'idée est de rééchantillonner
les résidus d'un modèle donné, de reconstruire une nouvelle variable
dépendante et de refaire le lissage avec loess(). La fonction
suivante, appelée loess.boot, montre une façon de
programmer ceci dans S-PLUS.
loess.boot <- function(x, y, B = 50, var.nom) { x.nom <- deparse(substitute(x)) y.nom <- deparse(substitute(y)) loess.original <- loess(y ~ x) plot(loess.original, ylim = range(y), xlab = x.nom, ylab = y.nom, main = var.nom) points(x, y) residus <- residuals(loess.original) for(i in 1:B) { res.bootstrap <- sample(residus, replace = T) y.bootstrap <- res.bootstrap + fitted(loess.original) par(new = T) plot(loess(y.bootstrap ~ x), xaxt = "n", yaxt = "n", ylim = range(y), xlab = x.nom, ylab = y.nom, main = var.nom) } invisible(par(new = F)) }
T.JANVIER T.FEVRIER T.MARS T.AVRIL T.MAI P.JANVIER P.FEVRIER P.MARS P.AVRIL P.MAI T.JANVIER 1.00 0.06 0.21 -0.16 0.09 0.23 -0.04 -0.14 -0.01 0.17 T.FEVRIER 0.06 1.00 0.22 0.12 0.07 -0.15 0.57 -0.14 -0.12 -0.22 T.MARS 0.21 0.22 1.00 -0.03 0.02 -0.29 0.08 -0.21 0.01 -0.12 T.AVRIL -0.16 0.12 -0.03 1.00 -0.05 -0.05 -0.21 -0.02 -0.25 0.05 T.MAI 0.09 0.07 0.02 -0.05 1.00 -0.17 -0.02 -0.04 0.18 -0.15 P.JANVIER 0.23 -0.15 -0.29 -0.05 -0.17 1.00 0.14 0.12 0.04 0.22 P.FEVRIER -0.04 0.57 0.08 -0.21 -0.02 0.14 1.00 -0.25 0.06 -0.12 P.MARS -0.14 -0.14 -0.21 -0.02 -0.04 0.12 -0.25 1.00 0.10 -0.01 P.AVRIL -0.01 -0.12 0.01 -0.25 0.18 0.04 0.06 0.10 1.00 -0.10 P.MAI 0.17 -0.22 -0.12 0.05 -0.15 0.22 -0.12 -0.01 -0.10 1.00
Prenons le modèle avec X4, la Pleine floraison de l'Anémone Sylvie
et la température en Avril.
On peut représenter les résidus de différentes manières (qqnorm, acf ...)
Ces graphiques ne revèlent
rien de particulier.
Les autocorrélations estimées ne sont pas significatives.
Nous avons mentionné que la fonction loess() permet de calculer et
de visualiser des intervalles de confiance approximatifs de la courbe ajustée. Vous pourrez alors
comparer ces intervalles (avec seuil de confiance 0.95) (La commande est la suivante: scatter.smooth(X4 ~
T.AVRIL, confidence=20,
coverage=0.95))
avec la représentation de la variabilité obtenue par le ``bootstrap''.
Vous constaterez que les deux représentations sont très similaires.