ACFDetector
The detector using autocorrelation function (ACF) to detect seasonality. It will check if there are significant autocorrelations and try to figure out the length of the seasonality.
API
# Model class
class ACFDetector(data)
Method
detector(lags=None, diff=1, alpha=0.01) # run detector, returns Dict with keys seasonality_presence and seasonalities
plot() # plot ACF and decompsed resutl if decomposed
remover(decom=TimeSeriesDecomposition, model="additive", decompose_any_way=False) # remove seasonality returns decomosition results
Parameters
lags: int, unmber of lags in ACF, default is 1/3 of the length of the input data
diff: int, number of diffs apply to the data before ACF
alpha: float, significant level for the autocorrelation
decom: decomposition method in kats
model: what kind of model of the decomposition use, either "additive" or "multiplicative"
decompose_any_way: bool, decompose time serires even if not seasonality detected
Examples
from infrastrategy.kats.detectors.seasonalityDetection import ACFDetector
from infrastrategy.kats.consts import TimeSeriesData
import pandas as pd
import numpy as np
df = pd.read_csv('../data/example_air_passengers.csv')
df.rename(columns={'ds':'time'}, inplace=True)
timeseries = TimeSeriesData(df)
# initialize detector
detector = ACFDetector(timeseries)
# run detector
detector.detector(diff=1, alpha = 0.01)
{'seasonality_presence': True, 'seasonalities': [12]}
# seasonality decomposition, returns trend, seasonal, rem term
detector.remover()
# plot acf and decompsition results
detector.plot()