Climate change assessement with R

Transcription

Climate change assessement with R
Université de Caen Normandie
1
30 janvier 2017
Dpt. Mathématiques et Informatique
Evolution de la température en France
Sommaire
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.1
Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Description . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Les stations météorologiques . . . . . . . . . . . . . . . .
1.2.2 Les données journalières . . . . . . . . . . . . . . . . . . .
1.2.3 Téléchargement . . . . . . . . . . . . . . . . . . . . . . . .
Environnement de travail . . . . . . . . . . . . . . . . . . .
Préparation des données . . . . . . . . . . . . . . . . . . .
1.4.1 Données cartographiques . . . . . . . . . . . . . . . . . .
1.4.2 Données des stations météos . . . . . . . . . . . . . . . .
1.4.3 Données de températures . . . . . . . . . . . . . . . . . .
Etude de l’évolution des températures de la Hague . . .
1.5.1 Statistiques descriptives . . . . . . . . . . . . . . . . . . .
1.5.2 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . .
Evolution des températures de toute les stations . . . .
1.6.1 Statistiques descriptives . . . . . . . . . . . . . . . . . . .
1.6.2 Représentation cartographique de l’hétérogénéité spatiale
1.6.3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . .
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . .
. . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
. .
. . .
. . .
. . .
. .
. .
. . .
. . .
. . .
. .
. . .
. . .
. .
. . .
. . .
. . .
. .
1
1
1
2
2
2
2
2
3
5
5
6
7
9
9
11
12
12
Objectifs
Est ce que la température en France augmente ?
1.2
Description
On va utiliser dans cette séance un jeu de données des températures mesurées dans plusieurs stations météorologiques
française. Elles ont été extraites du site European Climate Assessment & Dataset qui propose des données climatiques précises
Européenne. De nombreuses équipes de recherche ont été mises à contributions, par exemple les données issues de la pointe
de la Hague ont été mises en forme par Philipe Dandin du Centre National de recherches météorologiques situé à Toulouse.
Ces données ont été étudiées dans un article du Pr. Klein [Klein Tank and Coauthors(2002)].
1.2.1
Les stations météorologiques
Le fichier source.txt décrit le contenu du fichier journalier de températures ainsi que les stations météorologiques.
1
2
3
4
5
6
7
8
9
10
11
12
nom
STAID
SOUID
SOUNAME
CN
LAT
LON
HGHT
ELEI
BEGIN
END
PARID
PARNAME
type
quanti
quanti
quali
quali
quali
quali
quanti
quali
quanti
quanti
quanti
quali
label
Station identifier
Source identifier
Source name
Country code (ISO3116 country codes)
Latitude in degrees:minutes:seconds (+: North, -: South)
Longitude in degrees:minutes:seconds (+: East, -: West)
Station elevation in meters
Element identifier (see website at Daily Data > Data dictionary > Elements)
Begin date YYYYMMDD
End date YYYYMMDD
Participant identifier
Participant name
modalites
Table 1: Catalogue de la table source
http://www.math.unicaen.fr/~kauffmann/cours
1
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
1.2.2
30 janvier 2017
Dpt. Mathématiques et Informatique
Les données journalières
Les données de température de stations météorologiques française disponibles ont été extraites. Ces fichiers sont au format
csv, leurs noms sont de la forme TG_ID.txt. Le champs TG indique que ce fichier contient des données de températures, ID
permet d’identifier la station météorologique.
Ligne
1
2
3
4
5
6
STAID
793
793
793
793
793
793
SOUID
106768
106768
106768
106768
106768
106768
DATE
1962-01-01
1962-01-02
1962-01-03
1962-01-04
1962-01-05
1962-01-06
TG
20
41
51
60
61
68
Q TG
0
0
0
0
0
0
Table 2 – Premières lignes de la table X
1
2
3
4
5
nom
STAID
SOUID
DATE
TG
Q TG
type
quanti
quanti
label
identifiant de la station météorologique
quanti
quali
température moyenne (dixième de degré)
Contrôle de qualité
modalités
0=valide ; 1=suspecte ;9=manquant
Table 3: Catalogue de la table X
1.2.3
Téléchargement
Les données sont disponibles au format
ECAD sur le site European Climate Assessment & Dataset
La Hague les données de température de station météorologique de la hague sont disponibles au format RData
http://www.math.unicaen.fr/~kauffmann/data/la-hague.RData
France l’extraction des données de température (non-blended-mean) sont disponibles au format zip
http://www.math.unicaen.fr/~kauffmann/data/temperature-ECAD.zip
Références
[Klein Tank and Coauthors(2002)] A.M.G. Klein Tank and Coauthors. Daily dataset of 20th-century surface air temperature
and precipitation series for the european climate assessment. Int. J. of Climatol., 22:1441–1453, 2002. 1.2
1.3
Environnement de travail
Créer un répertoire de travail climat, puis un sous répertoire data. Ouvrez rstudio, et créer un nouveau script dans votre
répertoire de travail. Définissez votre répertoire de travail dans R grâce aux commandes suivantes qu’il faudra modifier.
setwd('~/labo-p/tex/stat/acp/climat')
getwd()
Installer et charger les librairies sp rgdal et raster.
1.4
1.4.1
Préparation des données
Données cartographiques
1. Téléchargez depuis le site de l’IGN GEOFLA© Communes France Métropolitaine. Puis décompressez ces données dans
un répertoire nommé GEOFLA de votre répertoire data. Le contenu du sous répertoire GEOFLA/DEPARTEMENTS est
http://www.math.unicaen.fr/~kauffmann/cours
2
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
30 janvier 2017
rw-r--r-- 1 francois users
784 6 déc.
-rw-r--r-- 1 francois users 14977 6 déc.
-rw-r--r-- 1 francois users 14977 6 déc.
-rw-r--r-- 1 francois users 12800 6 déc.
-rwxr-xr-x 1 francois users
449 6 déc.
-rw-r--r-- 1 francois users 613532 6 déc.
-rw-r--r-- 1 francois users
868 6 déc.
-rw-r--r-- 1 francois users
5473 6 déc.
-rw-r--r-- 1 francois users 11647 6 déc.
-rwxr-xr-x 1 francois users
449 6 déc.
-rw-r--r-- 1 francois users 371220 6 déc.
-rw-r--r-- 1 francois users
2740 6 déc.
Dpt. Mathématiques et Informatique
2011 DEPARTEMENT.AVL
2011 DEPARTEMENT.dbf
2011 DEPARTEMENT.DBF
2011 DEPARTEMENT.LYR
2011 DEPARTEMENT.PRJ
2011 DEPARTEMENT.SHP
2011 DEPARTEMENT.SHX
2011 LIMITE_DEPARTEMENT.AVL
2011 LIMITE_DEPARTEMENT.DBF
2011 LIMITE_DEPARTEMENT.PRJ
2011 LIMITE_DEPARTEMENT.SHP
2011 LIMITE_DEPARTEMENT.SHX
2. Installer puis charger les librairies rgdal et sp
3. Charger les cartes des départements français au format vectoriel.
# changer le nom du répertoire
dsn="/home/francois/labo-p/tex/stat/data-carto/ign/GEOFLA_1-1_SHP_LAMB93_FR-ED111/DEPARTEMENTS"
france=readOGR (dsn, layer="DEPARTEMENT", stringsAsFactors=FALSE)
proj4string (france) # affiche syst pro
france=spTransform(france,CRS("+proj=longlat +ellps=WGS84"))
4. Afficher la carte de france
plot(france)
Figure 1 – Carte des départements français
1.4.2
Données des stations météos
1. Télécharger le fichier des températures
http://www.math.unicaen.fr/~kauffmann/data/temperature-ECAD.zip et décompresser ce fichier dans votre répertoire data. Les fichiers de températures compressés devraient se trouver dans le répertoire data/non-blended-mean.
2. Dans cette question on lit et on adapte la table source contenant la caractérisation des stations météorologiques.
(a) Lire la table
source=read.table(file="data/non-blended-mean/sources.txt",
skip=23,
# lecture à partir de la 24-ème ligne
header=TRUE,
# nom des colonnes en 24-ème ligne
sep=",",
# séparateur de champs ,
stringsAsFactors=FALSE # ne pas transformer en facteurs
)
(b) Les champs latitudes et longitudes sont exprimés en degrés, minutes, secondes appelée degrés sexagésimaux (DMS).
Il faux convertir cette unité DMS en degrés décimaux DD en utilisant les conversions suivantes :
http://www.math.unicaen.fr/~kauffmann/cours
3
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
30 janvier 2017
Dpt. Mathématiques et Informatique
— soixantes minutes valent un degré
— soixante secondes valent une minute.
Par exemple la longitude de la station de la pointe de la hague vaut 1 degré et 56 minutes et 24 secondes ouest soit
24
en décimal − 1 + 56
60 + 602 . Il faut donc d’abord extraire les champs degrés, minutes et secondes, puis convertir
ces champs en décimal.
i. On veut découper la chaı̂ne de caractère ”-001:56:24” pour obtenir, le signe ( ouest/est), le nombre de degrés,minutes et secondes de cette longitude puis convertir cette longitude en nombre décimal de degrés ?. Que
font les instructions suivantes ?
x='-001:56:24'
signe=ifelse(gsub('[0-9\\:]','',x)=="-",-1,+1)
tmp=strsplit(x,split=':')
tmp=c(as.numeric(tmp[[1]][1]),as.numeric(tmp[[1]][2]),as.numeric(tmp[[1]][3]))
tmp=as.numeric(unlist(tmp))
(longitude=sign(tmp[1])*(abs(tmp[1])+tmp[2]/60+tmp[3]/60^2))
# -1.94
ii. Construire une fonction DMS2DD
DMS2DD=function(x) {
return(y)
}
DMS2DD('-001:56:24')
DMS2DD('+49:43:36')
# -1.94
# 49.72667
iii. Depuis https://maps.google.com/, positionner la carte à l’adresse suivante pointe de la Hague France.
A l’aide du bouton droit de la souris effectuer l’action What’s here?, vérifier que la station météo est bien
positionnée à proximité.
iv. Ajouter à la table source deux colonnes lon, lat qui seront la longitude et la latitude exprimés en nombre
décimal de degré grâce aux instructions
source$lon=mapply(FUN=DMS2DD,x=source$LON)
source$lat=mapply(FUN=DMS2DD,x=source$LAT)
(c) Positionner alors les stations météos sur la carte de france.
plot(france)
points(source$lon,source$lat,col="red",pch=20)
Figure 2 – Stations météorologiques
3. les champs SOUNAME se terminent par des caractères blancs, dans cette question on veut supprimer ces blancs à la fin
des chaı̂nes de caractères.
> source$SOUNAME[34]
[1] "PTE DE LA HAGUE
http://www.math.unicaen.fr/~kauffmann/cours
"
4
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
30 janvier 2017
Dpt. Mathématiques et Informatique
L’expression régulière ’ +$’ veut dire une chaine de caractère constituée d’un ou plus de caractères blancs et terminant
la chaine étudiée. Dans les chaines SOUNAME on remplace toutes ces chaines par la chaine vide, on supprime donc les
blancs à la fin de SOUNAME.
source$SOUNAME=gsub(' +$','',source$SOUNAME)
4. Dans cette question, on va déterminer les départements des stations à l’aide de la carte de france.
# création d'un objet spatial correspondant aux stations
adresses=SpatialPointsDataFrame(
source[,c('lon','lat')],
data=source[,1:11])
projection(adresses)=projection(france) # systeme de projection commun
res=over(adresses,france)
# superposition
source=cbind(as.data.frame(adresses),res[,c('ID_GEOFLA','CODE_DEPT','NOM_DEPT')])
Quelles sont les données manquantes ?
source[is.na(source$ID_GEOFLA),]
Corriger manuellement toutes les données manquantes des variables ID_GEOFLA,CODE_DEPT,NOM_DEPT pour les stations
de la pointe de la Hague dans le département de la MANCHE et de l’ile de Groix dans le département du MORBIHAN
et peut être la station du cap de la Hève.
france[france$NOM_DEPT %in% c("MANCHE","MORBIHAN"),] #$
1.4.3
Données de températures
Dans cette question, on construit la table contenant les données de températures pour toutes les stations météorologiques.
On modifie
— Les températures exprimées en dixième de degré
— On transforme les dates en chaines de caractères en Date de R.
1. Dans cette question on lit les températures d’une station
fichier="data/non-blended-mean/TG_SOUID100838.txt.gz"
X=read.table(fichier,header=TRUE,skip=20,sep=",",stringsAsFactors=FALSE)
X$DATE=as.POSIXct(strptime(X$DATE,format="%Y%m%d"))
X$TG=X$TG/10
2. A l’aide de la fonction list.files trouver tous les noms de fichiers de températures contenus dans le répertoite
"data/non-blended-mean".
3. A l’aide d’une boucle sur les noms des fichiers , de la fonction rbind qui concaténe des tables l’une en dessous de
l’autre, calculez la table Y des températures qui aura plus d’un million de lignes et cinq variables.
Y=c()
for ( fichier in fichiers) {
}
4. Dans cette question, on va ajouter à la table Y les colonnes month qualitative indiquant le mois, modifier la colonne
STAID en remplaçant l’identifiant par le nom de la station, puis ajouter une colonne t numérique indiquant le temps au
début du mois exprimée en années.
Y$year=as.numeric(format(Y$DATE,"%Y"))
Y$month=format(Y$DATE,"%b")
Y$month=factor(Y$mont,levels=unique(Y$month)) # unique() les mois sont bien ordonnée
STAID=unique(source[,c('STAID','SOUNAME','lon','lat')]) # 3x RENNES,STRASBOURG,MONT-AIGUAL
Y$STAID=factor(Y$STAID,levels=as.numeric(STAID$STAID),labels=STAID$SOUNAME)
Y$t=Y$year+(as.numeric(Y$month)-1)/12
1.5
Etude de l’évolution des températures de la Hague
Charger les tables Y et source résultats de l’étape de préparation des données contenues dans le fichier binaire en suivant
le lien
http://www.math.unicaen.fr/~kauffmann/data/temperature-ECAD.RData.
http://www.math.unicaen.fr/~kauffmann/cours
5
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
1.5.1
30 janvier 2017
Dpt. Mathématiques et Informatique
Statistiques descriptives
1. Définir le vecteur logique des lignes de la table Y correspondant au critères
— La station est celle de la pointe de la Hague
— Les mesures ont été faites dans les années entre 1962 et 2004 comprises, on pourra utiliser la commande %in%.
— La qualité des mesures est valide.
−5
0
5
TG
10
15
20
2. Tracez alors l’évolution des températures en fonction du temps pour la sélection précédente.
1970
1980
1990
2000
t
Figure 3 – Evolutions des températures de la station de la Hague
Quelles sont les 3 journées les plus chaudes, les 3 journées les plus froides ?. On pourra utiliser la fonction order.
TG
-6.8
-4.3
-4.2
22.8
23.0
23.2
DATE
1987-01-12
1963-02-02
1987-01-13
2003-08-09
2003-08-10
1996-08-18
Table 4 – Temperatures extrèmes
3. Calculer alors les moyennes des températures par mois et années pour la sélection précédente. Puis tracer l’évolution
des températures mesurées à la station de La Hague au mois de juillet.
http://www.math.unicaen.fr/~kauffmann/cours
6
{didier.trotoux,francois.kauffmann}@unicaen.fr
30 janvier 2017
Dpt. Mathématiques et Informatique
15.0
15.5
16.0
TG
16.5
17.0
17.5
Université de Caen Normandie
1970
1980
1990
2000
year
Figure 4 – Evolutions des températures moyennes en juillet de la station de la Hague
1.5.2
Modélisation
Dans cette partie on étudie plusieurs modèle linéaire permettant de modéliser la moyenne des températures en fonction
de la variable quantitative year. Le modèle de la température à l’année x est défini par
les effets fixes comment modélise t-on l’impact de l’année. Ces effets fixes dépendent linéairement de paramètres inconnus,
traditionnellement nommés β. Si on considère le modèle constant
R
→ R
z:
annee 7−→ 1
z(x)′ β0 = β0
aléas A l’année x, T G suit une loi normale de moyenne µ(x) et de variance constante σ 2 .
lien c’est le lien entre la moyenne de la variable aléatoire µ(x) et les effets fixes. Ici c’est l’identité µ(x) = z(x)′ β0 .
Une autre hypothèse concerne le modèle aléatoire de l’ensemble des mesures, ou l’échanilllon : l’indépendance de tous les
modèles T Gx1 , · · · , T Gxn si la température est observée pendant n années.
1. On veut utiliser la modélisation pour prédire la température moyenne en juillet 2020 et donner un intervalle de confiance
de niveau 95% des températures moyennes en juillet 2020. Pour ceci on va ajouter une ligne à la table d’étude avec
comme année la valeur 2020 et la valeur de la température NA.
years=1962:2004
subset=(Y$STAID=="PTE DE LA HAGUE")&(Y$year %in%years)&(Y$Q_TG==0)
X=aggregate(TG~year,data=Y[subset&Y$month=="juil.",],FUN=mean)
X=rbind(X,c(year=2020,TG=NA))
2. On étudie le modèle linéaire ayant les effets fixes suivants
m=lm(TG~1,data=X)
> summary(m)
Call:
lm(formula = TG ~ 1, data = X)
Residuals:
Min
1Q
Median
-1.58432 -0.53110 -0.01336
3Q
0.37858
Max
1.63503
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 16.2295
0.1192
136.1
<2e-16 ***
http://www.math.unicaen.fr/~kauffmann/cours
7
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
--Signif. codes:
30 janvier 2017
Dpt. Mathématiques et Informatique
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.7819 on 42 degrees of freedom
(1 observation deleted due to missingness)
d ainsi qu’un intervalle de
Les instructions suivantes permettent de tracer les observations, la moyenne estimée µ(x),
confiance pour une nouvelle observation.
14
15
16
TG
17
18
19
X=cbind(X[,setdiff(names(X),c('fit','lwr','upr'))],predict(m,newdata=X,interval="prediction"))
plot(TG~year,data=X,type="n")
polygon(c(X$year,rev(X$year)),c(X$lwr,rev(X$upr)),col="gray")
lines(fit~year,data=X,col="red",lwd=2)
lines(TG~year,data=X,col="blue",type="l")
1960
1970
1980
1990
2000
2010
2020
year
Figure 5 – Modèle constant
Il faut maintenant vérifier que les hypothèses mathématiques sont en adéquation avec les observations.
E(T Gx ) = z(x)′ β Est ce que la moyenne prédite z(x)′ βb passe bien au milieu du nuage de points des observations.
var(T gx ) = σ 2 , il faut vérifier que l’épaisseur du nuage de points autour de la moyenne prédite est d’épaisseur
constante.
T G est normale une possibilité empirique est d’étudier l’histogramme des résidus T Gx − z(x)′ β et de vérifier que ces
résidus peuvent être approximés par une loi gaussienne.
independance Est ce que les observations sont indépendantes, il faut vérifier que plusieurs observations consécutives
ne peuvent pas être du même côté de la moyenne prédite.
E(T Gx ) = z(x)′ β Ici on voit que pour les années les plus récentes le nuage de point semble ne pas être centré autour
de la moyenne prédite.
var(T gx ) = σ 2 L’épaisseur du nuage semble être approximativement constante.
T G est normale On étudie ici si la répartition empirique des résidus différences entre les observations et les moyennes
prédites peuvent être approximées par une densité gaussienne.
hist(X$TG-X$fit,freq=FALSE)
x=seq(from=-3,to=3,by=0.01)
lines(x,
dnorm(x,
mean=mean(X$TG-X$fit,na.rm=TRUE),
sd=sd(X$TG-X$fit,na.rm=TRUE)),
lwd=2,col="red")
http://www.math.unicaen.fr/~kauffmann/cours
8
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
30 janvier 2017
Dpt. Mathématiques et Informatique
0.3
0.0
0.1
0.2
Density
0.4
0.5
0.6
Histogram of X$TG − X$fit
−2
−1
0
1
2
X$TG − X$fit
Figure 6 – Histogramme des résidus
independance On s’aperçoit que les résidus sont plutôt tous négatifs au début de la période d’analyse et plutôt tous
positifs à la fin de la période d’étude.
En conlusion plusieurs élément nous font dire que ce modèle constant n’est pas correct.
3. Etudiez les modèles suivants
(a) le modèle affine en la variable year :β0 + β1 year
(b) Le modèle polynomial de degré 2 en la variable year.
(c) Une fonction constante jusqu’en 1985 puis une fonction affine après.
(d) Une fonction constante par morceaux, de 1962 à 1985 exclu, de 1985 à 1995, puis de 1995 à 2005.
1.6
1.6.1
Evolution des températures de toute les stations
Statistiques descriptives
Dans cette partie on veut comparer les températures moyennes mensuelles avant 1946 à celles d’après 1980.
years.debut=1896:1946
years.fin=1980:2015
X.debut=aggregate(TG~STAID+month,
data=Y[(Y$year %in% years.debut)&(Y$Q_TG==0),],
FUN=mean)
X.fin=aggregate(TG~STAID+month,
data=Y[(Y$year %in% years.fin)&(Y$Q_TG==0),],
FUN=mean)
X=merge(X.debut,X.fin,by=c('STAID','month'),suffixes=c('.debut','.fin'))
X=X[order(X$month,X$STAID),]
77
29
89
53
185
41
STAID
MARSEILLE OBS. PALAIS-LONCHAMP
BOURGES AERODROME
MERIGNAC AEROPORT DE BORDEAUX
DEOLS CHATEAUROUX AERODROME DE DEOLS
PERPIGNAN
BRON LYON AEROPORT
month
janv.
janv.
janv.
janv.
janv.
janv.
TG.debut
6.79
0.87
5.99
3.86
7.92
2.39
TG.fin
8.40
3.81
6.47
4.02
8.34
3.18
Table 5 – Températures moyennes mensuelles début et fin de périodes
Ainsi la température moyenne en janvier à BOURGE est passée de 0.9 degré avant 1946 à 3.81 degrés après 1980.
http://www.math.unicaen.fr/~kauffmann/cours
9
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
30 janvier 2017
Dpt. Mathématiques et Informatique
xyplot(I(TG.fin-TG.debut)~month|factor(STAID),type="l",data=X,auto.key=TRUE,scales=list(x=list(rot=45)),
panel = function(x, y,subscripts,upper,...){
panel.xyplot(x, y,...)
panel.abline(h=0,lwd=2,...)
})
METZ−FRESCATY
MONTELIMAR
ja
n
fé v.
v
m r.
a
av rs
m ril
a
ju i
in
ju
i
aol.
se ût
ocpt.
not.
dév.
c.
ja
n
fé v.
v
m r.
a
av rs
m ril
a
ju i
i
ju n
i
aol.
se ût
ocpt.
not.
dév.
c.
TG.fin
TG.debut
NIMES
TOULOUSE−BLAGNAC
25
20
15
10
5
0
TG.fin + TG.debut
NANCY
ORLEANS
BESANCON
BEAUVAIS−TILLE
LE MANS
RENNES
STRASBOURG−ENTZHEIM
MONT−AIGOUAL
25
20
15
10
5
0
BRON LYON AEROPORT
ARIS−14E PARC MONTSOURIS
25
20
15
10
5
0
MARSEILLE OBS. PALAIS−LONCHAMP
BOURGES AERODROME
MERIGNAC AEROPORT
DEOLS
DE BORDEA
CHATEAUROUX AERODROME DE DEOLS
PERPIGNAN
ja
n
fé v.
m vr.
a
avrs
r
m il
a
ju i
in
ju
ao il.
û
se t
p
oct.
no t.
dév.
c.
ja
n
fé v.
m vr.
a
avrs
r
m il
a
ju i
in
ju
ao il.
se ût
p
oct.
no t.
dév.
c.
ja
n
fé v.
m vr.
a
avrs
r
m il
a
ju i
in
ju
ao il.
se ût
p
oct.
no t.
dév.
c.
25
20
15
10
5
0
month
Figure 7 – Evolution des températures moyennes mensuelles début et fin de période
1. Pourquoi la station de la pointe de la Hague n’apparait pas dans la table agrégée X ?
2. Sur le graphique par station est ce que la température vous semble augmenter ?
3. Construire un histogramme des écarts de température TG.fin-TG.debut à l’aide de la fonction hist.
15
10
0
5
Frequency
20
25
Histogram of X$TG.fin − X$TG.debut
−2
−1
0
1
2
3
4
réchauffement en degré
Figure 8 – Histogramme des écarts de témpératures
(a) Est ce que toutes les températures ont augmentées ?
(b) Combien y a t-il d’obervations pour les quelles la température a diminuée.
(c) Peut -on dire que partout en france il y eu un réchauffement climatique en comparant des températures moyennes
mensuelles d’avant 46 à celles d’après 1980 ?
(d) Quelle sont la moyenne et l’écart type de cet écart de température. Pour une station et un mois on constate donc
une augmentation moyenne de 0.77 degré ±1 degré. On va considérer ici que la loi empirique de ces ecarts peuvent
être condidérée comme gaussienne.
http://www.math.unicaen.fr/~kauffmann/cours
10
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
30 janvier 2017
Dpt. Mathématiques et Informatique
— Construire la figure suivante
0.3
0.0
0.1
0.2
Density
0.4
0.5
Histogram of X$TG.fin − X$TG.debut
−2
−1
0
1
2
3
4
réchauffement en degré
Figure 9 – Histogramme des écarts de témpératures avec ajustement loi gaussienne
— A l’aide du modèle gaussien, trouver la fréquence pour une station et un mois de refroidissement climatique:
dnorm(0,mean=moyenne,sd=ecart_type)
— A t-on pris en compte un effet éventuel de la localisation de la station ?
— Est ce que l’ajustement gaussien vous semble bon ?
1.6.2
Représentation cartographique de l’hétérogénéité spatiale
Dans ce paragraphe, on réalise une catographie des écarts de températures moyens par station.
X.debut=aggregate(TG~STAID,data=Y[(Y$year %in% years.debut)&(Y$Q_TG==0),],FUN=mean)
X.fin=aggregate(TG~STAID,data=Y[(Y$year %in% years.fin)&(Y$Q_TG==0),],FUN=mean)
X=merge(X.debut,X.fin,by=c('STAID'),suffixes=c('.debut','.fin'))
X$ecart=X$TG.fin-X$TG.debut
source1=source
source1$STAID=as.character(source1$SOUNAME)
source1=unique(source1[,c('STAID','lon','lat')])
X=merge(X,source1,by="STAID",all.x=TRUE,all.y=FALSE)
plot(france)
X$proportion=0.5+(X$ecart-mean(X$ecart))/5
points(X$lon,X$lat,col="red",pch=20)
symbols(x=X$lon,y=X$lat,
thermometers=cbind(0.000005,0.00005,X$proportion),fg="blue",add=TRUE)
http://www.math.unicaen.fr/~kauffmann/cours
11
{didier.trotoux,francois.kauffmann}@unicaen.fr
Université de Caen Normandie
30 janvier 2017
Dpt. Mathématiques et Informatique
Figure 10 – Carte des écarts de températures moyens entre les années avant 1946 et les années après 1980, le centre du
thermomètre est l’augmentation moyenne française de 0.9 degré, le point haut correspond à une augmentation de 2.5 par
rapport au point moyen et le point bas à une diminution de 2.5 degré par rapport au point moyen
1.6.3
Modélisation
On veut étudier si il y a une moyenne des écarts de températures significatives à l’aide du modèle linéaire suivant ou on
inclue comme effets fixes un effet dépendant de la station et un effet mois. On recalculera la table X définie dans le paragraphe
”Evolution des températures de toute les stations”.
m=lm(TG.fin-TG.debut~STAID+month,data=X)
X.pred=expand.grid(STAID=c("BOURGES AERODROME","MARSEILLE OBS. PALAIS-LONCHAMP")
,month=unique(X$month))
X.pred=cbind(X.pred,predict(m,newdata=X.pred,interval="confidence"))
1. Quelles sont les stations qui ont un réchauffement moyen significativement non nul ?
2. Y a t-il un mois et une station qui va avoir en moyenne un refroidissement ?
3. Est que la station de marseille en moyenne va avoir un réchauffement tous les mois ?
1.7
Conclusion
Ce sont des conclusions tout à fait partielles, chacun se fera son idée.
1. Peut-on dire qu’il y a un réchauffement partout ? Le réchauffement même à l’échelle de la France semble hétérogène.
2. Peut-on dire qu’il y a en moyenne un réchauffement ?
3. Peut on dire que le réchauffement s’accélére, stagne ?
4. Quelle température pouvez prédire en 2100 pour La Hague ?, donnez un intervalle de confiance de cette température
en 2100 , en choisissant plusieurs modèles, on devrait parler plutôt de projection ici.
http://www.math.unicaen.fr/~kauffmann/cours
12
{didier.trotoux,francois.kauffmann}@unicaen.fr