Saturday, August 07, 2010

MikeN weighs in on Mann08's use of the Tiljander proxies

One thing that I can't do is evaluate the MatLab code that Prof. Mann placed online when PNAS published Mann08 in September, 2008. I can't even make heads or tails of Steve McIntyre's "R"-based emulations of Mann08... when it comes to running even simple programs, I'm an illiterate (gasp!).

MikeN is a frequent participant at technical Climate Audit discussions. The latest has been The No-Dendro Illusion. He has offered considerable insight within the threads at Arthur Smith's posts at Not Spaghetti considering the use of the Tiljander proxies in the Mann research group's recent efforts: Where's the fraud?, Michael Mann's errors, and Open Thread.

Via email, he offered a summary of his views of Mann08's use of the Tiljander proxies. With minor edits, his remarks follow.

AMac --

It's important to understand how Mann08's code handles the data series used in multiproxy paleotemperature reconstructions. I have taken the path of working things through at Arthur Smith's bit by bit [see the three posts referenced above]. It might be useful to have a summary up on your site for future reference.

To this point:

My remarks are, in part, a response to your summary at Climate Audit [Comment #237716].

First, the authors did not flip Tiljander's proxy, they failed to flip the proxy. Similarly, the correlation or calibration steps did not flip the proxy.

Here is my analysis of the code, which was seconded by Martin Vermeer [in the Not Spaghetti comments]. This was for Mann et al (2008), applying the CPS approach (the EIV approach is distinct).

First, a data file is read with the various proxies, their latitude and longitude, etc. Each data file includes a class datapoint. In the case of Tiljander, that class is "4000".

After being read in, the code is processed by checking each 5 degree by 5 degree gridcell in sequence, to see which proxies' latitudes and longitudes belong to that particular gridcell. McIntyre has noted previously that this procedure will double count proxies that are located on a gridcell boundary (and could potentially quaduple-count proxies on a corner). In this same early stage, each proxy passes through an "if" statement, where the correlation is checked to see whether it is higher than a predefined value. This is specified as either 0.106 or 0.128.

What's being considered here is the correlation of the candidate proxy data with the 5 x 5 gridcell's temperatures 1850-1995, as calculated by CRUTEM3v from the instrumental record.

So if a class 4000 proxy candidate has a negative correlation to its gridcell's CRUTEM3v temperature series, then this candidate will fail screening, and will not be used. (Correlations to neighboring gridcells' temperature series can also be checked.) The code will not flip this type of data series.

All four of the Tiljander data series increase over time, from 1850 to 1995. This is true for Darksum, Lightsum, X-Ray Density, and Thickness. Since CRUTEM3v also increases over this time for this gridcell, the correlations are all positive.

Controversy has arisen because Tiljander03 assigns "warmer" to falling values of Lightsum and XRD--opposite ("upside-down") from the trend that is observed in recent times. Mann08's critics claim that the positive correlations for {Lightsum vs. Temperature} and {XRD vs. Temperature} are spurious, since the increasing values of these measures through modern time is the result of non-climate-related factors.

Be that as it may: these data series are fed in without flipping, the correlations are positive, and candidates are accepted if the r-values are above the cutoff (this is the case for Lightsum, but not for XRD).

What I see is that there is no chance of one of the Tiljander proxies being flipped by the MatLab code, whether or not "human eyes" would consider it to be "upside down" on physical grounds. For class 4000, regression screening is not "blind to the proxy's sign." This class is processed with a one-sided test.

Perhaps some confusion has stemmed from the different treatment by the MatLab code of different classes of proxies. In particular, there is a section that contains this code:
if(abs(z(ia,i))>corra) ... and then z(i)*sign(z(ia,i))
When a proxy with a negative correlation is processed by this step, it will be flipped.

However, this isn't relevant for any of the four Tiljander data series, since they are all assigned to class 4000. Recall that at an earlier stage, the correlation had to be higher than 0.106 or 0.128 to pass. Thus, at this stage, all successfully-screened class 4000 proxies would pass through this section of code without risk of being flipped.

-- MikeN


  1. So I guess this seems like either a data entry error or an error in the assumption that all lake varve proxies were positively correlated with temperature.

  2. This comment has been removed by a blog administrator.

  3. This comment has been removed by a blog administrator.

  4. This comment has been removed by a blog administrator.

  5. scientist --

    This thread belongs to MikeN's post; he's handling comments here. Please stay on topic. I will create an "Unthreaded" post.

    -- AMac