Het wordt warm in Nederland

debilt001Op dezelfde manier als in de vorige post analyseer ik de temperaturen in Nederland. Het aardige is dat er een maandelijkse historie is van de gemiddelde dagtemperatuur in De Bilt, een serie die terug gaat tot 1706. Om een bruikbaar plaatje te maken, moeten we eerst de seizoensvariatie neutraliseren. We moeten dus eerst de best passende cyclische functie vinden, bijvoorbeeld geschikte $$a$$ en $$b$$ voor $$a*sin(2*pi*T+b)$$, waarbij $$T$$ het jaar is. Herinner je de formule voor $$sin(a+b)$$. We kunnen dus een lineaire regressie maken op de sinus en cosinus. Voor de zekerheid nemen we ook nog een dubbele periode mee, dus maken we een regressie met 4 parameters voor de periode: $$sin(2*pi*T)$$,  $$sin(4*pi*T)$$, $$ cos(2*pi*T)$$ en $$cos(4*pi*T)$$. debilt002Halen we de seizoensinvloed weg, dan krijgen we een “genormaliseerde” reeks. Dat is het blauw op de achtergrond. Nog steeds zijn de variaties fors, wel 10 keer zo groot als de gemiddelden op de globale grafieken. Dat geeft verder niet echt. Verder heb ik gekeken of in dit signaal ook de zonnecyclus, de variaties van El Nino en de gevolgen van vulkanische uitbarstingen te zien zijn. Ze zijn er inderdaad alle drie, maar het verband met El Nino (ENSO) is toevallige ruis, die heb ik weggelaten. De effecten van vulkanen zijn wel duidelijk maar pas laat, na 20 maanden, goed zichtbaar. In het plaatje hiernaast zie je dat de statistiek maximaal 0.4 graad van de variatie in opwarming toerekent aan de zonnecyclus en dat vulkanen dit beeld de andere kant uit met ongeveer 0.2 graad tijdelijk kunnen verstoren. Het gehele beeld is een gemiddelde verhoging van de temperatuur met 0.39 per decennium, ofwel 1.7 graden Celcius sinds 1970.

Code

# haal gecachte data op vanuit mijn bibliotheek
trial <- read.lab() # Labrije tijdsreeks voor De Bilt
trial <- window(trial, start=1970)
read.mei() # ENSO
read.ssp() # sun spots
read.vol() # Vulkanen

pvol=20
pssp=1
pmei=5

vol.lag <- lag(vol.ts, -pvol)
ssp.lag <- lag(ssp.ts, -pssp)
mei.lag <- lag(mei.ts, -pmei)

start.y <- 1970
end.y <- end(trial)

debilt <- window(trial, start=start.y, end = end.y)
mei <- window(mei.lag, start=start.y, end = end.y)
ssp <- window(ssp.lag, start=start.y, end = end.y)
vol <- window(vol.lag, start=start.y, end = end.y)
year <- index(trial)
f1 <- sin(2*pi*year)
f2 <- cos(2*pi*year)
f3 <- sin(4*pi*year)
f4 <- cos(4*pi*year)

fanta <- lmRob(debilt~year+f1+f2+f3+f4+ssp+vol+mei) # Robust regression

periodic.fit <- f1*fanta$coefficients['f1'] +
 f2*fanta$coefficients['f2'] +
 f3*fanta$coefficients['f3'] +
 f4*fanta$coefficients['f4']

ssp.fit <- ssp*fanta$coefficients['ssp']
vol.fit <- vol*fanta$coefficients['vol']
mei.fit <- mei*fanta$coefficients['mei']

year.fit <- fanta$fit - (ssp.fit+periodic.fit+vol.fit+mei.fit)

Andere data en een vergelijkbare schatting zijn te vinden op het Berkely Earth project: http://berkeleyearth.lbl.gov/regions/netherlands

Leave a Reply