Kartais versle prireikia spręsti uždavinius, kurių sprendimams nepakanka standartinių Qlik Sense įrankių. Gali prireikti rašyti labai sudėtingą kodą. Tačiau Qlik Sense variklio galimybės gali būti praplėstos tokių išorinių programų, kaip R, Phyton, Java ar C#, panaudojant analitinių jungčių funkcionalumą (Advanced Analytics Integration AAI).
Kaip matyti iš 1 pav., Qlik Sense esančius duomenis galima perduoti R‘ui, kuris atlieka skaičiavimus ir rezultatą vėl grąžina į Qlik Sense. Duomenų perdavimas iš Qlik Sense gali būti atliekamas tiek aplikacijos kode, tiek vizualizacijos objektuose.
Visą techninę informaciją, kaip instaliuoti R programą ir kaip užtikrinti ryšį su Qlik Sense, galima rasti knygoje „Hands-On Business Intelligence with Qlik Sense“ arba Qlik bendruomenės tinklaraštyje.
Apžvelgsime, kaip Qlik Sense ir statistinės programos R integracija padeda išspręsti Prekių krepšelio analizės (Market Basket Analysis) uždavinį.
Prekių krepšelio analizė padeda nustatyti, kokios prekės tikėtina bus perkamos kartu. Pavyzdžiui, jeigu klientas perka Prekę A ir Prekę B, tai tikėtina, kad pirks ir Prekę C (žymima {A, B}->{C}), nes gamins patiekalą A. Tada būtų galima šias tris prekes išdėstyti parduotuvėje greta ir taip paskatinti klientus dar daugiau pirkti.
Prekių krepšelio analizėje yra naudojamos asociacijų taisyklės, kurios padeda įvertinti tikimybę, kad prekės bus nupirktos kartu. Asociacijų taisyklės yra apibūdinamos trimis indeksais: support; confidence ir lift.
- Support – tai dažnis kiek kartų tiriamas prekių rinkinys pasikartojo transakcijose.
Support {Prekė A -> Prekė B} = frq(A -> B) / N = 2/4 = 1/2 , t.y. 50 % iš visų transakcijų, pusėje pasitaikė ir prekė A, ir Prekė B.
Kvito Nr. | Prekės |
Nr_10 | Prekė A |
Nr_10 | Prekė B |
Nr_10 | Prekė C |
Nr_20 | Prekė A |
Nr_20 | Prekė B |
Nr_30 | Prekė A |
Nr_30 | Prekė D |
Nr_40 | Prekė C |
Nr_40 | Prekė E |
Nr_40 | Prekė F |
- Confidence – tai tikimybė, kad taisyklė su preke, nurodyta kairėje taisyklės pusėje, pasikartos (bus teisinga) su naujomis transakcijomis.
Confidence {Prekė A-> Prekė B} = Support(A->B) / Support (A) = (2/4) / (3/4) = 2/3 = 0.666…, t.y. iš visų atvejų, kai transakcijoje buvo prekė A, 67% atvejais pasitaiko ir prekė B. Kuo didesnis confidence procentas, tuo didesnė tikimybė, kad Prekė B taip pat pasirodys transakcijoje, jeigu yra ir prekė A. Išvados padarytos remiantis confidence rezultatu turi būti vertinamos atsargiai, nes šis indeksas neatsako ar tarp prekių yra ryšys, ar jos atsitiktinai kartu yra tose pačiose transakcijose. Tam reikia naujo indekso, kuris atsižvelgia į abiejų prekių populiarumą.
- Lift {Prekė A -> Prekė B} = Support (A->B) / (Support (A) * Support (B)) = (2/4) / (3/4*2/4) =4/3=1.333… Jeigu lift indeksas yra lygus 1, tai reiškia, kad tarp prekių nėra jokios priklausomybės. Jeigu lift yra daugiau nei 1, tai reiškia, kad prekių pirkimas nėra atsitiktinis, t.y. jeigu perkama prekė A yra tikėtina, kad bus perkama ir prekė B.
Pažvelkime į Prekių krepšelio analizės uždavinio sprendimą. Tarkime, turime 16 pirkimo kvitų ir po transformacijų Qlik Sense transakcijų duomenų struktūra atrodo taip:
Pats duomenų failas yra čia: Duomenys_MBA
Kitas žingsnis būtų asociacijų taisyklių suradimas, naudojantis Apriori algoritmu. O būtent šiuos skaičiavimus ir atliks R programa. Naudojant funkciją R.ScriptEvalExStr perduodami transakcijų duomenys (receipts{Number, Products}) [2 pav. 1 dalis], o pats R kodas aprašomas kintamuoju vRscript [2 pav. 2 dalis].
R programa turėtų grąžinti asociacijų taisyklių trijų indeksų vertes: support, confidence ir lift, bet nėra funkcijos, kuri leistų grąžinti lentelę su keliais duomenų stulpeliais, ir, geriausiu atveju, galima grąžinti duomenų vektorių. Funkcijos R.ScriptEvalExStr rezultatas yra tekstinio tipo vektorius, todėl visi reikalingi indeksai yra apjungiami į vieną stulpelį (3 pav). Daugiau informacijos apie R funkcijas naudojamas Qlik Sense galima rasti čia.
O Qlik Sense kode reikalingi indeksai yra atskiriami ir pavaizduojami grafiškai (4 pav):
Asociacijų taisyklės apskaičiuotos jau iš anksto nustačius, kad bus nagrinėjami ryšiai {vienas -> vienas}, o ne {daug -> vienas}. Jeigu norėtumėme analizuoti asociacijų taisykles su prekių rinkiniais, reiktų ištrinti šiuos Apriori funkcijos argumentus: maxlen ir minlen (5 pav.). Daugiau informacijos apie Apriori parametrus galima rasti čia.
Rengiantis apskaičiuoti asociacijos taisykles, reikalinga nustatyti pirmines support ir confidence reikšmes. Pavyzdyje support nustatyta 10 %, confidence – 80 %, t.y. turi būti pateikiamos taisyklės tokiems prekių rinkiniams, kuriuos galime rasti bent 10-tyje % transakcijų, o „dešinėje“ taisyklės pusėje esanti prekė būtų bent 80 % atvejų. Paprastai pirminiai parametrų nustatymai priklauso nuo verslo specifikos: transakcijų kiekio, prekių populiarumo.
Keli prekių krepšelio analizės su Qlik Sense pavyzdžiai. Pirminėje analizės stadijoje atrenkamos taisyklės, kurios turi didžiausią support ir confidence procentą, o po to taisyklė su didžiausiu lift indeksu – {Vynas}->{Sūris}, tai reiškia tikimybę, kad šios dvi prekės gali būti nuperkamos kartu:
Kitame pavyzdyje jau tikslingai pasižymima dominanti prekė (Žurnalas) ir vėlgi, pasirinkus didžiausią lift reikšmę, randama labiausiai tikėtina prekė (Vynas), kuri gali būti nuperkama kartu:
Paskutiniame pavyzdyje priklausomybių rato diagramoje (Dependency wheel chart) pasirenkama prekė, kuri dažniausiai pasikartoja „dešinėje“ asociacijų taisyklių pusėje – šiuo atveju Sūris, o vėliau prekė su didžiausia lift reikšme (tamsiausia spalva) – Vynas:
Remiantis surastomis priklausomybėmis būtų galima koreguoti prekių išdėstymą parduotuvėje, tam tikrų nuolaidų ar akcijų taikymą ir taip pagerinti pardavimų rezultatus bei pasiekti užsibrėžtus tikslus.
P.S. Asociacijų taisyklių suradimas (nebūtinai jau apžvelgtu Apriori algoritmu) taip pat yra naudojamas ir elektroninės prekybos svetainėse – skiltyje „Pirko kartu su:“ ar „Related sponsored items“ (6 pav.):
Parengė: Algis Kulionis, duomenų vizualizacijos specialistas