Tento článek je o funkci FORECAST.ETS.SEASONALITY, která projde data v časové řadě, a pokud najde určitou sezónnost, zapíše číslo, po jakém období se data opakují.

Funkce FORECAST.ETS.SEASONALITY je dostupná od Excelu verze 2016.

Funkci si ukážeme na následujícím příkladu, kde jsou vypsané hodnoty návštěvnosti obchodu. Sezónnost, kterou budeme hledat pomocí funkce, je z dat jasně patrná na první pohled. Návštěvy jsou výrazně větší během pracovních dní a menší o víkendech, sezónnost je tedy týdenní – sedmidenní.

forecast.ets.seasonality

Funkci zapíšeme takto:

  • =FORECAST.ETS.SEASONALITY(B:B;A:A)

Výsledkem bude číslo 7.

Parametry:

  • B:B – sloupec s hodnotami, které patří k jednotlivým datům
  • A:A – sloupec s časovými údaji
  • Dokončení dat – třetí, nepovinný argument definuje, jak se má zacházet s chybějícími hodnotami. Pokud nezadáme nic nebo zadáme jedničku, budou se chybějící hodnoty průměrovat aritmetickým průměrem z hodnot sousedních. V případě zadání nuly se chybějící hodnoty považují za nuly (což se myslím dá použít jen opravdu výjimečně).
  • Agregace – čtvrtý, nepovinný argument dává na výběr ohledně toho, jak řešit situaci, kdy na jeden časový úsek připadá více hodnot než jedna. Defaultně je nastavená nula, která hodnoty průměruje. Dají se ale (myslím, že jen výjimečně) použít i další funkce, viz nápověda.

Pokus mě vychází, že aby Excel sezónnost zachytil, musí se v datech zopakovat dva až třikrát.

Je zřejmé, že v datech se může vyskytovat sezónních trendů více, např. sezónnost v rámci dne, v rámci týdne, v rámci roku. Myslím že funkce FORECAST.ETS.SEASONALITY si s více sezónnostmi neporadí, je ale samozřejmě možné z časových hodnot vydělit příslušné části – časy, dny v týdnu, měsíce… a sledovat pak sezónnost na nich.

Neznám algoritmus výpočtu této funkce, a kdybych ho znal, asi bych ho stejně nepochopil 🙂 Dá se ale předpokládat, že pracuje s nějakou hodnotou spolehlivosti, která když je překročena, sezónnost vyjde, a když není, zobrazí se nula, což znamená, že sezónnost nebyla nalezena. Tato hranice je někde “vevnitř” nadefinována a pomocí parametrů funkce s ní nemůžeme pracovat.

Soubor s ukázkou je ke stažení tady