Home / Nieuws / Demand Forecasting (deel 1)
19 mei 2022
Door: Goran dobričić

Demand Forecasting (deel 1)

Featured image for a blog about Demand Forecasting

Introductie

In deze blogserie ga ik het hebben over ‘Vraagvoorspelling in Microsoft Dynamics 365 for Finance and Operations’. We zullen verschillende parameters en prognosemethodologieën uitleggen en hoe je Azure Machine Learning kunt gebruiken om de behoefte in F&O te voorspellen.

Als we het hebben over vraagvoorspelling, verwijzen we naar het anticiperen op toekomstige vereisten (vraag) naar producten met behulp van verschillende methodologieën. Vraag is elk verzoek om goederen te leveren, zowel aan de eindklant  als voor consumptie in productie.

Vraagvoorspelling wordt gebruikt om de toekomstige vraag te voorspellen die onafhankelijk kan zijn, zoals de vraag van verkooporders (dus vraag naar gereed product), of afhankelijk kan zijn, zoals de vraag die wordt gecreëerd als vraag naar productiecomponenten. Afhankelijke vraag kan meestal worden afgeleid uit stuklijsten.

Vraagvoorspelling is, hoewel altijd met een zekere mate van onzekerheid, een zeer belangrijke informatiebron die wordt gebruikt bij zakelijke beslissingen. Vraagvoorspelling helpt :

  • Buffervoorraad verminderen: met een nauwkeurigere vraagvoorspelling kunnen bedrijven de buffervoorraad verminderen, waardoor de hoeveelheid contant geld die in die voorraad vastzit, wordt natuurlijk ook verminderd
  • Elimineer of beperk risico’s met betrekking tot inkoop en doorlooptijden: vraag naar artikelen met een lange doorlooptijd kan worden voorspeld en deze kunnen op tijd worden aangeschaft of geproduceerd om aan de werkelijke vraag te voldoen wanneer deze zich voordoet. Prognose stelt je in staat om vroegtijdig inzicht te krijgen in de behoefte naar producten. Zo koop je op tijd in en voorkom je dat je leverancier uitverkocht raakt
  • Verhoog de omzet: anticiperen op de vraag kan van invloed zijn op de inkoopstrategieën en kan daarom leiden tot gunstiger contracten met leveranciers. Aan de verkoopkant, vooral in de detailhandel, moeten klanten goederen tot hun beschikking hebben wanneer ze de goederen nodig hebben, anders verliest het bedrijf omzet
  • Anticiperen op capaciteitsvraag: wanneer de vraag wordt voorspeld, kunnen productiecapaciteiten worden gepland om aan de toegenomen vraag te voldoen. Dit kan aanzienlijke eisen stellen aan zakelijke beslissingen
  • Inzicht geven in budget en toekomstige cashflow: De vraag kan aangeven wanneer een grotere behoefte naar contanten zal worden gecreëerd en zakelijke beslissingen rond budgettering en cashflow stimuleren.

En meer…

 

METHODOLOGIEËN

Er zijn veel methoden om de toekomstige vraag te voorspellen, maar over het algemeen zijn ze onderverdeeld in drie hoofdprincipes:

  • Tijdreeksen: voorspel is gebaseerd op historische gegevens. Deze methodologie wordt meestal gebruikt wanneer er voldoende historische gegevens zijn, meestal in bedrijven die al lang actief zijn
  • Kwalitatieve analyse: deze methode steunt op meningen van experts, marktonderzoek etc. en wordt gebruikt wanneer er schaarse historische gegevens beschikbaar zijn. Het is gebruikelijk in nieuwe bedrijven of wanneer een nieuw product op de markt wordt geïntroduceerd
  • Causale modellen: deze methode is het meest complex, maar ook het meest geavanceerd en steunt op specifieke informatie over relaties tussen variabelen die de vraag op de markt beïnvloeden zoals concurrenten, economische krachten en andere sociaaleconomische factoren. Net als bij tijdreeksanalyses, zijn historische gegevens de sleutel tot het maken van een causale modelvoorspelling.

 

STUKJE WISKUNDE (EEN KLEIN BEETJE)

