Tag Archives: pluie

Carte météo dynamique

Pour aller un peu plus loin par rapport au précédent billet, on peut faire une carte dynamique, pour visualiser une tempête, sur une journée. Je vais partir du fait qu’on a encore les objets du précédant billet en mémoire.

On commence par garder uniquement les données relatives a la journée qui nous intéresse,

date_sel = "2016-10-13"
date_sel_OK = paste0(substr(date_sel,9,10),"/",substr(date_sel,6,7),"/",substr(date_sel,1,4))
donnees_carte_0 = subset(data, data$date==as.POSIXct(date_sel))
horaires = sort(unique(donnees_carte_0$heure))

(mais on pourrait prendre une semaine). On recupere ensuite le contour de la France,

download.file("http://biogeo.ucdavis.edu/data/gadm2.8/rds/FRA_adm0.rds","FRA_adm0.rds")
FR0=readRDS("FRA_adm0.rds")
P1=FR0@polygons[[1]]@Polygons[[355]]@coords
P2=FR0@polygons[[1]]@Polygons[[27]]@coords

car seule la France métropolitaine nous intéressera (incluant la Corse, soit 2 gros polygones) dans l’esprit du précédant billet sur le zonier. On va ainsi definir un maillage sur lesquel on va lisser la pluviometrie,

grille = expand.grid(seq(min(donnees_carte_0$longitude),max(donnees_carte_0$longitude),length=101),seq(min(donnees_carte_0$latitude),max(donnees_carte_0$latitude),length=101))
paslong=(max(donnees_carte_0$longitude)-min(donnees_carte_0$longitude))/100
paslat=(max(donnees_carte_0$latitude)-min(donnees_carte_0$latitude))/100
f=function(i){ (point.in.polygon (grille[i, 1]+paslong/2 , grille[i, 2]+paslat/2 , P1[,1],P1[,2])>0)+(point.in.polygon (grille[i, 1]+paslong/2 , grille[i, 2]+paslat/2 , P2[,1],P2[,2])>0) }
indic=unlist(lapply(1:nrow(grille),f))
grille=grille[which(indic==1),]

Pour lisser, on utilise les k-plus proches voisins

knn=function(i,k=10){
  d=distHaversine(grille[i,1:2],donnees_carte[,
    c("longitude","latitude")], r=6378.137) 
  r=rank(d)
  ind=which(r<=k)
  weighted.mean(donnees_carte[ind,"rr3"],(1/d[ind])/sum(1/d[ind]))}

On a ensuite la fonction suivante, pour faire une carte

carto_prec<-function(){
  grille2<-grille
  grille2$rr=Vectorize(knn)(i=1:nrow(grille2))
  bk=seq(0,50,length=21)
  grille2$cuty=cut(grille2$rr,breaks=bk,labels=1:20)
  cols = rev(carto.pal(pal1 = "blue.pal", n1=20, pal2 = "white.pal", n2=1))
  plot(FR0,border=NA)
  polygon(P1)
  polygon(P2)
  points(grille2[,1]+paslong/2,grille2[,2]+paslat/2,col=cols[grille2$cuty],pch=19)
  points(donnees_carte$longitude,donnees_carte$latitude, col="black",pch=19,cex=.5)
  title(main = paste0(date_sel_OK," à ",heure_sel,"H"),
        sub = "Précipitations des 3 dernières heures",
        cex.main = 1.5,   font.main= 4,
        cex.sub = 1, font.sub = 3)
  legend(8.2, 50, legend=seq(0,50,length=5), title='en mm',
         fill=cols[seq(1,20,length=5)], cex=0.8)
}

On va ensuite utiliser 8 fichiers – car on regarde toutes les 3 heures

for (hh in horaires) {
  heure_sel<-hh
  donnees_carte <- subset(donnees_carte_0, donnees_carte_0$heure==heure_sel)
  png(paste0("CartePrec",date_sel,"_",hh,".png"))
  carto_prec()
  dev.off()
}

(mais ça peut se raffiner, avec un lissage spatio-temporel). Et on va ensuite créer notre animation en concaténant les images

frames <- image_morph(
  c(image_scale(image_read("CartePrec2016-10-13_1.png")),
image_scale(image_read("CartePrec2016-10-13_3.png")),
image_scale(image_read("CartePrec2016-10-13_6.png")),
image_scale(image_read("CartePrec2016-10-13_9.png")),
image_scale(image_read("CartePrec2016-10-13_12.png")),
image_scale(image_read("CartePrec2016-10-13_15.png")),
image_scale(image_read("CartePrec2016-10-13_18.png")),
image_scale(image_read("CartePrec2016-10-13_21.png"))), frames = 16)
frames.anim <- image_animate(frames)
image_write(frames.anim, paste0("CartePrecDay",date_sel,".gif"))

Il faut avouer que ça a de gueule… On voit clairement la tempête arriver…

Trop de probabilités tue les probabilités

Hier matin, au moment de quitter la maison, j’ai jeté un œil à la météo (car à Montréal le temps est très changeant, pas seulement d’un jour sur l’autre, comme je l’avis mentionné en arrivant en septembre, ici). En voyant les gros nuages gris dans le ciel, en me réveillant, je me suis demandé s’il fallait mettre un manteau et des bottes en caoutchouc aux enfants (pour aller l’école). Sur le site de météo, on a en effet la probabilité de pluie, i.e. de P.D.P.

Si on suppose que les probabilités sont indépendantes d’heure en heure, la probabilité qu’il va pleuvoir dans la matinée (dans les 5 prochaines heures pour faire simple, ou plus concret), va s’écrire comme le complémentaire de la probabilité qu’il va faire beau toute la matinée, autrement dit, avec des probabilités de pluie de l’ordre de 25%, par heure, la probabilité qu’il pleuve pendant les prochaines heures est de 75% environ

> 1-((1-.25))^5
[1] 0.7626953

Bref, on est loin de 25%. Essayons d’aller un peu plus loin pour mieux comprendre…
Notons http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie03.gif la variable indicatrice indiquant s’il pleut, ou pas (1 s’il pleut, et 0 sinon) à l’instant http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie04.gif. Supposons qu’il existe un processus latent sous-jacent, http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie05.gif tel que

http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie06.gif

 

A une date http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie04.gif, on se demande ici s’il va pleuvoir dans la matinée, i.e. on veut

http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie07.gifqui peut encore s’écrire

http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie08.gifou, ce qui sera pleut être plus utile ensuite

http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie09.gifAvec notre modèle latent, cette probabilité peut s’écrire

http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie10.gifc’est à dire en notant http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie13.gif la fonction de répartition (jointe) du vecteur aléatoire http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie11.gif cette probabilité s’écrit
http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie12.gifOr Wassily Hoeffding a montré qu’il était possible d’encadrer une fonction de répartition, avec les bornes suivantes: pour tout https://latex.codecogs.com/gif.latex?\boldsymbol{x}\in\mathbb{R}^d,
http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie14.gif

http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie15.gif
et
http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie16.gif
(en notant que ces bornes sont atteignables). Autrement dit, ici, la probabilité qu’il fasse beau 5 heures de suite est encadrée par la probabilité qu’il pleuve sur une heure… et 1.
Bref, on n’a pas grand chose à dire*.

Une possibilité est de supposer un modèle Gaussien pourhttp://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie05.gif. Supposer les lois marginales n’est en rien contraignant. En revanche, supposer que la dynamique sous-jacente est Gaussienne est une hypothèse très forte. Et pour faire simple, supposons même que la dynamique soit auto-régressive (à l’ordre 1), i.e.
http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie18.gifoù https://latex.codecogs.com/gif.latex?(\eta_t) est un bruit blanc, indépendant du processus latent. L’intérêt est que l’on a spécifié ainsi la structure de la matrice de variance covariance. En particulier, la matrice de corrélation du vecteur https://latex.codecogs.com/gif.latex?\boldsymbol{X}^\star est alors
http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie01.gif
On peut d’ailleurs visualiser facilement la forme de cette matrice en fonction de https://latex.codecogs.com/gif.latex?\rho,
http://freakonometrics.hypotheses.org/files/2015/12/animationcorrelationpluie.gif
Avec ce formalisme, on peut alors en déduire http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie12.gif car on connaît très bien la fonction de répartition d’un vecteur gaussien multivarié via

