.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/01_temporalTimeSeriesAnalysis/plot_movingAverageAutocovariance.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_01_temporalTimeSeriesAnalysis_plot_movingAverageAutocovariance.py: Moving average analytical and estimated autocovariance ====================================================== .. GENERATED FROM PYTHON SOURCE LINES 7-9 Import requirements ------------------- .. GENERATED FROM PYTHON SOURCE LINES 9-14 .. code-block:: Python import os import numpy as np import plotly.graph_objects as go .. GENERATED FROM PYTHON SOURCE LINES 15-17 Define variables ----------------- .. GENERATED FROM PYTHON SOURCE LINES 17-23 .. code-block:: Python srate = 1 T = 100 sigma = 1.0 lags = np.arange(20) .. GENERATED FROM PYTHON SOURCE LINES 24-27 Create white noise ------------------ .. GENERATED FROM PYTHON SOURCE LINES 27-32 .. code-block:: Python time = np.arange(0, T, 1.0/srate) N = len(time) w = np.random.normal(loc=0, scale=sigma, size=N) .. GENERATED FROM PYTHON SOURCE LINES 33-36 Create moving average time series --------------------------------- .. GENERATED FROM PYTHON SOURCE LINES 36-42 .. code-block:: Python ma = np.empty(len(w), dtype=np.double) ma[0] = (w[0] + w[1]) / 3 for i in range(1, len(w)-1): ma[i] = (w[i-1] + w[i] + w[i+1]) / 3 ma[-1] = (w[-2] + w[-1]) / 3 .. GENERATED FROM PYTHON SOURCE LINES 43-46 Estimate autocovariance ----------------------- .. GENERATED FROM PYTHON SOURCE LINES 46-64 .. code-block:: Python estAcov = np.zeros(len(lags)) anaAcov = np.zeros(len(lags)) maMu = np.mean(ma) for h in lags: if h == 0: anaAcov[h] = 3.0 / 9 * sigma**2 xs = ma - maMu xt = ma - maMu else: xs = ma[h:] - maMu xt = ma[:-h] - maMu if h == 1: anaAcov[h] = 2.0 / 9 * sigma**2 elif h == 2: anaAcov[h] = 1.0 / 9 * sigma**2 estAcov[h] = np.mean(xs * xt) .. GENERATED FROM PYTHON SOURCE LINES 65-68 Plot moving average time series, true and estimated autocovariance ------------------------------------------------------------------ .. GENERATED FROM PYTHON SOURCE LINES 68-95 .. code-block:: Python fig = go.Figure() trace = go.Scatter(x=time, y=ma, mode="lines+markers") fig.add_trace(trace) fig.update_layout(xaxis=dict(title="Time (sec)"), yaxis=dict(title="x")) if not os.path.exists("figures"): os.mkdir("figures") fig.write_html(f"figures/movingAverageSamplesN{T}.html") fig.write_image(f"figures/movingAverageSamplesN{T}.png") fig = go.Figure() trace = go.Scatter(x=lags, y=anaAcov, mode="lines+markers", name="analytical") fig.add_trace(trace) trace = go.Scatter(x=lags, y=estAcov, mode="lines+markers", name="estimated") fig.add_trace(trace) fig.update_layout(title=f"N={T}", xaxis=dict(title="Lag (samples)"), yaxis=dict(title="Autocovariance")) if not os.path.exists("figures"): os.mkdir("figures") fig.write_html(f"figures/movingAverageAutoCovN{T}.html") fig.write_image(f"figures/movingAverageAutoCovN{T}.png") fig .. raw:: html


.. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.127 seconds) .. _sphx_glr_download_auto_examples_01_temporalTimeSeriesAnalysis_plot_movingAverageAutocovariance.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_movingAverageAutocovariance.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_movingAverageAutocovariance.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_movingAverageAutocovariance.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_