Zoals gezegd is een voorspelling nooit 100% nauwkeurig. We moeten echter weten hoe goed de voorspelling is. Zoals met al het andere, komt er wat wiskunde bij om ons te helpen. De nauwkeurigheid van de vraagprognose wordt gemeten door MAPE. Dit staat voor Mean Absolute Percent Error. Deze formule geeft een gemiddeld foutpercentage aan voor elke voorspelde waarde. De formule om MAPE te berekenen is:

waarbij At de werkelijke waarde is en Ft de verwachte waarde. Hun verschil wordt gedeeld door de werkelijke waarde At. De absolute waarde in deze verhouding wordt voor elk voorspeld tijdstip opgeteld en gedeeld door het aantal aangepaste punten. Laten we het onderstaande voorbeeld bekijken en uitleggen wat MAPE betekent:

Hier geven de rode pijlen de afwijking van de voorspelling van de werkelijke waarden. Op basis van de gegevens is MAPE 1,31%. Dit betekent dat onze voorspelling gemiddeld 1,31% lager ligt (best goed, toch?).

 

HOE WERKT HET PROGNOSEPROCES IN MICROSOFT DYNAMICS 365 FOR FINANCE AND OPERATIONS?

Microsoft Dynamics 365 for Finance and Operations gebruikt de tijdsreeks methodologie om de vraag te voorspellen. Dit betekent dat het op historische gegevens vertrouwt om de toekomstige vraag te voorspellen. Voor voorspellingsdoeleinden nemen we aan dat time series gegevens tijdsafhankelijk zijn en bepaalde patronen of kenmerken vertonen.

Prognose op basis van tijdsreeks methodologie is gebaseerd op historische gegevens als bron die wordt gebruikt om de vraagprognose te maken. Tijdsreeks bestaat uit de volgende vier componenten of variabelen:

  • Trend. Het toenemende of afnemende gedrag van de reeks in de tijd, vaak lineair. Zoals bijvoorbeeld de toenemende vraag naar elektrische auto’s
  • Seizoensgebondenheid: Herhaalde patronen of cycli van gedrag in de loop van de tijd zoals de toegenomen vraag naar zonnebrandmiddelen in de zomer
  • Cyclisch gedrag: dit soort gedrag treedt op wanneer gegevens een stijging of daling vertonen die geen vaste frequentie heeft. Dit verschilt van seizoensinvloeden omdat de seizoen patronen regelmatig voorkomen
  • Error: dit zijn variabiliteitsreeksen die niet door het model kunnen worden verklaard. Denk aan enorme een once-in-a-lifetime bestelling voor fietsbanden door een klant.

Later zullen we zien welke parameter bepaalt hoe deze kenmerken worden verklaard.

 

STRATEGIEËN VOOR HET GENEREREN VAN VOORSPELLINGEN

Er zijn drie strategieën voor het genereren van prognoses beschikbaar om de toekomstige vraag te voorspellen in D365FO:

  • Historische vraag kopiëren
  • Azure Machine Learning Service
  • Azure Machine Learning