On peut alors étudier l’impact de http://freakonometrics.blog.f ree.fr/public/perso3/slatex.gif (qui est associée à la probabilité d’avoir de la pluie pendant une heure en moyenne) et de la corrélation http://freakonometrics.hypotheses.org/files/2015/12/correlation-pluie21.gif (qui est associée à la dynamique du processus). Pour simplifier, si on prend http://freakonometrics.hypotheses.org/files/2015/12/slatex.gif tel que la probabilité de pluie soit de l’ordre de 25%, on a la probabilité d’avoir de la pluie suivante,

> s = .25
> r = .85
> i = 1:n
> I = matrix(rep(i,each=n),n,n)
> J = matrix(rep(i,n),n,n) 
> C = r^(abs(I-J))
> 1-pmnorm(rep(qnorm(1-s),n),mean=rep(0,n),varcov=C)[1]
[1] 0.458074

i.e. en faisant une boucle sur la valeur de la corrélation

Et plus généralement si on croise le seuil (i.e. la probabilité horaire de pleuvoir) et la probabilité, on a l’abaque suivante

On pourrait toutefois objecter que l’important n’est pas forcément qu’il ne pleuve pas de la matinée, mais qu’il ne pleuve pas quand ils sont dehors, i.e. (pour simplifier), à 8 heures, midi et 16 heures (c’est à dire toutes les 4 heures). On s’intéresse alors à
http://freakonometrics.hypotheses.org/files/2015/12/pluiecorrel-31.gif
qui est toujours un vecteur Gaussien, mais avec cette fois une structure de corrélation un peu différente,
http://freakonometrics.hypotheses.org/files/2015/12/ppluie-coreel.gif
Dans ce cas, la probabilité de ne pas avoir de plus à ces trois moments de la journée est alors de la forme suivante

La corrélation joue alors un rôle relativement faible car il intervient à la puissance 4 dans la matrice d’auto-corrélation.
Dans ce cas, on notera que l’hypothèse d’indépendance n’est peut être pas absurde. Et avec une P.D.P. de 30%, sur toute la journée, on peut probablement se dire que la probabilité d’avoir de la pluie soit le matin, soit le midi, soit le soir sera de l’ordre de

> 1-(1-.3)^3
[1] 0.657

A tester !
* En fait si, on pourrait dire beaucoup de choses (et écrire une dizaine de billets) en particulier sur la borne supérieure, ici 1, dès lors que la probabilité horaire d’avoir de la pluie dépasse 20% – car la borne supérieure est

http://freakonometrics.hypotheses.org/files/2015/12/prooooobacommentaire.gif

En fait, la borne inférieur n’est pas une fonction de répartition de manière générale. Toutefois, la borne est atteignable pour une certaine structure de dépendance. Ce qui explique que par la suite, avec un modèle Gaussien, on sera relativement loin de cette borne supérieure. La borne inférieure (i.e. la borne supérieure sur les fonction de répartition) est elle atteinte dès lors que les risques sont variables sont comonotones, c’est à dire dans le cas Gaussien si la corrélation entre deux instants (et entre tous les instants) vaut 1. La petite animation sur la matrice de corrélation permet de mieux comprendre la difficulté de comprendre le cas où la corrélation rho est négative: dans le cas où http://freakonometrics.hypotheses.org/files/2015/12/rhofleche.gif1, on a une corrélation proche de 1 partout dans la matrice. En revanche, si http://freakonometrics.hypotheses.org/files/2015/12/rhofleche.gif -1, on a des corrélations proches de -1 dans la moitié (environ) des cellules de la matrice, et +1 dans l’autre moitié. La borne supérieure sur la probabilité savoir de la pluie dans matinée correspond donc à une structure plus complexe que la borne inférieure, car on ne peut pas avoir une corrélation négative forte avec tous les lags.

