Why is this moving average process still autocorrelated?

I have come to understand that a moving average process of order $$q$$, $$MA(q)$$, has no autocorrelation if the lag, $$k$$ is greater than $$q$$.

An example of an $$MA(1)$$ process that I saw was the following: $$X_{t} = w_{t} - 0.8w_{t-1}$$ where each $$w_{t}$$ were white noise events.

I immediately questioned this, as surely this $$MA$$ process has some recursive property, or memory of sorts?

$$X_{t-1}$$ can be written as $$w_{t-1} - 0.8(X_{t-2})$$.

$$X_{t-2}$$ can then be written as $$w_{t-2} - 0.8(X_{t-3})$$ and so on.

I even wrote some dummy code and it confirms my suspicions.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

x = [np.random.normal(0,2)]

for i in range(1, 100):
x.append(np.random.normal(0,2) - 0.8*x[i-1])

df = pd.DataFrame(x, columns = ['data'])

pd.plotting.autocorrelation_plot(df)
plt.show()


This produced the following graph, when the lag is above the order, $$k > q$$, there is still non-zero autocorrelation.

I was wondering if someone could explain why there is still autocorrelation here, even though theory of moving average processes tells us that there shouldn't be?

Many thanks in advance.

• Hi: I don't use python but I think your python code represents an AR model rather than an MA model because you are using the previous value of the series on the right side. That's not what an MA model does. It uses the previous value of the noise term. Mar 24, 2021 at 13:03
• Also, what is zero is the population autocorrelations (the "true" value) for lags beyond $q$. That you will find nonzero sample autocorrelations does not contradict the result. Mar 24, 2021 at 14:27