Niche Modeling

The power of numeracy

Niche Modeling header image

Surface Temperatures - estimating the SD of the trends

March 7th, 2008 · 4 Comments

How cold does it need to be to prove the theory of global warming wrong? What are the exact conditions under which global warming statements can be falsified? Over at the blackboard, Lucia has been giving this controversial topic well deserved attention. After all, it is pretty much agreed that scientific theories should be falsifiable. One would think that understanding of climate is flawed if three conditions occur together: a constant temperature trend, IPCC predicts a rising temperature trend, and CO2 continues to rise. She states:

If, the average trend for the years 2008-2017 is negative, then any trend of 2.0 C/year or higher, will be found to be “inconsistent with the measured trend” to the 95% confidence level. That is: current projections of that warming may be 2.0 C/year or higher will be falsified.

By my calculations using more robust statistics, it would take 20 years or more than twice as many years to produce a 95% confidence interval of 0.2C per decade or 2C per century.

The problem is, she makes some assumptions — which she correctly acknowledges — and one of the main ones is independence of the temperature data. On the contrary, temperature measurements are serially correlated to a degree that affects statistics such as measures of variability, particularly the standard deviation (SD). In a serial correlation the new temperature is determined in part by the previous one. Stated another way, there appears to be more information in the series than there really is. One of consequences is that the calculated SD is lower than it should be, making the confidence limits smaller than they should be.

Lucia has been working on the correcting for serial autocorrelation here. To me, the quickest and most reliable way to check when you are not sure, is to generate the distribution of the actual statistic of interest, in this case the trend. Below is a script in R to generate all trends for a specific number of years d. The script is at the end of the post and can be run as follows. First, it reads the global surface temperatures into a variable g. The trends for every interval of 10 years are collected into a vector and the SD calculated av. It prints the SD for that choice of time interval.

Source("sdtemptrend.R")
av< -trend(g,d=10)
[1] 0.02153519

The script produces the graphs like the ones below, showing the temperature measurements, and the trend per decade for the previous d years, with the 95% confidence limit. The blue dashed lines show the significance levels. The first figure was run at d=30 and illustrates the very significant 30 year trend to the present. This shows agreement with statements such as ‘the world is warming’. Run at d=10, the trend is not significant.

temp30.png temp10.png

Figure: Global temperatures (black), trend of global temperatures (red) with significance of the trend at 95% confidence level (dashed blue). The first figure shows a 30 year trend, the second a 10 year trend. The y-axis is temperature anomaly and decadal temperature trend.

Lucia derived an SD of surface temperature of 0.1 from the detrended annual temperature measurements here. When we estimate distribution of the statistic directly, by repeatedly calculating the trend for all possible years, we get a larger SD of 0.22 for the 10 year interval. An estimate of the actual SD of the trends for a selection of years is shown below.

5 years SD = 0.5
10 years SD = 0.216
15 years SD = 0.15
20 years SD = 0.12

So the SD of the trend estimated directly from the temperature data is about twice the estimate given by Lucia. With double the SD, it would take 20 years or more than twice as many years to falsify a prediction of a trend of 0.2C per decade or 2C per century as estimated by assuming independence. This is typical of the difference incorrect assumptions of normality make.

One of the themes of this blog are documenting cases where assumed and actual distributions give different results. Independence assumptions are virtually never justified in these sorts of temperature data, and can lead to considerable errors.

Script for calculating SD of surface temperatures

readCRU< -function(source="http://www.cru.uea.ac.uk/cru/data/temperature/crutem3gl.txt",temps=2:13,plot=T) {
	f<-read.table(source,fill=TRUE)
	d<-as.vector(t(as.matrix(f[seq(1,length(f[,1]),by=2),temps])))
	ts(d,frequency=length(temps),start=1850)
}

g<-readCRU(temps=14)

mylin<-function(y,duration=5) {
	x<-1:duration
	l<-lm(y[1:duration] ~ x )
	as.vector(l$coefficients[2])
}

trend<-function(y,d=5,scale=10) {
	x<-c()
	for(i in 1:(length(y)-d ) ) {
		x[i]<-mylin(y[i:(i+d )],duration=d)
	}
	t<-ts(x,start=tsp(y)[1]+d,frequency=tsp(y)[3])
	s<-sd(t)
	print(s)
	s<-scale*s
	plot(y)
	lines(t*scale,col="red")
	lines(tsp(y)[1:2],c(0,0),col="blue")
	lines(tsp(y)[1:2],c(0,0)+s*1.96,col="blue",lty=2)
	lines(tsp(y)[1:2],c(0,0)-s*1.96,col="blue",lty=2)
	s
}

Tags: ·

4 responses so far ↓

  • 1 lucia // Mar 12, 2008 at 4:52 pm

    Ohhh!!! We are all starting to get the same results.. different ways! (This is the upside to minor disagrements.)

    Way cool. :)

  • 2 admin // Mar 12, 2008 at 6:51 pm

    Hi Lucia. Yes, bouncing statistical analysis around is a great way to blog. There is value in different people checking things different ways.

    Although, neither AR models or an empirical approach captures the full variability due to long term persistence (LTP). Its closer to 2.5 times the variability derived from the IID result. See here. Cheers

  • 3 Niche Modeling » Example of Simple Linear Regression - global warming trends // Mar 18, 2008 at 8:43 pm

    [...] Below are graphs for the last ten years and the trend line for global temperatures for four sources from Anthony Watts over the period January 1998 to February 2008. The simple linear regression line through the points shows the 10 year trend. One of the main claims of the theory of global warming is that greenhouse gases in the atmosphere cause increasing temperatures. If temperatures stop increasing for long enough, while greenhouse gases such as CO2 continue to rise, then we could be justified in not believing the theory. The basic numeracy skill from statistics is the hypothesis test. To set up the test we assume no difference between the datum being tested (called a null hypothesis or H0) and estimate the probability of assuming incorrectly, based on the data. The hypothesis test on these data would be as follows: First, we estimate the expected variability of the trend. The standard deviation of the 10 year trend was estimated directly from the trends over the entire period of data collection according to the robust procedure described here. We also calculate the difference between the IPCC expected trend of 0.2C per decade and observed trend per decade. We then estimate the probability of the observed trend, given an expected trend of 0.2C by comparing the difference and the SD. This gives us the probability of the null hypothesis is rejected, that there is no difference between the predicted and the observed trends. We can estimate the actual probability for each of the global temperature indices with the R function pnorm() as follows: [...]

  • 4 Franko // Aug 8, 2008 at 11:32 am

    The trend changes with time. More insight if actual is compared to output of a low pass filter. AR predict, backward and forward, run low pass both ways, and average to remove phase delay. How to interpret the errors, I am not shure.

Leave a Comment