• API

›Detection

Forecasting

  • Autoregressive Neural Network (AR_net)
  • Quadratic Model
  • Linear Model
  • KatsEnsemble
  • Empirical Confidence Interval
  • STLF
  • Theta
  • Holt-Winter’s
  • Prophet
  • SARIMA
  • ARIMA

Detection

  • BOCPD: Residual Translation
  • BOCPD: Bayesian Online Changepoint Detection
  • Outlier Detection
  • ACFDetector
  • Seasonality Detector
  • Cusum Detector

TSFeatures

  • TsFeatures

Multivariate

  • Multivariate Outlier Detection
  • VAR

Utilities

  • Model Hyperparameter Tuning
  • Backtesting
  • Time Series Decomposition
  • Dataswarm Operators

Seasonality Detector

This is a model selection based seasonality detector, and the procedure is described as follows,

  1. Given all possible seasonalities we generated all possible combinations
  2. Fit Prophet for each combination
  3. Do model evaluation and select the best performed one
  4. The corresponding seasonality (or seasonalities) are determined

The intuition is to trust the empirical evaluation (in terms of averaged MAPE) with our back testing procedure for a given dataset + Prophet. One can also use other metrics such as AIC, BIC, etc.

API

class SeasonalityDetector(data,
                          train_percentage,
                          test_percentage,
                          sliding_steps)

Parameters

data: input data with TimeSeriesData format
train_percentage: percentage for training data set
test_percentage: percentage for testing data set
sliding_steps: steps for a moving sliding window

Methods

`detector``(``seasonality``)`
`# seasonality default as ["daily", "weekly", "yearly"]`
`# return the detected seasonalities from the given list of possible seasonalities`

Example

We use the classical Peyton Manning data for demo.

import pandas as pd
from infrastrategy.kats.detectors.seasonalityDetection import SeasonalityDetector

DATA = pd.read_csv("../data/example_wp_log_peyton_manning.csv")
DATA.columns = ["time", "y"]
DATA = DATA[(DATA.time > '2012-05-01') & (DATA.time < '2013-05-01')]
TSData = TimeSeriesData(DATA)
SD = SeasonalityDetector(data=TSData)
SD.detector()
# return {'seasonality_presence': True, 'seasonalities': ['weekly']}
← ACFDetectorCusum Detector →
  • API
    • Parameters
    • Methods
  • Example
Kats Project
More
GitHubStar
Facebook Open Source
Copyright © 2021 Kats Project @ Facebook