Part II. Archive of Annual Average Temperature Time Series Data. Haskell, TX
copyright © 2007 Paolo B. DePetrillo, MD

Let's see some Surface Temperature Analysis Station Data from Haskell (33.2N, 99.8W) The raw data can be downloaded here in a text file, and imported in Excel.

Haskell


station


At the far right we have two columns. "ANN" and "MISSANN". I didn't make up the first label. The "ANN" column contains mean temperature data in Celsius for the year. You will also notice a "MISSANN" column, which is the same data except for the fact that I removed data points from "ANN" which relied on extrapolated data. "MISSANN" is clean pure, well almost pure, data. What does this mean? It means that on occasion, a data point is missing so investigators estimate the value by extrapolation and the data is treated the same way as the measured values. I don't know the procedure for how these values were derived, since it is not referenced. I would rather place my faith in the law of large numbers rather than in my ability to estimate some value for a missing data point. This kind of study has literally millions of data points given all the locations. If there is a signal, we should find it regardless of a few missing points.
Here is the CO2 data. I have made the file local so as not to burden their server.
co2tableWRJ

Examples of Mathematical Modeling of Local Temperature Times Series

First thing I do before anything else is look at graphics of data. It's pretty. It helps to correct typographical errors. And If you get really lucky, you don't have to run statistics. You'll get your answer by observation and common sense. Alas and alack, the universe throws in enough noise to make that impossible except for very well designed experiments, crafted by geniuses. Not here.

Here are the graphs of the data. The A column shows a simple mean fit and the B column shows a linear fit. The first row uses extrapolated data, the second row uses the raw data with extrapolated average temperature points removed.



A B



MeanExLinearEx

Temperature = 17.53 +/- 0.07 Temperature = 0.0047 +/- 0.0021 (Year) + 8.27 +/- 4.22
SSE = 63.08 SSE = 60.38

MeanNoExlinearNoEx

Temperature = 17.53 +/- 0.08 Temperature = 0.0036 +/- 0.0026 (Year) + 10.45 +/- 5.12
SSE = 42.89 SSE = 41.87

Does the better fit justify adding another parameter to the model?

Let's compare models with the corrected Akaike's Information Criteria

First, for the two using extrapolated data:

Compare models with F test
Model SS DF
Mean Fit Using Extrapol (null) 63.08 109
Linear Using Ext (alternative) 60.38 108
Difference 2.7 1
Percentage Difference 4.47% 0.93%
Ratio (F) 4.83
P value 0.0301
If Mean Fit Using Extrapol (the null hypothesis) were true, there would be a 3.01% chance of obtaining results that fit Linear Using Ext (the alternative hypothesis) so well.
Since the P value is less than the traditional significance level of 5%, you can conclude that the data fit significantly better to Linear Using Ext than to Mean Fit Using Extrapol.



And now let's see the same models using raw data

Compare models with F test
Model SS DF
Mean Fit Using Raw (null) 42.89 80
Linear Using Raw (alternative) 41.87 79
Difference 1.02 1
Percentage Difference 2.44% 1.27%
Ratio (F) 1.92
P value 0.1693
If Mean Fit Using Raw (the null hypothesis) were true, there would be a 16.93% chance of obtaining results that fit Linear Using Raw (the alternative hypothesis) so well.
Since the P value is not less than the traditional significance level of 5%, you can conclude that the data do not fit significantly better to Linear Using Raw than to Mean Fit Using Raw. Since there is no evidence to reject the null hypothesis, the preferred model is Mean Fit Using Raw.

Thanks to the folks at GraphPad for their nice Java AIC calculator.




Digression

I've looked at thousands of time series, so sometimes I see stuff that may not be obvious. For example, do you see in both graphs that there is both a fast temperature cycle over a couple of years, and a slower cycle lasting somewhere between 60 and 70 years? I'll draw it out for you. The red line goes through the busiest part of the graphs. To illustrate my point, I did a 3 point running average [cringe!] to smooth out some of the peaks and valleys in the temperature graphs above.

MeanMISSANN

One of the simplest models for a time series is the average of all the points in the time series. In model language, we can express that as:

Temperature = P1 + error

where P1 is the average and error is an error term.

I noted previously that it looked like there may be a cycle expressed in the point cloud. To test this hypothesis, we have to figure out some kind of relationship between time, expressed in years, and temperature. An approximation is found in the trigonometric functions, and we will use the Cosine function that gives us a nice cyclical pattern. With any luck, it might fit the data better than a straight line. At the end of this section, I try to explain what makes least-mean square regression dangerous in this kind of analysis, and why I chose this method.