Er zijn nu nog drie opties echter de laatste optie, Azure Machine Learning heeft een prognosemodel dat gebruikmaakt van Azure Machine Learning Studio (klassiek, deze is verouderd en wordt binnenkort verwijderd uit Azure.  Microsoft raadt aan om Azure Machine Learning Service te selecteren als je voor het eerst een vraagprognoses instelt of van plan bent en over te schakelen als je al Azure Machine Learning gebruikt voor prognoses.

Houd er rekening mee dat je moet inschakelen Azure Machine Learning Service for demand forecasting feature in Feature management om de tweede optie te zien.

Verderop in het blog zal ik uitleggen hoe je alle opties kunt gebruiken.

 

PARAMETERS VOOR VRAAGPROGNOSE

Elke strategie voor het genereren van prognose is afhankelijk van zijn eigen set parameters, deze zal ik in een later hoofdstuk beschrijven, maar ik zal beginnen met enkele voorwaarden die vereist zijn voor alle drie:

  • Vraagprognose-eenheid: je kunt deze vinden in Parameters voor vraagprognose. Dit is de standaardeenheid voor prognoses. Het hebben van één standaard prognose-eenheid houdt in dat er eenheidsconversie naar deze eenheid moet zijn voor elk item dat wordt voorspeld
  • Transactietypen: deze bepalen welke historische transacties in aanmerking komen voor het genereren van prognose.

Gebruikers kunnen kiezen tussen Verkooporders, Productieorders, Kanban jobs (productie en transfer), Offertes, Reguliere transferorders en (andere) uitgaande voorraadtransacties.

  • Prognosedimensies: je kunt dimensies kiezen om te bepalen hoe gedetailleerd jouw prognose zal zijn. Let op, de standaard dimensies die worden gebruikt, zijn Company, Site en Artikeltoewijzingssleutel. Extra dimensies kunnen worden toegevoegd. :Let op artikel-ID is niet verplicht. Dit betekent dat prognoses (bijvoorbeeld) kunnen worden gedaan voor een groep artikelen, op basis van Artikeltoewijzingssleutels.

Tip: start het voorspellen met weinig dimensies. Wanneer de vraag wordt voorspeld, hebben niet alleen meer dimensies invloed op de prestaties, maar wanneer historische gegevens worden verspreid, zal dit waarschijnlijk een onnauwkeurigere prognose opleveren.

  • Artikeltoewijzingssleutels: Zoals eerder aangegeven is de Artikeltoewijzingssleutel een verplichte dimensie. Dit houdt in dat je artikelen aan ten minste één Artikeltoewijzingssleutel moet toewijzen om er een prognose te genereren.
    – Opties instellen voor artikeltoewijzingssleutels: Het is mogelijk om Artikeltoewijzingssleutels in te stellen om verschillende transactietypes als bron te gebruiken of om verschillende algoritmen te gebruiken:

GRANULARITEIT KENMERK

Het Granulariteit kenmerk is een combinatie van voorspeldimensies waartegen de prognose wordt uitgevoerd. Je kunt voorspeldimensies definiëren op de pagina Parameters voor de vraagprognose. Wanneer de prognose wordt gegenereerd, bevat elke rij van de voorspelde gegevens een unieke combinatie van de ingeschakelde voorspeldimensiewaarden. Je kunt het granulariteit kenmerk zien op de pagina Gecorrigeerde vraagprognose:

PARAMETERS VAN PROGNOSE ALGORITME

Prognose algoritmen in Microsoft Dynamics 365 for Finance and Operations gebruiken verschillende parameters. Ik zal kort uitleggen wat elk van deze betekent. Het is belangrijk om te begrijpen welk gedrag hierdoor wordt gecontroleerd en op welke manier je deze kunt aanpassen om een prognose te genereren die het meest nauwkeurig is, of eigenlijk minder onnauwkeurig.

Strategie voor aanmaken van vraagprognose

Dit is onderdeel van Parameters van het prognose algoritme dat ik hierboven heb uitgelegd.

Forecasting model

Het Forecasting model bepaalt welk prognosemodel moet worden gebruikt. In D365FO zijn de volgende modellen beschikbaar. Onderstaand enkele  Wiki-links voor meer details:

De volgende opties instrueren het algoritme om combinaties te gebruiken:

  • ETS+ARIMA
  • ETS+STL
  • ALL.

Houd er rekening mee dat er een andere parameter is die Forecast model wordt genoemd en die niet moet worden verward met Forecasting model. Forecast models worden later uitgelegd.

Test set size percentage

Telkens wanneer de prognose wordt berekend, gebruikt het systeem een deel van de gegevens set om de prognose te berekenen, terwijl een deel van de gegevens wordt gebruikt om de nauwkeurigheid van de berekening te testen. Als u deze parameter bijvoorbeeld instelt op 25%, betekent dit dat 75% van de gegevens wordt gebruikt om de prognose te berekenen, terwijl 25% wordt gebruikt als een testset voor de berekening van de nauwkeurigheid van de prognose (MAPE). Over het algemeen is ongeveer 20% de goede waarde om mee te beginnen. Grotere waarden kunnen ook invloed hebben op de prestaties.

Confidence level percentage

Een betrouwbaarheidsinterval geeft aan wat het betrouwbaarheidsinterval is. Deze waarden fungeren als goede schattingen voor de vraagprognose. Een betrouwbaarheidsniveau van 95% geeft bijvoorbeeld aan dat er een risico van 5% is dat de toekomstige vraag buiten het bereik van het betrouwbaarheidsinterval valt. Hoe groter de waarde van het betrouwbaarheidsniveau percentage, hoe groter het gebied waarin we aannemen dat de vraag zal dalen. De parameter loopt van 1 tot 99. Deze waarde heeft invloed op hoe we de prognose bekijken, maar niet de werkelijke prognosewaarden zelf. De resultaten zijn te zien op de pagina Aangepaste vraagprognose

Minimum (and maximum) forecasted value

Dit getal geeft aan wat het systeem moet gebruiken als minimum van de maximale voorspelde waarde. Laten we bijvoorbeeld aannemen dat het systeem geen vraag naar het geselecteerde artikel en de geselecteerde periode voorziet. In dit geval retourneert de prognose normaal gesproken 0. Als we de minimumwaarde echter op 1 instellen, wordt deze geretourneerd als een voorspelde waarde. Hetzelfde geldt voor de maximale waarde: stel je voor dat het systeem de vraag naar 156 stuks van een specifiek artikel in een bepaalde periode voorspelt, maar we stellen de maximale waarde in op 150. In dit geval wordt de voorspelde waarde hoger dan 150.

Missing value substitution

Deze parameter specificeert wat er moet gebeuren als er hiaten in historische gegevens zijn. Het geeft aan hoe deze lacunes moeten worden opgevuld. De volgende opties kunnen worden geselecteerd: (numerieke waarde),

  • MEAN – gemiddelde waarde voor vorige en volgende gegevenspunten zou worden ingevoegd als vervangende waarde
  • PREVIOUS – vorige waarde wordt ingevoegd als vervangende waarde
  • INTERPOLATE LINEAR – geïnterpoleerde waarde wordt berekend met behulp van lineaire interpolatie en ingevoegd als vervangende waarde.
  • INTERPOLATE POLYNOMIAL – geïnterpoleerde waarde wordt berekend met behulp van polynomiale interpolatie en ingevoegd als vervangende waarde.

Vervanging van ontbrekende waarden moet zorgvuldig worden overwogen. Het kan gebeuren dat de waarde ontbreekt omdat er eigenlijk geen vraag naar was – u wilt dus niet zomaar wat waarde invoegen als vervanging; in plaats daarvan, in dit geval – zou het nul zijn.

Missing value substitution scope

In combinatie met ontbrekende waarden vervanging is het deze parameter die de reikwijdte van de ontbrekende waarden vervanging bepaalt. Deze parameter bepaalt of de waarden vervanging alleen van toepassing is op het datumbereik van elk afzonderlijk granulariteit kenmerk of op de gehele dataset. De volgende opties zijn beschikbaar om het datumbereik vast te stellen dat het systeem gebruikt bij het invullen van hiaten in historische gegevens:

    • GLOBAL – De ontbrekende waarden worden vervangen met behulp van de vervangingsmethode voor ontbrekende waarden in het hele historische gegevensbereik dat wordt gebruikt voor het berekenen van de prognose.
    • HISTORY_DATE_RANGE – Het systeem vervangt gegevens binnen een specifiek datumbereik dat we instellen wanneer we uitvoeren Statistische basislijnprognose maken. Dit bereik wordt gedefinieerd door de velden Van datum en Tot datum in de sectie Historische periode.
    • GRANULARITY_ATTRIBUTE – Het systeem vervangt gegevens binnen het momenteel verwerkte granulariteit kenmerk.

In de meeste gevallen is het instellen van deze parameter op GLOBAL de beste optie.

Force seasonality

Deze parameter is alleen van toepassing op prognosemodellen ARIMA en ETS. Het geeft aan wat de relatie is tussen trend en seizoensinvloeden. Door deze parameter in te stellen, weet het systeem of het model moet worden gedwongen een specifiek type seizoensinvloeden te gebruiken.

De volgende opties zijn beschikbaar:

  • AUTO (standaard optie)
  • NONE – er wordt geen seizoen patroon afgedwongen.
  • ADDITIVE – seizoensgebonden impact is onafhankelijk van de trend. Dit geeft aan dat het seizoen patroon hetzelfde blijft en ook de trend hetzelfde blijft, onafhankelijk van elkaar. Zo is er in de zomermaanden altijd een toenemende vraag naar zonnebrandmiddelen, terwijl de algemene trend in de loop van de tijd groeit. Hoewel de vraag jaar na jaar toeneemt, zullen we in de zomer nog steeds pieken in de vraag zien, zoals in de onderstaande grafiek.
  • MULTIPLICATIVE – de seizoensgebonden grootte hangt af van de trend. Dit geeft aan dat als er een groeiende trend is, de seizoensgebonden toename of afname van de vraag zal worden vermenigvuldigd met deze groeiende trend. Voorbeeld in de onderstaande grafiek

Seasonality hint

Zoals eerder vermeld, is seizoen gebondenheid een van de kenmerken van tijdreeksen. Voor seizoen gegevens moeten we een hint geven aan het voorspellingsmodel om de nauwkeurigheid van de voorspelling te verbeteren. Dit wordt gedaan via de parameter Seizoensgebonden hint, een geheel getal dat het aantal buckets vertegenwoordigt waarvoor een vraagpatroon zichzelf herhaalt. Als er bijvoorbeeld elke 6 maanden een herhalend patroon is en we voorspellen in maandelijkse buckets, dan moeten we 6 invoeren.

 

ARTIKELTOEWIJZINGSSLEUTELS

Voor elk artikel waarvan de vraag moet worden geprognosticeerd, moet het artikel worden toegewezen aan ten minste één artikeltoewijzingssleutel. Artikelen worden toegewezen aan Artikeltoewijzingssleutels met productdimensies.

Het hier gedefinieerde percentage vertegenwoordigt het percentage van de totale prognosehoeveelheid die u aan het artikel wilt toewijzen. Totale percentages kunnen hoger of lager zijn dan 100%. Houd er rekening mee dat tijdens vraagprognoses de artikeltoewijzingspercentages die een deel van een geaggregeerde prognose toewijzen aan afzonderlijke artikelen, niet worden gebruikt. Artikeltoewijzingspercentages hebben geen invloed op de vraagprognosehoeveelheden.

Dit percentage is alleen te zien in het scherm Nettobehoeften van een van deze percentage-items in de Artikeltoewijzingssleutel, je zult zien dat deze prognose op een lager niveau wordt weergegeven als “vraagprognose”.

 

FORECAST MODEL EN FORECAST PLAN

Een prognosemodel benoemt en identificeert een specifieke prognose. Je moet een prognosemodel maken voordat je de werkelijke prognoseregels kunt maken. Meer over het prognosemodel in de volgende delen van onze blog.

Een prognoseplan is nodig om het masterplan te koppelen aan opties voor forecasting. De belangrijkste parameters in het prognoseplan zijn time-fences en veiligheidsmarges, evenals voorspellingsreductiesleutels.

Tijdens de demo zal ik dit onderdeel nader toelichten.

 

VERWIJDERING VAN UITSCHIETERS

Soms zijn er pieken in de historische vraag die voortkomen uit “once in a lifetime” acties: denk aan speciale verkoopacties of enorme klantorders. Deze transacties kunnen leiden tot een grotere onnauwkeurigheid in de vraagprognose. Om ervoor te zorgen dat dergelijke transacties niet worden meegenomen in de prognoseberekening, biedt D365FO de functie voor het verwijderen van uitschieters. Met deze functionaliteit kunnen gebruikers query’s maken die transacties selecteren die uit de prognoseberekening moeten worden verwijderd. Als ik bijvoorbeeld de verkoop van twee weken mei 2021 (er was toen een enorme promotiecampagne ) wil verwijderen, zal ik een zoekopdracht maken die aangeeft dat de verkopen gedurende die tijd moeten worden verwijderd:

Om transacties te bekijken die uit de berekening worden verwijderd, kunnen we de optie Transactie weergeven gebruiken. Op deze manier kunnen we bevestigen dat de zoekopdracht de juiste resultaten oplevert.

 

HOOFDPLANNEN

Ten slotte, om de voorspelde vraag als vereiste op te nemen in het proces voor het genereren van planningsorders, moeten hoofdplannen worden gemaakt en moet een prognoseplan worden toegewezen aan de hoofdplannen. Masterplanning is een apart groot onderwerp, dus we zullen het hier alleen noemen.

EINDNOTEN

Dit is het eerste deel van mijn blog. In het tweede deel van het blog behandel ik het onderwerp Azure Machine Learning gebruiken om de vraag te voorspellen en in het derde deel zullen we vraagprognoses demonstreren in Microsoft Dynamics 365 for Finance and Operations..