Omzet voorspelling in Power BI

De omzet uit het verleden analyseren is interessant en leerzaam, maar soms wil je een blik in de toekomst werpen. Is de verwachting reëel dat mijn omzet volgend jaar gaat stijgen en met hoeveel? De omzet inschatten is sowieso van belang voor het vaststellen van budgetten, targets van sales en leveranciers bonussen. Van oudsher doen we dit met de hand, eventueel ondersteund door een model in Excel van de werkelijkheid. Met een grote hoeveelheid gegevens in een data platform en toegankelijke rekenkracht, willen we dit nauwkeuriger, vaker en in Power BI combineerbaar maken.

Afbeelding1 blog

Een groothandel met een SAP ERP omgeving had ons benaderd met de vraag of Ensior hun omzet 12 maanden vooruit konden voorspellen. Deze klant gebruikt een Power BI Premium omgeving. De manier van voorspellen moet hier inpassen. Daarom hebben we zowel de ingebouwde Power BI forecast methode als verschillende modellen in Python beoordeeld.

Er was data van 2019 t/m 2022 in de database beschikbaar. Om te testen hoe accuraat een model de omzet 12 maanden vooruit voorspelt, hebben we de modellen gemaakt op data van 2019 t/m 2021 en vervolgens getest op de data van 2022. In onderstaande grafiek staan deze gegevens op maandbasis afgebeeld.

Power BI voorspelmodel

In Power BI is het mogelijk om de forecast functie te gebruiken bij een lijn grafiek, dat zullen we hier het Power BI voorspelmodel noemen. Het Power BI voorspelmodel gebruikt een exponential smoothing model om de voorspelling te doen. We hebben het Power BI voorspelmodel ingesteld met een seasonality van 12 maanden. De laatste 12 maanden hebben we niet meegenomen in het model en er is 12 maanden vooruit voorspeld. Daardoor kunnen we de daadwerkelijke omzet met de voorspelde omzet vergelijken. Als we naar de voorspelling kijken ten opzichte van de daadwerkelijke omzet, zien we dat de voorspelling het patroon van de omzet redelijk volgt. Dit model zou al goed een richting kunnen aangeven hoe de omzet zich mogelijk gaat ontwikkelen.

Het voordeel aan een voorspelmodel in Power BI is dat het snel te implementeren is en dat er geen programmeerkennis voor nodig is. Deze visualisatie is interactief en laat tooltips zien. Je kunt ook de onderliggende data exporteren, inclusief de waarden van de voorspelling. Een groot nadeel is echter dat je de waarden van de voorspelling niet op een andere manier kunt visualiseren. Een ander nadeel is dat de model optimalisatie onder water gebeurt en je hier weinig invloed op hebt. Deze nadelen zorgden ervoor dat we ons gingen verdiepen in Python modellen.

Afbeelding2 blog
Tabel meetwaarden

Python in Power BI Desktop

We wilden vergelijken of we in Python een voorspelmodel konden maken dat accuratere voorspellingen geeft dan Power BI. We hebben hiervoor verschillende modellen geïmplementeerd, namelijk Lineaire Regressie, Extreme Gradient Boosting, SARIMA en ETS. Om te komen tot een set aan modellen om te testen is het belangrijk dat je kennis hebt van je data en van statistiek. Wij hebben eerst de data geanalyseerd en literatuur onderzoek gedaan om te besluiten welke modellen potentieel goed zouden werken op deze dataset. De modellen hebben we onderling vergeleken door een aantal meetwaarden te berekenen op de voorspelling van 2022. In onderstaande grafiek zie je de verschillende modellen met de meetwaarden. Naar aanleiding van deze waarden hebben we besloten met het ETS model verder te gaan.

Met een lokale installatie van Python is het mogelijk om een Python visualisatie in Power BI desktop te maken. Hiervoor selecteer je de Python visualisatie en sleep je de velden die je nodig hebt naar de visualisatie toe. Er wordt vervolgens een standaard Python script gegeneerd door Power BI, dat een pandas dataframe maakt van die velden. Dit dataframe gebruik je in de rest van je code. Je kunt je Python script onder het stukje standaard script plakken om de visualisatie te genereren.

Het voordeel van een voorspelmodel in een Python visualisatie is dat het mogelijk is om geavanceerde visualisaties te maken, doordat je alles zelf kunt programmeren. Je kunt allerlei modellen toepassen en die vervolgens visualiseren op de manier dat je dat zelf wil. Zodra je de Python code hebt geschreven, is het implementeren in Power BI zo gebeurd. Het nadeel van deze visualisatie is dat je geen wijzigingen kunt doen in Power BI online. Bij deze visualisatie zijn geen tooltips en interacties mogelijk. Als je de achterliggende data exporteert, krijg je alleen de input data te zien, dus niet de waarde van de voorspellingen.

Afbeelding3 blog
Voorspelling Python SQL

Python in SQL Server Machine Learning Services

Vanwege bovenstaand nadeel dat de data binnen het Python frame van Power BI blijft, hebben we ervoor gekozen Python apart te draaien en periodiek tijdens het nachtelijke laadproces van de SAP ERP gegevens vast te leggen. Om dit te kunnen doen, is er een connectie tussen Python en SQL Server nodig. Hoe je deze connectie instelt, kun je in mijn andere blog lezen. Vervolgens hebben we de objecten toegevoegd aan het bestaande model zodat we volledige controle hebben over het combineren van de voorspellingsgegevens met gerealiseerde waarden.

Het voordeel van een voorspelmodel in Python en SQL Server is dat je in Power BI op verschillende manieren je data kunt visualiseren en combineren. Je kunt ook meer gecompliceerde modellen gebruiken dan het standaard Power BI voorspelmodel. Het nadeel van deze methode is dat het wat tijd kost om de connectie te maken tussen Python en SQL Server en hier vervolgens je Python script werkend in te krijgen.

Voorspelling incl omzet Python SQL

Conclusie

In deze blog hebben we je 3 manieren laten zien van het presenteren van de output van een voorspelmodel in Power BI. Welke manier voor jou het beste is, is afhankelijk van je kennis en je behoeften. Hopelijk kun je met de blog een goede keuze maken.

We hebben met de gekozen methodiek de bestaande voorspelling een stuk betrouwbaarder en periodiek gemaakt met minder inspanning. Er is nu ook een rollende forecast beschikbaar. Dit heeft grote voordelen voor de organisatie. Voor het voorspellen van de omzet op klantniveau hebben we overigens een ander model toegepast. Een model dat de omzet per klant weliswaar veel vaker beter voorspelt dan in de oude situatie, maar die statistisch gezien nog veel verbeterd kan worden.

Ensior B.V. 2024 All rights reserved
Deze website maakt gebruik van cookies: meer informatie