The Cosine function takes a few parameters. The technique varies the parameters associated with a Jordan matrix using the Gauss-Newton method, looking for positive and negative peaks in the response surface that minimize the error of the fit according to an objective function. In plain English, what we are doing is trying to find the value of the parameters in the function that minimize the error. These techniques offer an efficient way to do it, rather than looking at all possible combinations. That might take a while. Here is what the function might look like:


Temperature = P1 x (cosine(Year + P2) x 3.14159 / P3) + P4

The cosine function will vary from (-1) to +(1) but we have to give it the variable in radians. That is why we multiply by pi. We have the date given in years "Year" but we can't assume that the cosine function starts at whatever place has an output of 1! We have to offset it with a parameter, "P2" so that we vary the phase given what is an arbitrary set of increasing integers. Not quite arbitrary but we could have started at 2022 or whatever. What this number does is shift the wavy cosine function to the left or the right to help with the overall fit.

We have to divide by 1/2 the cycle length so that the function reaches a maximum and minimum within that span of time. That is where P3 comes into the picture. P4 is a mean, a point to which we add or subtract the amount given by the cosine expression to get our answer.. And let's not forget about P1, which tells us the amplitude of the cosine function.

Here is what it looks like when we unleash Gauss on the function. It seems to follow that point cloud. It's not a great fit, but it's better than a line. Lets see what kind of parameters we discovered. The error of the estimate, plus or minus, is in the parentheses. The lower, the better.

firstcycle