Des étés pluvieux en Bretagne ? une réalité statistique…

Pour compléter le précédant billet (ici) on peut se demander en quoi la Bretagne est différente des autres régions françaises… Nous avions vu ici le niveau de précipitation moyen, jour après jours pendant les mois d’été, en Bretagne. A Rennes. En revanche, à Paris on obtient la moyenne suivante,

que l’on peut comparer à Marseille,

ou encore à Strasbourg,

Sur la figure ci-dessous, on voit que la probabilité d’avoir de la pluie à Paris (au sens au moins 0.1 mm d’eau dans la journée, en trait gras bleu, au moins 2 mm d’eau dans la journée, en trait bleu) est supérieure à la probabilité d’avoir de la pluie à Rennes (respectivement en bleu clair gras, et en bleu clair fin)

On est certes très au dessus de Marseille,

mais très en dessous de Strasbourg,

Mais au delà des lois marginales, ces villes sont différentes de la Bretagne si l’on regarde les matrices de transition.

  • Transition d’un jour sur l’autre

Pour Rennes, si on regarde jour après jour, on obtient

jour 
beau
temps
pluie
jour 
beau temps
1955 612 2567
pluie
606 723 1329

ce qui donne les probabilités de transition suivantes,

jour 
beau
temps
pluie
jour 
beau temps
76,15 % 23,85 %
pluie
45,60 % 54,40 %

Pour Paris, la probabilité de transition jour après jour a la forme suivante

jour 
beau
temps
pluie
jour 
beau temps
2689 959 3648
pluie
946 1466 2412

ce qui donne les probabilités de transition suivantes,

jour 
beau
temps
pluie
jour 
beau temps
73,71 % 26,29 %
pluie
39,22 % 60,78 %

Pour Marseille, la probabilité de transition jour après jour a la forme suivante

jour 
beau
temps
pluie
jour 
beau temps
2527 375 2902
pluie
362 216 578

ce qui donne les probabilités de transition suivantes,

jour 
beau
temps
pluie
jour 
beau temps
87,08 % 12,92 %
pluie
62,63 % 37,37 %

Pour Strasbourg, la probabilité de transition jour après jour a la forme suivante

jour 
beau
temps
pluie
jour 
beau temps
31 128 159
pluie
132 1464 1596

ce qui donne les probabilités de transition suivantes,

jour 
beau
temps
pluie
jour 
beau temps
19,50 % 80,50 %
pluie
8,27 % 91,73 %
  • Transition d’une semaine sur l’autre

Si en revanche on regarde les matrices de transition semaine par semaine, on a des résultats assez différents. Une bonne semaine signifie aucun jour avec plus de 2 mm de pluie.
Pour Rennes, si on regarde semaine après semaine

jour 
beau
temps
pluie
jour 
beau temps
379 25 404
pluie
26 7 33

ce qui donne les probabilités de transition suivantes,

jour 
beau
temps
pluie
jour 
beau temps
93,81 % 6,19 %
pluie
78,79 % 21,21 %

Pour Paris, la probabilité de transition semaine après semaine a la forme suivante

jour 
beau
temps
pluie
jour 
beau temps
576 46 622
pluie
53 4 57

ce qui donne les probabilités de transition suivantes,

jour 
beau
temps
pluie
jour 
beau temps
92,60 % 7,40 %
pluie
92,98 % 7,02 %

Pour Marseille, la probabilité de transition semaine après semaine a la forme suivante

jour 
beau
temps
pluie
jour 
beau temps
274 59 333
pluie
47 9 56

ce qui donne les probabilités de transition suivantes,

jour 
beau
temps
pluie
jour 
beau temps
82,28 % 17,72 %
pluie
83,93 % 16,07 %

