""" # Computing autocorrelation Correlation against itself at different lags to quantify how past values effect the future. Partial correlation has more control by comparing at shorter lags """ import os from statsmodels.graphics.tsaplots import plot_acf, plot_pacf import pandas as pd import matplotlib.pyplot as plt # Chart config plt.rcParams['figure.figsize'] = (12, 6) # Ensure assets directory os.makedirs("assets", exist_ok=True) # Load solar data data = pd.read_csv( "../assets/datasets/time_series_solar.csv", parse_dates=["Datetime"], index_col="Datetime", ) series = data["Incoming Solar"] # Resample to daily series_daily = series.resample("D").sum() # Compute autocorrelation, acf = Auto Correlation Function # Compares against lags up to a year away # acf_scores = acf(x=series_daily, nlags=365) # Compute partial autocorrelation # pacf_scores = pacf(x=series_daily, nlags=365) # Convience functions to do math and plot plot_acf(series_daily, lags=365) plt.savefig("assets/autocorrelation.png") plot_pacf(series_daily, lags=365) plt.savefig("assets/partion_autocorrelation.png")