Temperature = 0.35[0.11] x cosine((Year -330.74[224.50] x 3.14 ) / 32.46[3.20] + 17.56[0.08]

About every 32 years there may be a temperature oscillation. Chances are pretty good that this has been noted in the literature, and a search indicates that in the Northern hemisphere, we are subject to the "Pacific Decadal Oscillation" that has a 1/2 cycle, warm or cold, around every 30 years.

http://jisao.washington.edu/pdo/

This is good, because like I said, the model should reflect reality at some point.

Now I know that there is also an ENSO cycle, La Nino or La Nina events, that occurs every couple of years. You can read all about it here:

http://www.cpc.ncep.noaa.gov/products/analysis_monitoring/ensocycle/enso_cycle.shtml

If we add another term to the function, one that has a 1/2 cycle of every few years, we may get a better fit. Actually, we can't "add" another term, but we can suggest starting at some point related to what we know about the world - which in this case is that ENSO periods are about 4 years long. In this case, choosing an initial value of "1" also works, it seems there is a strong reduction of error in the function at a 1/2 cycle of around 2 years.



ENSO

Temperature = 0.35[0.11] x cosine(Year - 369.24[222.22]) / 33.02[3.17] ) - 0.28[0.10] x cosine(Year-493.31[11.43] / 2.03[0.02] + 17.55[0.08]


The low error with the 1/2 cycle of 2.03 years, and with the phase shift error of 11.43 gives me some confidence that this is modeling something real, like the ENSO, which is more regular than the Pacific Decadal Oscillation, hence the higher error on the phase shift as well as the cycling time of 33 years. That last term, 17.55 degrees Celsius, is what the average temperature would be in absence of any cyclical events.

Sunspots!

Here is a graph of the sunspot cycle.

sunspots


And here is a graph of the temperature cycle and the sunspot cycle superimposed. I have taken the logarithm of the sunpot number and substracted 15 from the average temperature so they would both fit on the same scale for purposes of comparison.


spottemp


To my eye, there seems to be a pattern where the sunspot number begins to fall from a maximum, followed by the temperature, the reverse occurring as well. The rate of change in sunspot number also seems to determine the magnitude of the temperature change. Here is one of the better models relating temperature and sunspot number. Here, we model a lagged sunspot number coupled to a sunspot cycle, which hopefully will reduce the error enough to justify entering it into the model. The ugly Sunspot term is simply the area under the Sunspot - Time curve using the trapezoidal rule. So here it is:


Full Model

Full Model

T = + P1 x Cosine {(Year+ P2) *3.1415) / P3 "PDO" term
+ P4 x Cosine {(Year +P5) *3.1415) / P6 "ENSO" term
+ P7 x {Cosine {(Year +P8) *3.1415) / P9} Sunspot Cycle
* (LogSun,lag 0 years + 2*LogSun, lag 1 years + 2*LogSun, lag 2 years +2*LogSun, lag 3 years+2*LogSun, lag 4 years + LogSun, lag 5 years )"Sunspot number" term
+ P10 baseline temperature


value [standard error]

P1 = 0.4 [ 0.1]
P2 = -1209 [ 298 ]
P3 = 31 [ 3 ] "PDO" term cycle length
P4 = 0.3 [ 0.1 ]
P5 = -285[ 17]
P6 = 2.16 [ 0.02 ] "ENSO" term cycle length
P7 = -0.009 [ 0.003 ] * {Sunspot Number Term)
P8= -625 [41]
P9 = 4.47 [ 0.07 ] Sunspot cycle length
P10 = 17.58 [ 0.08]

T = predicted mean annual temperature

SSE 30.70 DFE 71 MSE 0.43 RMSE 0.6630.70

Compare models with the corrected Akaike's Information Criteria

Linear Fit Full Model
Sum-of-squares 41.87 30.70
Number of data points 81 81
Number of parameters 2 10
Akaike's Information Criteria (corrected, AICc) -47.14 -52.76
Probability model is correct 5.68% 94.32%
Difference in AICc 5.62
Information ratio 16.61

Full Model has a lower AICc than Linear Fit so is more likely to be the correct model.
It is 16.6 times more likely to be correct than Linear Fit.

Compare models with F test

Model SS DF
Linear Fit (null) 41.87 79
Full Model (alternative) 30.70 71
Difference 11.17 8
Percentage Difference 36.38% 11.27%
Ratio (F) 3.23
P value 0.0035

If Linear Fit (the null hypothesis) were true, there would be a 0.35% chance of obtaining results that fit Full Model (the alternative hypothesis) so well.
Since the P value is less than the traditional significance level of 5%, you can conclude that the data fit significantly better to Full Model than to Linear Fit.
Thanks to the nice folks at GraphPad for the model comparison calculations.

Finally, we ask if the Full Model is better or worse than the Full Model which includes a linear trend. In other words, if we remove the effects of the cyclical climate variations and sunspots on temperature by taking them into account with the Full Model,is there any unexplained variation that could be due to a linear trend?

In other words, we want to compare our full cyclical model to our full cyclical model with an added linear trend.

Full Model + Linear Trend

T = + P1 x Cosine {(Year+ P2) *3.1415) / P3 "PDO" term
+ P4 x Cosine {(Year +P5) *3.1415) / P6 "ENSO" term
+ P7 x {Cosine {(Year +P8) *3.1415) / P9} Sunspot Cycle
* (LogSun,lag 0 years + 2*LogSun, lag 1 years + 2*LogSun, lag 2 years +2*LogSun, lag 3 years+2*LogSun, lag 4 years + LogSun, lag 5 years )"Sunspot number" term
+ P10 baseline temperature
+P11*Year Linear Trend

I am not going to give the resulting parameters but for this model, but here is the "fit" data:

SS = 30.62 DFE = 70 MSE = 0.43 RMSE = 0.66

And here is the comparison:

Compare models with the corrected Akaike's Information Criteria

Full Model Full Model + linear Trend
Sum-of-squares 30.69 30.62
Number of data points 81 81
Number of parameters 10 11
Akaike's Information Criteria (corrected, AICc) -52.79 -50.21
Probability model is correct 78.39% 21.61%
Difference in AICc 2.58
Information ratio 3.63
Full Model has a lower AICc than Full Model + linear Trend so is more likely to be the correct model.
It is 3.6 times more likely to be correct than Full Model + linear Trend.

Compare models with F test
Model SS DF
Full Model (null) 30.69 71
Full Model + linear Trend (alternative) 30.62 70
Difference 0.07 1
Percentage Difference 0.23% 1.43%
Ratio (F) 0.16
P value 0.6904
If Full Model (the null hypothesis) were true, there would be a 69.04% chance of obtaining results that fit Full Model + linear Trend (the alternative hypothesis) so well.

Since the P value is not less than the traditional significance level of 5%, you can conclude that the data do not fit significantly better to Full Model + linear Trend than to Full Model. Since there is no evidence to reject the null hypothesis, the preferred model is Full Model.

Thanks to the nice folks at GraphPad for the model comparison calculations.

What about is carbon dioxide? Well, it does not enter into the model at this point because the parameter is small { 0.004 } and the error is high { 0.005 }, and the overall fit is worse. The carbon dioxide signal in this model is small, and the model does not have the resolution to answer the question at this time.

In this case, the simplest model was the linear fit model with two parameters. We need to make sure we have not simply added parameters and generated a fit, while losing all the model information. In other words, we are penalized for adding additional parameters. The error has to decrease by enough to justify the added parameters.
carbonFinal

CO2 Final

SSE = 44.30, which is WORSE than a simple mean fit.

The CO2 data was obtained from Hawaii. Previous to 1957, it was from ice cores. It is expressed in PPM. In this extremely simplistic model, there is no relationship between the increase in CO2 and temperature. Additional models would involve extra parameters and may not be explanatory. I always like to compare them to the simplest case.

There appear to be warm and cold cycles of the same degree (pun intended) both at early and later points in time. Since the carbon dioxide curve does not look cyclical, it is probable that those variations may be due to other factors.

Conclusions

For Haskell, TX, neither the raw or extrapolated data set robustly support an increase in temperature over time.

In Haskell, TX, since 1890, at least three factors may influence the mean annual temperature.

A cycle with a period of about 64 years, ?PDO

A cycle with a period of about 4 years ?ENSO

A cycle with a period of about 11 years (sunspot cycle) and the effect of average sunspot number .

The best fit is obtained when the number of sunpsots value is taken into account as the area under the sunspot - time curve lagged up to 5 years. This makes sense as we would expect a large system like climate to require some time before experiencing the effects of the solar cycle.

Sunspot cycles probably alter temperature, and should probably be tested in GCM models. OK, this is a stretch, but if other locations show the same pattern, it strengthens the argument.

The model predicts a gradual decrease in average temperature for the next 20-25 years in Haskell, TX, based on entering the "cold" half of the PDO cycle, as well as the cold part of the sunspot cycle. We'll see.

Discussion

You need to always compare your models to the simplest case, otherwise you run the risk of adding parameters that are not justified by the better fit.
I want to emphasize this point because you will come across "least-mean square" linear fits that seem to "fit" data well in the form Y = P1X + P2 where P1 is the slope and P2 is the intercept. Unless these two parameter models are compared to the simplest case, namely the one parameter "mean fit" model of the form Y = P2, any conclusion about "goodness of fit" is suspect.

The linear model using extrapolated data suggests there appears to be a little bit of a warming trend in Haskell, TX since 1889. About 0.005 +/- 0.002 degrees per year. However, if the same models are run using raw data, there is no statistical support for choosing the more complex model, and the warming trend disappears. The average yearly temperature in Haskell, TX may be 17.53 C +/- 0.08 and a warming trend may not be evident. Take your pick. I do not like using extrapolated data, nor doing linear fit models without comparing the linear fit to the simplest case. So your mileage may vary.

I say "may not be" because just like we accept a confidence level of 5% to reject the null hypothesis that there is no warming, meaning that 5% of the time we reject the null hypothesis even though it is true, we also need have a confidence level for accepting the null hypothesis, though it is rarely mentioned in reports of many studies. In this instance, stating "there is no warming" without also giving a confidence level for this statement is just plain stupid!.]