Pour Strasbourg, la probabilité de transition semaine après semaine a la forme suivante

jour 
beau
temps
pluie
jour 
beau temps
1494 614 2018
pluie
613 939 1552

ce qui donne les probabilités de transition suivantes,

jour 
beau
temps
pluie
jour 
beau temps
70,87 % 29,13 %
pluie
39,50 % 60,50 %

Les tests du chi deux, d’indépendance d’une semaine sur l’autre donnent

  • à Rennes, une statistique du chi-deux de 8,054, soit une p-value de 0,45%
  • à Paris, une statistique du chi-deux de 0,025, soit une p-value de 87,26%
  • à Marseille, une statistique du chi-deux de 0,012, soit une p-value de 91,24%
  • à Strasbourg, une statistique du chi-deux de 0,7649, soit une p-value de 38,18%

autrement dit l’hypothèse d’indépendance est acceptée partout, sauf à Rennes….

  • Moralité ?

De manière assez paradoxale, on prétend que la Bretagne a un temps changeant, et pour reprendre le titre du précédant billet, effectivement, en Bretagne, il peut faire beau plusieurs fois par jour. Mais sur le long terme, d’une semaine sur l’autre, le temps est au contraire très corrélé, contrairement aux autres régions. A Paris, Marseille ou Strasbourg, qu’il ait fait beau ou qu’il ait plus la semaine précédente, cela n’apporte aucune information sur la probabilité d’avoir de la pluie la semaine où l’on vient en vacances…. Mais pas en Bretagne: manifestement, il existe donc des étés pourris, où il pourra pleuvoir toutes les semaines, et des étés superbes où il ne pleut jamais….

En Bretagne, il fait beau plusieurs fois par jour

bon, et à l’occasion il peut pleuvoir un peu…. Il peut donc être intéressant pour planifier un peu ses vacances de calculer la probabilité d’avoir de la pluie.

Les calculs ont été fait sur les données de pluviométrie à Rennes, en ligne sur le site eca&d, ici (données de qualité gratuites).

  • Probabilité d’avoir de la pluie, pendant les vacances d’été

Considérons ici la série du niveau de précipitation par jour, en par 0,1 mm,

et la probabilité d’avoir de la pluie dans la journée (régression logistique),

Bref, il peut pleuvoir à Rennes l’été. Mais ça n’aide pas vraiment pour planifier ses vacances. Car si ça se trouve, il y a des étés sans pluie, et des étés où il pleut sans cesse.

  • Dynamique et matrice de transition (par jour et par semaine)

Autrement dit, au lieu de regarder les lois marginales (comme la probabilité d’avoir de la pluie dans la journée), on peut s’intéresser à la dynamique de la série, modélisée sous la forme d’une chaîne de Markov. Si on regarde jour après jour, avec les 30 mois de juillet et août entre 1980 et 2009,

jour 
beau
temps
pluie
jour 
beau temps
871 298 1169
pluie
292 335 627

ce qui donne les probabilités de transition suivantes,

jour 
beau
temps
pluie
jour 
beau temps
75,51 % 25,49 %
pluie
46,57 % 53, 43 %

autrement, s’il fait beau aujourd’hui, on a 3 chances sur 4 d’avoir du beau temps demain.
Si on regarde semaine après semaine, où l’intérêt sont les semaines sans pluie

,

semaine 
beau
temps
pluie
semaine 
beau temps
13 26 39
pluie
23 140 163

avec là aussi les probabilités de transition suivantes,

semaine 
beau
temps
pluie
semaine 
beau temps
33,33 % 66,67 %
pluie
14,11 % 85,89 %

Si on regarde semaine après semaine, où l’intérêt sont les semaines avec six jours sans pluie (on s’autorise une journée de pluie),

semaine 
beau
temps
pluie
semaine 
beau temps
36 36 72
pluie
30 100 130

ce qui donne les probabilités de transition suivantes,

semaine 
beau
temps
pluie
semaine 
beau temps
50,00 % 50,00 %
pluie
23,08 % 76,92 %

