This post is the first cut at R statistics for the Rybski approach to detecting change in global temperature. It follows Global Warming Statics giving the literature context to the analysis, and the introductory post July 2008 Global Temperatures that caused all the fuss at ClimateAudit.

The R script is here. You should uncomment the lines that grab the data after running it one time, or else it will be slow: e.g.

#tlt readRSS(file=TLT)

#crut readCRU(file=,temps=14)

The script contains a function implementing the Rybski statistic, based on Rybski et al. [2006].

D^{(k)}(i,l) := X^{(k)}(i) â€“ X^{(k)}(iâ€“l)

This tests whether or not a climate variable, defined on a time scale k, has changed in a statistically significant sense, over l periods (starting from period i). Time scale i is the average of i periods. The periods could be in months or years.

The expression lag l/k refers to the period at a particular time scale k. That is lag 2/30 is the period of 60 years.

In order to verify the coding, I replicated figure 2 in Koutsoyiannis 2007. His figure is below, where he plots D^{(30)}(i,1:4)

Original Caption: Figure 2 Graphical depiction of the pseudo-test based on StD[D] with known H. The continuous solid curve represents the CRU time series averaged over climatic scale k =30. The series of points represent values of D for the indicated lags l/k. Horizontal lines represent the critical values of the pseudo-test, which are the estimates of StD[D] times a factor 2.58 corresponding to a double-sided test with significance level 1% and assuming normality (only the positive critical values are plotted).

Below is my replication of his figure. The critical values are not right yet, a bit low compared with the original figure. But the values for D^{(30)}(i,1:3) over the range are about right. You can get this graph by running kou(crut,k=30,DS=F,lags=3).

Below is the same result for D^{(30)}(i,1) with the addition of D^{(30)}(2007,j) in red. that is, instead of looking at the differences between each 30 years (l/k=1/30) it plots the difference in temperature from 2007 for every year from 1979 back to the start of the series in 1850. The values are the dotted lines, and the confidence limit is the dashed line. This plot can be obtained by running kou(crut,k=30,DS=T,lags=1).

Finally, here is the same result on the monthly satellite data from 1979 to the present (July 2008). The variables are D^{(30)}(i,1) and D^{(30)}(2007,j) above. This can be achieved by running kou(tlt,k=12,DS=T,lags=1).

The last value on the fine red dotted line, is essentially the value reported in July 2008 Global Temperatures. The difference in temperature between july 1979 and july 2008 is about 0.22. The critical value at that time is about 0.51.

What have we proved? The approach using calculations in the post July 2008 Global Temperatures finding that temperatures had not risen significantly since july 1979 is:

a) based on methods published in the peer reviewed literature by Rybski 2006 and Koutsoyiannis 2007.

b) the results were approximately correct, even when modified slightly to be consistent with the published methods.

I will be rewriting this script to express D as a function. Then I should be able to post an analyses that directly parallels Lucia’s analysis at her Blackboard (Where the Climate Talk Gets Hot!), only based on the Rybski method of detecting temperature rise instead of the trend based approach. I may not get back to this until later this week though as I have to go away.

Refrences:

Koutsoyiannis, D., and A. Montanari, Statistical analysis of hydroclimatic time series: Uncertainty and insights, Water Resources Research, 43 (5), W05429.1â€“9, 2007.

Rybski, D., A. Bunde, S. Havlin, and H. von Storch (2006), Long-term persistence in climate and the detection problem, Geophys. Res. Lett., 33, L06718, doi:10.1029/2005GL025591.