Deze blog gaat over forecasting met Process Mining, functionaliteit die beschikbaar is in de MonkeyMiner software. Forecasting richt zich op het maken van numerieke voorspellingen. Wat kunnen we hiermee? De toepassingen zijn heel divers. Forecasting wordt gebruikt om vraag naar bepaalde producten te voorspellen, zodat bijvoorbeeld voorraad efficiënt beheerd kan worden of de capaciteit van een fabriek optimaal ingezet kan worden. Een ander voorbeeld is het voorspellen van het aantal bezoekers aan een restaurant om daar een personeelsplanning op af te stemmen.

Forecasting kan uiteraard op basis van interviews, workshops, vragenlijsten of meningen van marktexperts gebeuren. Deze doorgaans kwalitatieve aanpakken gebruiken organisaties vaak voor voorspellingen op lange termijn of wanneer een bepaalde markt heel erg in beweging is.

Twee aanpakken voor data-driven forecasting

Als data scientists richten wij ons vooral op forecasting aan de hand van historische data; een kwantitatieve aanpak. Dit werkt uiteraard alleen als er bepaalde patronen in de historische data te ontdekken zijn. In deze data-driven aanpak kunnen we twee werkwijzes identificeren: de causale aanpak en time series analysis.

In de causale aanpak gaan we op zoek naar de variabelen die invloed hebben op hetgeen we proberen te voorspellen. Voor de verkoop van ijs zijn bijvoorbeeld de temperatuur, of het weekend of een feestdag is en de hoeveelheid zonneschijn aardige voorspellers. Vervolgens proberen we hier een model op te “fitten” aan de hand waarvan we voorspellingen proberen te doen. Een voorbeeld van deze manier van werken is het bij veel mensen bekende lineaire regressie.

De tweede manier van forecasting, waar we ons in deze blogpost op richten, is time series analysis (tijdreeksanalyse). Het grote voordeel is dat deze methode toepasbaar is met zeer weinig data. Het enige wat we nodig hebben is een reeks met data en getallen, zoals bijvoorbeeld:

data

Zoals duidelijk mag zijn kunnen we met deze aanpak geen causale verbanden vinden; we hebben namelijk geen (mogelijk) verklarende variabelen in de data. Toch valt er in sommige gevallen al wel een hoop te halen uit deze hele beperkte dataset en kunnen we hier hele bruikbare voorspellingen mee maken. Overigens kunnen twee aanpakken ook gecombineerd worden.

Het toepassen van Forecasting met Process Mining

Met MonkeyMining richten wij ons op process mining. Om process mining toe te kunnen passen wordt data aangeleverd in de vorm van events en kun je forecasting met Process Mining gaan toepassen. Dit ziet er bijvoorbeeld zo uit:

data

Voor elk product (of zaak) zien we op welk moment een bepaalde activiteit heeft plaatsgevonden. We zien hier dat er allerlei verschillende activiteiten in het log staan en dat de tijdslijn niet per definitie regelmatig is. Met MonkeyMining kunnen we data met dit soort onregelmatige timestamps converteren naar een regelmatige time series. Hiervoor kunnen we een activiteit selecteren en het aantal keer aggregeren op bijvoorbeeld dagniveau. In het onderstaande voorbeeld kunnen we bijvoorbeeld de activiteit ‘Ontvangst ruw product’ selecteren en aggregeren op dagniveau om het aantal te ontvangen stuks te kunnen forecasten.

Time series analysis

In time series analysis proberen we de data te ontrafelen in een seizoen, cyclus, trend en random waardes. Dit houdt het volgende in:

  •  Trend: de lange termijn-richting van een tijdsreeks. Er is bijvoorbeeld een opwaartste trend zijn als er in de loop van de tijd steeds meer vraag komt naar een bepaald product.
  • Seizoen: dit is een vaste periodieke fluctuatie. De vraag kan bijvoorbeeld per dag van de week verschillen of per kalenderseizoen.
  • Cyclus: net als het seizoen betreft dit een periodieke fluctuatie, maar deze staat minder vast dan in het geval van een seizoen. Een voorbeeld hiervan is de periodieke fluctuatie van de economie.
  • Random: dit is wat overblijft na het weghalen van de eerder drie genoemde componenten. Er zijn ook methodieken om hier structuren in te vinden (dus de term random kan wat verwarrend zijn).