Bon, maintenant, si on pense qu’avoir 2 mm de pluie dans la journée, c’est juste un peu d’humidité dans l’air, les matrices de transitions sont sensiblement différentes, dans le cas où on s’autorise une journée dans la semaine avec un peu d’humidité pour parler de beau temps,

semaine 
beau
temps
pluie
semaine 
beau temps
106 36 142
pluie
31 29 60

ce qui donne les probabilités de transition suivantes,

semaine 
beau
temps
pluie
semaine 
beau temps
75,65 % 25,35 %
pluie
51,67 % 48,33 %

Autrement dit, on retrouve une matrice proche de celle que nous avions sur les données journalière: s’il a fait beau la semaine avant de venir en Bretagne, on a 3 chances sur 4 d’avoir du beau temps. En revanche, s’il a fait mauvais, on a une chance sur deux d’avoir beau temps la semaine suivante.
Si notre définition de pluie est encore plus laxiste (il faut qu’il y ait eu un déluge une journée dans la semaine, à savoir plus de 2 cm d’eau dans la journée), alors cette fois, on obtient,

semaine 
beau
temps
pluie
semaine 
beau temps
171 12 183
pluie
14 5 130

ce qui donne les probabilités de transition suivantes,

semaine 
beau
temps
pluie
semaine 
beau temps
93,44 % 6,56 %
pluie
73,68 % 26,32 %

Autrement dit, s’il y a eu au moins une très mauvaise journée la semaine passée, on a 1 chance sur 4 d’en avoir également une la semaine suivante. En revanche, s’il a fait beau tout le temps, on a presque 95% de chances d’avoir du beau temps la semaine suivante. Moralité, quelle que soit la définition retenue pour définir le beau temps, le temps à Rennes n’est pas indépendant d’une semaine sur l’autre: il y a manifestement des étés pluvieux, et d’autre non.

Quand les assureurs souhaiteraient faire la pluie et le beau temps

Damned, je me suis fais devancé par un très très beau billet d’Anne (ici) sur l’assurance proposée par AXA et AON. Ca m’apprendra à ne plus lire régulièrement Le Monde

Tout comme Anne, je suis un peu agacé par le nom donné sur le site d’AON: un assureur ne peut pas garantir la pluie et le beau temps, de même qu’il ne peut pas garantir que vous ne tomberez pas malade ou que vous n’aurez pas d’accident de voiture dans l’année ! Ou alors c’est autre chose que de l’assurance…

Je suis également un peu sceptique car ces risques ne sont pas vraiment indépendants, surtout au niveau local (dans un même département, il y a des chances pour que tout le monde soit sinistré la même semaine). Peut être qu’au niveau national, il existe des dipôles climatiques qui font que s’il pleut dans un département, il y a de très fortes chances pour qu’il ne pleuve pas dans un autre. C’était une étude qu’on souhaitait mener avec des collègues de Paris 6, et nous n’avions riens trouvé sur le sujet. Mais les gens d’AXA et de Metnext savent ce qu’ils font, je pense… Car il faut reconnaître que les garanties (ici) excluent beaucoup de choses si on regarde en détails le contrat, en particulier quand on lit qu’il faut “3 heures consécutives” de pluie, “entre 8 heures et 20 heures“…etc.
En tous les cas AON a l’honnêteté d’annoncer clairement la couleur sur son site (ici). Tout d’abord avec de joli petit logo que j’ai reproduit ci dessous, avec cette superbe accroche (évoquée en détails ici) cette garantie est, pour les voyagistes, “une source de revenus complémentaires“…
Sinon il faut reconnaître également que les assureurs offraient déjà ce genre de garanties, mais seulement dans les grands évènements, comme des championnats du monde de football, des tournois de tennis, ou des concerts de grosses stars….pour la première fois, la garantie n’est plus pour Michael Jackson qui souhaiterait remplir des stades, mais pour Robert et Raymonde qui voudraient faire du camping au sec….