Update to March 2022 of the Temperature Anomaly Model and Plot

The model of the temperature anomaly plot is updated to the most recent data. The data sources are somewhat changed. For the temperature anomaly, the new data is from the NASA website (https://data.giss.nasa.gov/gistemp/tabledata_v4/GLB.Ts+dSST.csv). For the Multivariate El Niño Southern Oscillation Index, the new data is from the NOOA website (https://www.psl.noaa.gov/enso/mei – the Multivariate El Niño Southern Oscillation index is shifted to the right by one-half month by averaging consecutive data points.)

For the carbon dioxide levels, the new data is from the NOOA website (https://gml.noaa.gov/aftp/products/trends/co2/co2_mm_mlo.txt – the de-seasonalized series was used.). For the sunspots, the data is the current series at Royal Observatory of Belgium (https://www.sidc.be/silso/datafiles – the Total sunspot number series is used.)

For the temperature anomaly data, the data from January 1880 to March 2022 is used. For the sunspot data, the data from October 1879 to December 2021 is used. For the Multivariate El Niño Southern Oscillation index and for the carbon dioxide levels, the data from January 1800 to December 1978 is the old data. The data from January 1979 to March 2022 is the new data.

The function to print the results is:

temp.model.7.3.2022.print.and.plot = function(
  ta=ta.nasa.1.1880.5.2022_7.2.22.ts,
  xmat=xmat3.merged.7.2.2022.ts,
  ord=c( 
    3, 
    0, 
    0 
    ),
  seas=list( 
    order=c( 
      2, 
      0, 
      0 
      ), 
    12 
    ),
  sta=c(
    1880,
    1
    ),
  en=c(
    2022,
    3
    )
  ) {
  mod = arima( 
    window( 
      ta, 
      start=sta, 
      end=en
      ), 
    order=ord, 
    seasonal=seas, 
    xreg=xmat 
    )
  
  print( 
    summary(
      mod
      )
    )
  
  plot(
    ta,
    col="grey80",
    xlab="Year",
    ylab="Temperature Anomaly",
    main="Temperature Anomaly and\nthe Fit of the Model",
    font.main=1
    )
  lines(
    seq(
      sta[1]+(sta[2]-1)/12,
      en[1]+(en[2]-1)/12,
      1/12
      ),
    coef(
      mod
      )[ 
        6
        ] + 
        xmat %*% 
          coef(
            mod
            )[
              7:9
              ],
    col="grey10"
    ) 
}

The results from running the function are:

> temp.model.7.3.2022.print.and.plot()


Call:
arima(x = window(ta, start = sta, end = en), order = ord, seasonal = seas, xreg = xmat)



Coefficients:
         ar1     ar2     ar3    sar1    sar2  intercept
      0.4827  0.1830  0.0729  0.0801  0.1421    -3.2730

s.e.  0.0243  0.0266  0.0242  0.0244  0.0242     0.1186
        
        enso     co2  sunspot
      
      0.0469  0.0101    3e-04
s.e.  0.0069  0.0004    1e-04



sigma^2 estimated as 0.01103:  log likelihood = 1424.23,  aic = -2828.46

Note that the current lack of increase in temperature is accounted for by low sunspot numbers and low Multivariate El Niño Southern Oscillation index numbers. The three explanatory variables are plotted below against time.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s