Blog

Predikce maloobchodního prodeje v Qlik Sense

Martin Juráček

Freelancer

V předchozím článku jsem se pokusil přiblížit, proč je dobré posouvat se za hranice datové analytiky směrem k data science. Tento příspěvek bude trochu techničtější. Ukážeme si, jak jednoduše lze vytvořit predikci prodeje přímo v BI nástroji Qlik Sense.

Predikce založené na machine learningových technikách nebývají nativní součástí BI nástrojů. Oproti tomu open-source programovací jazyky RPython, které jsou pro machine learning často využívány, jsou ideálními kandidáty. Možnost maticových výpočtů a velké množství balíčků zaměřených na machine learning, statistiku a optimalizační úlohy je předurčují pro tento typ zadání. Výhody, které s sebou R/Python přináší, by však rozhodně neměly být výsadou pouze data science specialistů. BI nástroje a data science by se měly vzájemně doplňovat. Pokud nastavíme komunikaci mezi BI nástroji a R/Pythonem, získáme dvě základní pozitiva:

  • Uživatelé BI nástrojů se budou moci rozhodovat na základě modelů, které vytvoří data science specialisté
  • Uživatelé budou schopni využívat pokročilé statistické a optimalizační metody, aniž by museli ovládat syntaxi jazyků R nebo Python (například predikci prodeje).

Data science v Qliku

V případě Qliku je komunikace s externími výpočetními jazyky zprostředkována pomocí tzv. Server Side Extension (SSE). Velmi zjednodušeně:

  1. Qlik připraví potřebná data a odešle je do R/Pythonu
  2. V R/Pythonu proběhnou výpočty (odhad modelu, vytvoření výstupů modelů, predikce atd.)
  3. R/Python odešle zpět do Qliku data a ten je následně vizualizuje.

Existuje přitom více možností, jak tuto komunikaci vyvolat:

  • V data load editoru Qliku (tam, kde píšete Qlik skript) napíšete R/Python skript a zadáte, která data se mají z Qliku odeslat. Následně po proběhnutí reloadu aplikace se R/Python skript vyhodnotí a vrátí do Qliku novou tabulku.
  • Přímo v aplikaci je možné nadefinovat novou metriku, která bude vypočítána externě v R/Pythonu na základě údajů, které pošleme z Qliku
  • Nadefinováním nové funkce, která se bude tvářit stejně jako nativní Qlik funkce, ale její výpočet bude probíhat externě v R/Pythonu. Takovou funkci je potom možné volat přímo v aplikaci jako metriku nebo v Qlik skriptu

Právě poslední variantu využil Nabeel Asif pro vytvoření SSE plug-inu PyTools. Je to vlastně soubor Python funkcí pro machine learning, které lze volat z Qliku (postup, jak PyTools nainstalovat, najdete zde). Zpracoval přitom i funkce pro nástroj Prophet — ten jsme využili i v předchozím článku.

SSE Qlik
Ukázka volání Python skriptu
SSE Qlik
Ukázka volání předvytvořené funkce.

Predikce prodeje maloobchodní společnosti

Přejděme k příkladu z minula. Firma se sítí maloobchodních prodejen potřebuje predikovat budoucí prodej v konkrétních dnech. V tomto příspěvku nepůjdeme do hloubky toho, jak by měl správně vypadat proces tvorby a testování predikčního modelu, ale spíše si ukážeme, jak jednoduché je zavolat takto předdefinovanou funkci přímo z Qlik aplikace.

Prophet má několik dobrých vlastností. Jednou z nich je, že sám automaticky detekuje a počítá sezónnosti. Pokud mu pošleme z Qliku data o historických prodejích, sám automaticky vytvoří roční a týdenní sezónní složku. Pouze na základě této časové řady tedy dokážeme jednoduše získat poměrně dobrou predikci. K tomu ještě pro naše potřeby přidáme informaci o tom, které dny mají promo akce.

Do předvytvořeného line chartu následně stačí přidat novou metriku: PyTools.Prophet_Multivariate([Date], Sum(#Sales), Promo, “, “, ‚freq=D‘). V podstatě pouze voláme funkci Prophet_Multivariate z SSE plug-inu PyTools a posíláme data z Qliku Date, #Sales, Promo. Parametrem ‚freq=D‘ říkáme, že chceme vytvořit predikci s denní frekvencí a prázdné uvozovky jsou místem, kam bychom mohli doplnit další nepovinné parametry. Výsledek:

Predikce

Vraťme se ještě na chvíli k možnostem, jak vyvolat externí výpočet v R nebo Pythonu. Velkou výhodou komunikace Qlik – R/Python přes SSE je, že v případě volání funkce nebo skriptu z Qlik aplikace probíhá výpočet až v daném okamžiku. Jinými slovy, Qlik aplikace odešle do R/Pythonu data, která máte vyfiltrovaná. Pro vytvoření predikcí jednotlivých prodejen nám pak stačí tyto prodejny pouze vyfiltrovat. Na dalším obrázku můžeme vidět, jak se nový výpočet přepočítává v momentě aplikování filtrů. V případě náročnějších výpočtů je dobré mít toto na paměti a výsledky předkalkulovat při reloadu Qlik aplikace.

Filtrování predikce

Věřím, že jsem ve vás vzbudil zájem o posouvání hranic analytiky Qlik Sense. Pokud vás predikce jako téma zajímají nebo máte nějaké otázky, neváhejte mě kontaktovat.

Budu vděčný za jakékoli připomínky, podněty či inspirace v komentářích nebo e-mailem na juracek@emarkanalytics.com
.

Martin Juráček
Freelancer

Mohlo by vás zajímat

Predikce 2026: Proč se AI bez důvěry v data nikdy nedostane do řízení firem

Na Qlik Sales Kick Off 2026 zaznělo mnoho vizí o budoucnosti AI. Jedna věc ale...

Creative visualisations in Qlik Sense: Density plot

Pro některé lidi je jednou ze slabin Qlik Sense omezený počet vizualizací, ale s trochou...

Martin Kostic︱Top 5 books that influenced my life in 2021

Pokud si pamatuji, vždy jsem si užíval „konzumování znalostí“ z knih přímo do svého mozku....

Promluvme si o vašich datech.

Ať už řešíte plánování, reporting nebo AI, navrhneme další krok, který bude dávat smysl v kontextu vašeho byznysu.