Moving-average temperature model with lag 1
The moving average model of a time series represents the data as oscillations around the mean of the data. It is assumed that the lag components are white noise (not a politically incorrect term as far as I know), which forms a linear combination. We will again use the leastsq
function to fit a model:
We will start off with a simple moving-average model. It has only one lag component and therefore only one coefficient. The code snippet is as follows:
def model(p, ma1): return p * ma1
Call the
leastsq
function. Here, we subtract the mean from the data:params = leastsq(error, p0, args=(temp[1:cutoff] - mu, temp[:cutoff-1] - mu))[0] print params
The program prints the following parameter:
[ 0.94809073]
We get the following plot for the absolute error histogram, which is comparable to the autoregressive model results: