	{"id":21367,"date":"2020-11-25T13:32:21","date_gmt":"2020-11-25T13:32:21","guid":{"rendered":"https:\/\/www.artefact.com\/?post_type=news&#038;p=21367"},"modified":"2024-09-20T17:45:24","modified_gmt":"2024-09-20T16:45:24","slug":"reducing-product-stock-outs-in-hypermarkets-with-time-series-modelling","status":"publish","type":"blog","link":"https:\/\/www.artefact.com\/nl\/blog\/reducing-product-stock-outs-in-hypermarkets-with-time-series-modelling\/","title":{"rendered":"Vermindering van productvoorraden in hypermarkten met tijdreeksmodellen"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:0px;--awb-padding-right:0px;--awb-padding-bottom:0px;--awb-padding-left:0px;--awb-margin-bottom:40px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_2 1_2 fusion-flex-column avada-news-bloc-image\" style=\"--awb-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:50%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-image-element\" style=\"text-align:left;--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-1 hover-type-none\"><img decoding=\"async\" width=\"300\" height=\"74\" title=\"Medium Blog\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-300x74.png\" alt class=\"lazyload img-responsive wp-image-60582\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%274000%27%20height%3D%27992%27%20viewBox%3D%270%200%204000%20992%27%3E%3Crect%20width%3D%274000%27%20height%3D%27992%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-200x50.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-400x99.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-600x149.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-800x198.png 800w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-1200x298.png 1200w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 800px\" \/><\/span><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_2 1_2 fusion-flex-column\" style=\"--awb-padding-top:10px;--awb-padding-right:10px;--awb-padding-bottom:10px;--awb-padding-left:10px;--awb-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:50%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><p>NIEUWS \/ AI TECHNOLOGIE<\/p>\n<\/div><div class=\"fusion-text fusion-text-2\"><p>25 november 2020<br \/>\nIn dit artikel leggen Artefact's Senior Data Scientists Kasra Mansouri en Camille Le Gonidec uit hoe ze een data wetenschappelijk product konden maken met beperkte data en hoge bedrijfsbeperkingen. Ontdek hoe ze productvoorraden in hypermarkten konden terugdringen met behulp van Time Series modellering. <\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-background-color:#ffffff;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-color:#ffffff;--awb-bg-color-hover:#ffffff;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-3\" style=\"--awb-text-color:#000000;\"><section class=\"df dg dh di dj\">\n<div class=\"n p\">\n<div class=\"ab ac ae af ag dk ai aj\">\n<p id=\"e00e\" class=\"ip iq dn ce ir is it gr iu iv iw gv ix iy iz ja jb jc jd je jf jg jh ji jj jk ek\"><span style=\"color: #ff0066;\"><strong>Probleemstelling<\/strong><\/span><\/p>\n<p><span style=\"font-weight: 400;\">We hebben allemaal wel eens die zondagochtendfrustratie gevoeld wanneer we onze favoriete ontbijtgranen of frisdrank niet in het schap van onze plaatselijke winkel konden vinden. Inderdaad, schapvoorraden zijn een groot pijnpunt voor winkels: het is niet alleen een gemiste verkoopkans, maar ook een daling van de klanttevredenheid, die eerder geneigd zal zijn om van winkel te veranderen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Er zijn twee fenomenen die er voornamelijk voor zorgen dat een schap zonder voorraad komt te zitten:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">De winkel heeft het product niet, d.w.z. zelfs het magazijn is leeg. Dit kan worden veroorzaakt door een onderschatte vraag van de klant of door logistieke problemen.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">De winkel heeft het product op voorraad, maar het schap is leeg. De schappen worden meestal elke ochtend gevuld, maar er is geen werknemer die als specifieke taak heeft om overdag voor de voorraad te zorgen. Het signaleren van een tekort door langs het schap te lopen kan voor kleine winkels vol te houden zijn, maar wordt een probleem voor hypermarkten gezien hun omvang. Sommige schappen blijven leeg (terwijl het voorraadniveau positief is) totdat een werknemer het ziet of totdat de volgende ochtend de schappen worden aangevuld.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Dit tweede type van stock-outs gaan we hier aanpakken, omdat het ons doel was om de medewerkers van een hypermarkt te helpen om de stock-outs in de schappen gedurende de dag op te sporen, zodat ze deze konden corrigeren en het product opnieuw konden verkopen. We hebben veel tijd in het veld doorgebracht om de pijnpunten van onze gebruikers te begrijpen en de beste oplossing te ontwerpen om deze te beantwoorden.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We ontdekten dat de beste optie voor operationele teams zou zijn om dagelijks rond 14:00 uur een waarschuwing te ontvangen (real-time is niet nodig), met een lijst van artikelen die niet op voorraad zijn en die ze moeten corrigeren.<\/span><\/p>\n<p><b>Maar<\/b> <b>Hoe kunnen we voorraadtekorten in schappen herkennen zonder visuele aanwijzing?<\/b><span style=\"font-weight: 400;\">? Het installeren van camera's of visuele sensoren zou inderdaad te duur zijn en we kunnen ons personeel niet vragen om elke dag de status van de schappen te \u201cgaan controleren\u201d om data te verzamelen. Onze grootste uitdaging ligt in het feit dat er <\/span><b>geen historische data beschikbaar op plank stock-outs<\/b><span style=\"font-weight: 400;\"> (de enige informatie die we hebben is het globale voorraadniveau aan het einde van de dag), daarom kunnen we alleen vertrouwen op een beperkte set kenmerken: <\/span><b>Verkoop in realtime, artikelkenmerken en winkelkenmerken<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<\/div>\n<\/div>\n<\/section>\n<section class=\"df dg dh di dj\">\n<div class=\"n p\">\n<div class=\"ab ac ae af ag dk ai aj\" style=\"text-align: center;\">\n<p id=\"d58e\" class=\"ip iq dn ce ir is it gr iu iv iw gv ix iy iz ja jb jc jd je jf jg jh ji jj jk ek\" style=\"text-align: left;\"><span style=\"color: #ff0066;\"><strong>Voorgestelde benaderingen<\/strong><\/span><\/p>\n<p id=\"4b3c\" class=\"gm gn dn go b gp jl gr gs gt jm gv gw gx jn gz ha hb jo hd he hf jp hh hi hj df ek\" style=\"text-align: left;\" data-selectable-paragraph=\"\">Zoals hierboven uitgelegd, was de grootste uitdaging de afwezigheid van gelabelde data voor schapvoorraden, waardoor we de oorspronkelijke ML-benadering die we in gedachten hadden niet konden toepassen. Daarom hebben we een alternatieve aanpak overwogen om ons detectiemodel op te bouwen.<\/p>\n<p id=\"74b7\" class=\"ip iq dn ce ir is jz gr iu iv ka gv ix iy kb ja jb jc kc je jf jg kd ji jj jk ek\" style=\"text-align: left;\"><span style=\"color: #ff0066;\"><strong>Tijdreeksvoorspelling van verkoop per uur<\/strong><\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">Onze eerste alternatieve aanpak bestond uit <\/span><b>onregelmatigheden in de verkoop (ongewoon lage verkoop) detecteren door<\/b> <b>per uur de verkoop van producten voorspellen en deze vervolgens vergelijken met de werkelijke verkoop<\/b><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">Het idee hierachter is om de reguliere verkoophoeveelheid die we van een product verwachten te schatten\/voorspellen als er geen \u201cafwijkingen\u201d in de winkel zijn, deze vervolgens te vergelijken met de werkelijke verkoop en een waarschuwing te geven als het verschil \u201cgroot\u201d is. Door ons model elke dag om 14.00 uur toe te passen, zouden we dus de verkoop van elk product tot 14.00 uur voorspellen en vervolgens afwijkingen detecteren door de werkelijke verkoop van elk product met onze schattingen te vergelijken.<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">Als uitgangspunt hebben we een eenvoudige<\/span><b> Bewegend gemiddelde model<\/b><span style=\"font-weight: 400;\">. Voor elk uur maakt het model zijn voorspellingen door een gemiddelde te nemen van de verkoop van het product op hetzelfde uur gedurende de afgelopen 30 dagen. Vervolgens vergelijken we deze waarde met de werkelijke verkoop van het product tijdens dat uur. Als de volgende ongelijkheid wordt geverifieerd, geven we een waarschuwing als het product niet op voorraad is.<\/span><\/p>\n<figure class=\"hl hm hn ho hp hq cx cy paragraph-image\">\n<div class=\"cx cy ke\">\n<div class=\"ib s ht ic\">\n<div class=\"kf ie s\">\n<div class=\"hw hx t u v hy aj bm hz ia\"><\/div>\n<p><img decoding=\"async\" class=\"lazyload vm vn t u v hy aj c aligncenter\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/1Dfw0v_eKAd3XlfMEW9hTtQ.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/1Dfw0v_eKAd3XlfMEW9hTtQ.png\" data-sizes=\"auto\" data-orig-sizes=\"616px\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27616%27%20height%3D%2722%27%20viewBox%3D%270%200%20616%2022%27%3E%3Crect%20width%3D%27616%27%20height%3D%2722%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/1Dfw0v_eKAd3XlfMEW9hTtQ.png 276w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/1Dfw0v_eKAd3XlfMEW9hTtQ.png 552w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/1Dfw0v_eKAd3XlfMEW9hTtQ.png 616w\" alt=\"Image for post\" width=\"616\" height=\"22\" \/><\/p>\n<\/div>\n<div><\/div>\n<\/div>\n<\/div>\n<\/figure>\n<p id=\"58da\" class=\"gm gn dn go b gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj df ek\" style=\"text-align: left;\" data-selectable-paragraph=\"\">Deze benadering is gebaseerd op de aanname dat de verkoop per uur van de producten een\u00a0<strong class=\"go jy\">Normale verdeling\u00a0<\/strong>en is bedoeld om producten buiten het 95% van het betrouwbaarheidsinterval te waarschuwen.<\/p>\n<figure class=\"hl hm hn ho hp hq cx cy paragraph-image\">\n<div class=\"hr hs ht hu aj hv\" tabindex=\"0\" role=\"button\">\n<div class=\"cx cy kg\">\n<div class=\"ib s ht ic\">\n<div class=\"kh ie s\">\n<div class=\"hw hx t u v hy aj bm hz ia\"><\/div>\n<p><img decoding=\"async\" class=\"lazyload alignnone size-full wp-image-21211\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2020\/11\/reducing-product.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2020\/11\/reducing-product.png\" alt=\"\" width=\"700\" height=\"439\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27700%27%20height%3D%27439%27%20viewBox%3D%270%200%20700%20439%27%3E%3Crect%20width%3D%27700%27%20height%3D%27439%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2020\/11\/reducing-product-200x125.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2020\/11\/reducing-product.png 700w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><figcaption class=\"ki kj cz cx cy kk kl ce b eu cg fx\" data-selectable-paragraph=\"\"><em>Figuur 1: Voorbeeld van een normale verdeling<\/em><\/figcaption><\/figure>\n<p id=\"635c\" class=\"gm gn dn go b gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj df ek\" style=\"text-align: left;\" data-selectable-paragraph=\"\">En dat is helemaal niet het geval! In feite hebben we heel weinig tijdreekssignalen als we kijken naar de verkoop per uur in een winkel, en dat komt gewoon omdat de meeste producten gedurende meerdere uren van de dag geen verkoop hebben, zodat het model een waarde zou voorspellen die dicht bij 0 ligt (door het gemiddelde te nemen van de waarden uit het verleden) voor het gegeven uur. Daarom is het modelleren van de verkoop per uur duidelijk niet de juiste manier.<\/p>\n<figure class=\"hl hm hn ho hp hq cx cy paragraph-image\">\n<div class=\"hr hs ht hu aj hv\" tabindex=\"0\" role=\"button\">\n<div class=\"cx cy km\">\n<div class=\"ib s ht ic\">\n<div class=\"kn ie s\">\n<div class=\"hw hx t u v hy aj bm hz ia\"><\/div>\n<p><img decoding=\"async\" class=\"lazyload vm vn t u v hy aj c\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0Y9NZMUJhdVXjJCM6.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0Y9NZMUJhdVXjJCM6.png\" data-sizes=\"auto\" data-orig-sizes=\"700px\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27778%27%20height%3D%27374%27%20viewBox%3D%270%200%20778%20374%27%3E%3Crect%20width%3D%27778%27%20height%3D%27374%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0Y9NZMUJhdVXjJCM6.png 276w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0Y9NZMUJhdVXjJCM6.png 552w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0Y9NZMUJhdVXjJCM6.png 640w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0Y9NZMUJhdVXjJCM6.png 700w\" alt=\"Image for post\" width=\"778\" height=\"374\" \/><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><figcaption class=\"ki kj cz cx cy kk kl ce b eu cg fx\" data-selectable-paragraph=\"\"><em>Figuur 2: Verkoophoeveelheid per uur van een frisdrankje<\/em><\/figcaption><\/figure>\n<p id=\"0d2b\" class=\"gm gn dn go b gp gq gr gs gt gu gv gw gx gy gz ha hb hc hd he hf hg hh hi hj df ek\" style=\"text-align: left;\" data-selectable-paragraph=\"\">We hebben geprobeerd om onze aanpak enigszins aan te passen door te voorspellen\u00a0<strong class=\"go jy\">dagelijkse verkoop<\/strong>\u00a0<strong class=\"go jy\">hoeveelheid<\/strong> tot 14.00 uur, maar we zouden nog steeds veel producten hebben waarvoor we niet genoeg signaal hadden, we noemen ze \u00abproducten met een lage rotatie\u00bb. Deze aanpak zou waarschijnlijk hebben gewerkt voor producten met een hoge rotatie, zoals Coca-Cola frisdrank, waterflessen, enz. maar onze oplossing moest werken voor alle producten in een hypermarkt, daarom hebben we deze aanpak geleidelijk aan afgeschaft.<\/p>\n<\/div>\n<\/div>\n<\/section>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-background-color:#ffffff;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-color:#ffffff;--awb-bg-color-hover:#ffffff;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-4\" style=\"--awb-text-color:#000000;\"><section class=\"df dg dh di dj\">\n<div class=\"n p\">\n<div class=\"ab ac ae af ag dk ai aj\" style=\"text-align: center;\">\n<p id=\"5aeb\" class=\"ip iq dn ce ir is jz gr iu iv ka gv ix iy kb ja jb jc kc je jf jg kd ji jj jk ek\" style=\"text-align: left;\"><strong><span style=\"color: #ff0066;\">Detectie van afwijkingen met behulp van Poisson-verdeling<\/span><\/strong><\/p>\n<p class=\"ip iq dn ce ir is jz gr iu iv ka gv ix iy kb ja jb jc kc je jf jg kd ji jj jk ek\" style=\"text-align: left;\">Onze tweede benadering was om te proberen\u00a0<strong class=\"go jy\">de verkoopfrequentie modelleren (en niet de hoeveelheid)<\/strong>,\u00a0<strong class=\"go jy\">d.w.z. de verstreken tijd tussen 2 opeenvolgende verkopen van \u00e9\u00e9n product.<\/strong><\/p>\n<p class=\"ip iq dn ce ir is jz gr iu iv ka gv ix iy kb ja jb jc kc je jf jg kd ji jj jk ek\" style=\"text-align: left;\">We voerden statistische tests uit op de verkoop van sommige producten data en realiseerden ons dat de tijd tussen hun twee opeenvolgende verkopen een exponenti\u00eble verdeling volgt, wat intu\u00eftief logisch is omdat een exponenti\u00eble verdeling gewoonlijk wordt gebruikt om de tijd tussen verschillende gebeurtenissen te modelleren.<\/p>\n<p class=\"ip iq dn ce ir is jz gr iu iv ka gv ix iy kb ja jb jc kc je jf jg kd ji jj jk ek\" style=\"text-align: left;\">Het logische gevolg hiervan is dat <strong class=\"go jy\">wij<\/strong>\u00a0<strong class=\"go jy\">kan de \u00abverkoopsnelheid\u00bb van een product modelleren met een Poisson-verdeling.<\/strong>\u00a0Met verkoopsnelheid bedoelen we het aantal keren dat een product tijdens een uur door de kassa gaat, ongeacht de hoeveelheid die verkocht is.<\/p>\n<figure class=\"hl hm hn ho hp hq cx cy paragraph-image\">\n<div class=\"hr hs ht hu aj hv\" tabindex=\"0\" role=\"button\">\n<div class=\"cx cy ko\">\n<div class=\"ib s ht ic\">\n<div class=\"kp ie s\">\n<div class=\"hw hx t u v hy aj bm hz ia\"><\/div>\n<p><img decoding=\"async\" class=\"lazyload vm vn t u v hy aj c\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0ukiXp84UQWCnJlQa.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0ukiXp84UQWCnJlQa.png\" data-sizes=\"auto\" data-orig-sizes=\"700px\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27719%27%20height%3D%27379%27%20viewBox%3D%270%200%20719%20379%27%3E%3Crect%20width%3D%27719%27%20height%3D%27379%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0ukiXp84UQWCnJlQa.png 276w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0ukiXp84UQWCnJlQa.png 552w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0ukiXp84UQWCnJlQa.png 640w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0ukiXp84UQWCnJlQa.png 700w\" alt=\"Image for post\" width=\"719\" height=\"379\" \/><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><figcaption class=\"ki kj cz cx cy kk kl ce b eu cg fx\" data-selectable-paragraph=\"\"><em><strong>Figuur 3: Histogram van de verdeling van de tijd tussen elke verkoop van een specifiek koekje<\/strong><\/em><\/figcaption><\/figure>\n<figure class=\"hl hm hn ho hp hq cx cy paragraph-image\">\n<div class=\"hr hs ht hu aj hv\" tabindex=\"0\" role=\"button\">\n<div class=\"cx cy kq\">\n<div class=\"ib s ht ic\">\n<div class=\"kr ie s\">\n<div class=\"hw hx t u v hy aj bm hz ia\"><\/div>\n<p><img decoding=\"async\" class=\"lazyload vm vn t u v hy aj c\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0TL_yuefQkpDmu8tG.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0TL_yuefQkpDmu8tG.png\" data-sizes=\"auto\" data-orig-sizes=\"700px\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27700%27%20height%3D%27526%27%20viewBox%3D%270%200%20700%20526%27%3E%3Crect%20width%3D%27700%27%20height%3D%27526%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0TL_yuefQkpDmu8tG.png 276w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0TL_yuefQkpDmu8tG.png 552w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0TL_yuefQkpDmu8tG.png 640w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/0TL_yuefQkpDmu8tG.png 700w\" alt=\"Image for post\" width=\"700\" height=\"526\" \/><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div><figcaption class=\"ki kj cz cx cy kk kl ce b eu cg fx\" data-selectable-paragraph=\"\"><em>Figuur 4: Voorbeeld van een exponenti\u00eble verdeling<\/em><\/figcaption><\/figure>\n<p style=\"text-align: left;\">Daarom is onze tweede alternatieve benadering het schatten van de reguliere verkoop van elk product, wat de <i>lambda<\/i> parameter van de Poisson verdeling, en vergelijk dat vervolgens met de werkelijke dagelijkse verkoop tot 14.00 uur.<\/p>\n<p style=\"text-align: left;\">Dit is een proces in 2 stappen:<\/p>\n<p style=\"text-align: left;\"><strong><span style=\"text-align: center;\">Het berekenen van de <\/span><i style=\"text-align: center;\">lambda<\/i><\/strong><span style=\"text-align: center;\"><strong>:<\/strong> De <\/span><i style=\"text-align: center;\">lambda <\/i><span style=\"text-align: center;\">is het gemiddelde van de Poisson-verdeling. Om het te schatten, moeten we dus het gemiddelde van onze afgelopen data punten berekenen, d.w.z. het gemiddelde aantal checkouts per uur dat het product in het verleden heeft gehad. We hebben een historische diepte van 50 dagen genomen voor onze berekening om informatie uit het nabije verleden te bewaren. Verder berekenen we de <\/span><i style=\"text-align: center;\">lambda<\/i><span style=\"text-align: center;\"> voor elke weekdag afzonderlijk, omdat er een sterke wekelijkse seizoensgebondenheid is in de productverkoop in een hypermarkt.<\/span><\/p>\n<p style=\"text-align: left;\">Concreet verzamelen we de verkoopcijfers data van een product van de afgelopen 50 dagen, berekenen we de verkoopcijfers op elke dag en berekenen we vervolgens de gemiddelde verkoopcijfers voor elke weekdag, dus onze berekening levert 7 <i>lambda <\/i>getallen, \u00e9\u00e9n voor elke weekdag. Deze berekening wordt elke week uitgevoerd.<\/p>\n<p style=\"text-align: left;\"><strong>Anomaliedetectie:<\/strong> Elke dag om 14.00 uur zoeken we de laatste keer dat het product verkocht is. Vervolgens berekenen we de kans (Poisson waarschijnlijkheidsmassafunctie) dat er geen verkoop is tussen de laatste verkoop en 14.00 uur, gegeven de <i>lambda <\/i>parameter. Als de waarschijnlijkheid lager is dan 1%, dan gaan we ervan uit dat het product een ongewoon lage verkoop heeft.<\/p>\n<p style=\"text-align: left;\">Stel u bijvoorbeeld een Coca-Cola frisdrank voor die regelmatig om de 20 minuten wordt verkocht, en daarom een <i>lambda<\/i>=3, en dat vandaag de laatste verkoop om 11 uur 's ochtends was. We berekenen de kansmassafunctie van Poisson op 0 verkopen gedurende 3 uur, wetende dat het product regelmatig 3 keer per uur verkocht wordt.<\/p>\n<figure class=\"hl hm hn ho hp hq cx cy paragraph-image\">\n<div class=\"cx cy kt\">\n<div class=\"ib s ht ic\">\n<div class=\"ku ie s\">\n<div class=\"hw hx t u v hy aj bm hz ia\"><\/div>\n<p><img decoding=\"async\" class=\"lazyload vm vn t u v hy aj c\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/12nmsWSlgNgm56mhZMl35nw.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2024\/09\/12nmsWSlgNgm56mhZMl35nw.png\" data-sizes=\"auto\" data-orig-sizes=\"269px\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27269%27%20height%3D%2753%27%20viewBox%3D%270%200%20269%2053%27%3E%3Crect%20width%3D%27269%27%20height%3D%2753%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"\" alt=\"Image for post\" width=\"269\" height=\"53\" \/><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/figure>\n<\/div>\n<\/div>\n<\/section>\n<div class=\"n p el ii ij ik\" style=\"text-align: left;\" role=\"separator\"><\/div>\n<section class=\"df dg dh di dj\">\n<div class=\"n p\">\n<div class=\"ab ac ae af ag dk ai aj\">\n<p id=\"a6bd\" class=\"ip iq dn ce ir is it gr iu iv iw gv ix iy iz ja jb jc jd je jf jg jh ji jj jk ek\" style=\"text-align: left;\"><span style=\"color: #ff0066;\"><strong>Resultaten<\/strong><\/span><\/p>\n<p><span style=\"font-weight: 400;\">We voerden voorafgaande tests uit op ons Poisson-model door te proberen te meten hoe goed het de verkoop om 14.00 uur kon schatten. Het model kon het aantal productuitgiftes schatten met een nauwkeurigheid van <\/span><b>67%<\/b><span style=\"font-weight: 400;\">. Dit resultaat bevestigde onze intu\u00eftie dat een Poisson-model het juiste hulpmiddel zou kunnen zijn om producttekorten nauwkeurig op te sporen. Daarom besloten we ons model in de praktijk te testen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We gingen om de twee dagen naar twee winkels om de nauwkeurigheid van de waarschuwingen van ons model te testen en te evalueren voor 3000 producten die de winkels als topprioriteit hadden aangemerkt. Een waarschuwing werd als nauwkeurig beschouwd als het schap leeg was of minder dan 10% van zijn gemiddelde capaciteit had op hetzelfde uur als wanneer de waarschuwing werd verzonden. Deze evaluatiefase duurde 2,5 maand en resulteerde in een gemeten <\/span><b>nauwkeurigheidspercentage van 58% (d.w.z. 58% van de voorraadwaarschuwingen van ons model waren nauwkeurig)<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Hoewel de precisie van de 58% misschien niet glanst, moet u begrijpen dat deze oplossing <\/span><b>zeer eenvoudig te implementeren<\/b><span style=\"font-weight: 400;\"> (wat u alleen nodig hebt is toegang tot historische verkoop data en bijna real-time verkoop data in winkels) en kan <\/span><b>gemakkelijk geschaald kan worden naar alle winkels <\/b><span style=\"font-weight: 400;\">om de risico's van schapuitval te beperken. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">U kunt deze oplossing implementeren voor elke winkel in <\/span><b>minder dan een week<\/b><span style=\"font-weight: 400;\"> en ontvang direct 58-60% precisie! Houd er rekening mee dat een <\/span><b>willekeurig classificatiemodel zou bijna een 5% precisie hebben<\/b><span style=\"font-weight: 400;\"> aangezien er over het algemeen ongeveer 5% aan producten niet op voorraad zijn in de schappen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Deze oplossing kan ook deel uitmaken van een <\/span><b>groter product dat<\/b> <b>allerlei waarschuwingen met een feedbacklus<\/b><span style=\"font-weight: 400;\">. De waarschuwingen die stock-outs zijn, zullen ertoe leiden dat het winkelpersoneel actie onderneemt en de schappen bijvult, en de waarschuwingen die dat niet zijn, kunnen gebruikt worden voor verdere analyse om te begrijpen waarom het product een ongewoon laag verkoopvolume had. U kunt ook denken aan het bouwen van een Machine Learning-model dat waarschuwingen classificeert als schapvoorraden of anders, aangezien we beginnen met het verzamelen van gelabelde data.<\/span><\/p>\n<p><a href=\"https:\/\/medium.com\/artefact-engineering-and-data-science\" target=\"_blank\" rel=\"noopener noreferrer\">Dit artikel werd voor het eerst gepubliceerd op The Artefact Tech Blog - een bibliotheek van technische en data wetenschappelijke artikelen.<\/a><\/p>\n<\/div>\n<\/div>\n<\/section>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-4 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--link_hover_color: #ff0066;--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:0px;--awb-padding-right:0px;--awb-padding-bottom:0px;--awb-padding-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-4 fusion_builder_column_1_2 1_2 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:50%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-image-element\" style=\"text-align:center;--awb-margin-top:0px;--awb-margin-right:0px;--awb-margin-bottom:0px;--awb-margin-left:0px;--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-2 hover-type-none\"><img decoding=\"async\" width=\"1057\" height=\"591\" title=\"data-driven\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271057%27%20height%3D%27591%27%20viewBox%3D%270%200%201057%20591%27%3E%3Crect%20width%3D%271057%27%20height%3D%27591%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2020\/06\/Global-Newsletter-Data-Digest_LinkedIn_600x315_april.jpg\" alt class=\"lazyload img-responsive wp-image-30246\"\/><\/span><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-5 fusion_builder_column_1_2 1_2 fusion-flex-column fusion-flex-align-self-center fusion-column-inner-bg-wrapper\" style=\"--awb-inner-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:50%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><span class=\"fusion-column-inner-bg hover-type-none\"><a class=\"fusion-column-anchor\" href=\"https:\/\/go.pardot.com\/l\/597421\/2020-05-06\/2k5zzj\" target=\"_blank\" rel=\"noopener\"><span class=\"fusion-column-inner-bg-image\"><\/span><\/a><\/span><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-center fusion-content-layout-column\"><div class=\"fusion-text fusion-text-5\"><p><b>Ge\u00efnteresseerd in digitaal en data marketing?<\/b><\/p>\n<p>Meld u aan voor Data Digest, de nieuwsbrief van Artefact, en ontvang elke maand bruikbaar advies, inzichten en meningen in uw inbox.<\/p>\n<p><b>Schrijf me in!<\/b><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>25 november 2020<br \/>\n In dit artikel leggen Kasra Mansouri en Camille Le Gonidec, Senior Artefact-wetenschappers bij Data, uit hoe u een data-wetenschappelijk product kunt ontwikkelen met beperkte data-middelen en strenge zakelijke beperkingen.\u00a0Ontdek hoe zij met behulp van tijdreeksmodellering het aantal voorraadtekorten in hypermarkten hebben weten te verminderen.<\/p>","protected":false},"featured_media":21212,"parent":0,"template":"","meta":{"_acf_changed":false,"ep_exclude_from_search":false},"blog-category":[2995],"blog-language":[2991],"class_list":["post-21367","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog-category-ai-technology","blog-language-en"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/blog\/21367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/media\/21212"}],"wp:attachment":[{"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/media?parent=21367"}],"wp:term":[{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/blog-category?post=21367"},{"taxonomy":"blog-language","embeddable":true,"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/blog-language?post=21367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}