Much of the biological scientific literature has been polluted by this unclear thought, with statements of the form " There is no difference in the means between group A and Group B" without giving a confidence level for the statement. It is just as illogical as stating "There is a difference in the means between group A and Group B" without giving a confidence level. The confidence level for accepting the null hypothesis is "beta." I'm not going into the specifics yet, but my confidence level for accepting the null hypothesis is also 5%, meaning that 5% of the time I will accept it even though it is not true. In the case of effects of carbon dioxide on warming, I cannot accept the null hypothesis that there is no effect, since the "beta" is > 5%. It is still an open question which, for data I have analyzed, can only be answered by more data. More data, better conclusions. Isn't that always the case?

In the past century, we have experienced 2 x 1/2 cycles of PDO " warm," and a little more than one 1/2 cycle of PDO "cold." Look at the graph above. It trends cold from 1890 to 1900 but part of the cycle is not present. It again trends cold from 1948 to around 1979. But there are two complete warm trend cycles - one from 1900 to 1938 and one from 1978 to present. This skews the data towards a warm result over this period of time if this is not accounted by the model. I wish we had a couple of centuries worth of CO2 and local temperature data, since this would help refine the model by including a number of these cycles. As time permits, I will perform the same analysis for several locations in the United States and present the results in these pages.

Data is from 1890 to present. This limits the conclusions to this time period, namely the magnitude of many of the parameters.

Data is incomplete, since no extrapolated points were used when data points were missing. This may have biased the results.

I have not ruled out an effect of carbon dioxide on temperature. In stat speak, I do not have the power to rule it out at some reasonable confidence level. And I don't reach a reasonable level of significance to rule it in. Hence, the question is not answered. Like everything else, it would have been nice to have a lot more data.

There are obviously other factors influencing the temperature, and of course it is possible that carbon dioxide may itself influence the length or phase of some of the cycles. That is an empiric question which needs expert study.

Some time I'm going to get to Haskell, TX. And for all the work done by dedicated folks at GISS and NASA, a profound sense of awe and thanks.

I will also pretty up this page at some point.


Next page