Wanneer we een dergelijke tijdsreeksanalyse doen maken we een visualisatie van de trend, seizoen, cyclus en random van de data. In de onderstaande voorbeelden zien we bijvoorbeeld een compleet verschillende decomposie voor verschillende typen producten die aan dezelfde fabriek geleverd worden. De donkerblauwe lijn is het aantal geleverde te verwerken producten. Het eerste product heeft een heel duidelijk zichtbare jaartrend (okerkleurig) en een vrij kleine weektrend (grijze zaagtand). De andere heeft een kleine jaartrend (oker rond de 0) en juist een hele grote weektrend (grijs).

data

Reeks 1: de donkerblauwe lijn geeft de ruwe data weer, de okerkleurige lijn is het jaarseizoen en de grijze lijn is het weekseizoen. De lichtblauwe lijn is de (niet echt op-of neergaande) trend. Het jaarseizoen heeft een grote invloed.

data

Reeks 2: de donkerblauwe lijn geeft de ruwe data weer, de okerkleurige lijn is het jaarseizoen en de grijze lijn is het weekseizoen. De lichtblauwe lijn is de iets neergaande trend. Het jaarseizoen heeft geen grote invloed en het weekseizoen heeft een hele grote invloed (deze lijn gaat heel erg op en neer). Er is dus erg veel verschil tussen de dagen in de week.

Kwaliteit van de voorspelling

Er bestaan verschillende aanpakken om tot voorspellingen te komen in time series analysis. Uiteindelijk willen we hier niet alleen een voorspelling uit krijgen, maar ook iets kunnen zeggen over de kwaliteit van de voorspelling. Om dit voor elkaar te krijgen verdelen we de time serie in een training data set en een test data set. Over het algemeen kun je hier de laatste paar dagen of weken voor pakken, maar ook meer geavanceerde verdelingen van de data voor validatiedoeleinden zijn mogelijk.

Met MonkeyMining draaien we automatisch verschillende algoritmes en de geforcaste waarden op basis van de training set vergelijken we met de daadwerkelijke waarden uit de test test. Vervolgens passen we bepaalde metrieken toe om te kijken welk algoritme de beste fit heeft. We maken ook een vergelijking met hele simpele aanpakken, zoals het nemen van het gemiddelde waarde of de laatste waarde. Op deze manier hebben we een referentiekader hebben om te bepalen of toepassing van een algoritme überhaupt nut heeft.

Voorbeelden van forecasts

data

Reeks 1: de rode lijn geeft de voorspelde waarde weer. Het donkergrijze vlak geeft een zekerheidsinterval van 80%, het lichtgrijze vlak een zekerheidsinterval van 95%.

data

Reeks 2: de rode lijn geeft de voorspelde waarde weer. Het donkergrijze vlak geeft een zekerheidsinterval van 80%, het lichtgrijze vlak een zekerheidsinterval van 95%.

data

Reeks 3: we zijn hier ingezoomd op het laatste deel van de grafiek. De rode lijn geeft de voorspelde waarde weer. Het donkergrijze vlak geeft een zekerheidsinterval van 80%, het lichtgrijze vlak een zekerheidsinterval van 95%.

Zelf aan de slag met Process Mining binnen jouw organisatie?

Schrijf je in voor de gratis Masterclass!

Linda Terlouw

Linda Terlouw

Dr. ir. Linda Terlouw holds both an MSc in Computer Science and an Msc in Business Information from the University of Twente. Her PhD research focused on modularization of organizations and IT systems using Enterprise Ontology and Service-Oriented Architecture. At the moment she is mainly working on data science (e.g. forecasting), data visualization and process mining (www.monkeymining.com). Before she started her own company, Icris, she worked for IBM and Ordina (a large Dutch consulting firm). Clients she has been working for include several Dutch water suppliers, a large municipality, several factories, and the Ministry of Defense. She is lector (professor) at the Avans+ University of Applied Sciences and teaches at Nyenrode Business University.

Ben je overtuigd?

Begin gelijk met de MonkeyMiner!

GRATIS MASTERCLASS