	{"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\/es\/blog\/reducing-product-stock-outs-in-hypermarkets-with-time-series-modelling\/","title":{"rendered":"Reducci\u00f3n de las roturas de stock de productos en los hipermercados con modelos de series temporales"},"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=\"Mediano 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>NOTICIAS \/ TECNOLOG\u00cdA AI<\/p>\n<\/div><div class=\"fusion-text fusion-text-2\"><p>25 de noviembre de 2020<br \/>\nEn este art\u00edculo, las cient\u00edficas s\u00e9nior Artefact Kasra Mansouri y Camille Le Gonidec explican c\u00f3mo crear un producto cient\u00edfico data con limitaciones data y grandes restricciones comerciales. Descubra c\u00f3mo consiguieron reducir las roturas de stock de productos en los hipermercados gracias a la modelizaci\u00f3n de series temporales. <\/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>Planteamiento del problema<\/strong><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Todos hemos sentido alguna vez esa frustraci\u00f3n del domingo por la ma\u00f1ana cuando no encontramos nuestro cereal o refresco favorito en el estante de nuestra tienda local. De hecho, el agotamiento de las existencias en los estantes es un importante punto de dolor para las tiendas minoristas: no s\u00f3lo supone una oportunidad perdida de ventas, sino tambi\u00e9n un descenso de la satisfacci\u00f3n del cliente, que ser\u00e1 m\u00e1s propenso a cambiar de tienda.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dos fen\u00f3menos provocan principalmente que una estanter\u00eda se quede sin existencias :<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">La tienda no tiene el producto dado, es decir, incluso el almac\u00e9n de la tienda est\u00e1 vac\u00edo del producto. Esto puede deberse a una subestimaci\u00f3n de la demanda de los clientes o a problemas log\u00edsticos.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">La tienda tiene el producto en stock pero la estanter\u00eda est\u00e1 vac\u00eda. Las estanter\u00edas suelen llenarse cada ma\u00f1ana pero no hay ning\u00fan empleado cuya tarea espec\u00edfica sea ocuparse de sus existencias durante el d\u00eda. Detectar una falta de existencias pasando por delante de la estanter\u00eda puede ser sostenible para las tiendas peque\u00f1as, pero se convierte en un problema para los hipermercados teniendo en cuenta su tama\u00f1o. Algunos estantes acaban vac\u00edos (mientras el nivel de inventario es positivo) hasta que un empleado lo detecta o hasta que se hace el siguiente estante por la ma\u00f1ana.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Vamos a abordar aqu\u00ed este segundo tipo de roturas de stock, ya que nuestro objetivo era ayudar a los empleados de un hipermercado a detectar las roturas de stock en las estanter\u00edas durante el d\u00eda para que pudieran corregirlas y reanudar la venta del producto. Pasamos mucho tiempo sobre el terreno para comprender los puntos d\u00e9biles de nuestros usuarios y dise\u00f1ar la mejor soluci\u00f3n para darles respuesta.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Descubrimos que la mejor opci\u00f3n para los equipos operativos ser\u00eda recibir una alerta diaria en torno a las 14:00 horas (sin necesidad de tiempo real), con una lista de art\u00edculos fuera de stock que deber\u00edan ir a corregir.<\/span><\/p>\n<p><b>Pero<\/b> <b>\u00bfc\u00f3mo podemos detectar la falta de existencias en las estanter\u00edas sin ninguna pista visual?<\/b><span style=\"font-weight: 400;\">? Efectivamente, la instalaci\u00f3n de c\u00e1maras o sensores visuales ser\u00eda demasiado costosa y no podemos pedir a nuestro personal que \u201cvaya a comprobar\u201d el estado de las estanter\u00edas todos los d\u00edas para recoger data. Nuestro mayor reto reside en el hecho de que hay <\/span><b>no hist\u00f3rico data disponible en stock-outs<\/b><span style=\"font-weight: 400;\"> (la \u00fanica informaci\u00f3n que tenemos es el nivel global de existencias al final del d\u00eda), por lo que s\u00f3lo podemos basarnos en un conjunto restringido de caracter\u00edsticas: <\/span><b>ventas en tiempo real, atributos de los art\u00edculos y caracter\u00edsticas de la tienda<\/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>Enfoques propuestos<\/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=\"\">Como ya se ha explicado, el principal reto al que nos enfrentamos fue la ausencia de data etiquetado para las existencias de los estantes, lo que nos impidi\u00f3 adoptar el enfoque ML inicial que ten\u00edamos en mente. Por lo tanto, consideramos un enfoque alternativo para construir nuestro modelo de detecci\u00f3n.<\/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>Predicci\u00f3n de series temporales de ventas por hora<\/strong><\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">Nuestro primer enfoque alternativo consisti\u00f3 en <\/span><b>detectar anomal\u00edas en las ventas (ventas inusualmente bajas) mediante<\/b> <b>predecir las ventas horarias de productos y compararlas despu\u00e9s con las reales<\/b><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">La idea subyacente es estimar\/predecir la cantidad de ventas regulares que esperamos que tenga un producto cuando no hay \u201canomal\u00edas\u201d en la tienda, luego compararlas con sus ventas reales y lanzar una alerta si la diferencia es \u201cenorme\u201d. As\u00ed, aplicando nuestro modelo todos los d\u00edas a las 14.00 horas, predecir\u00edamos las ventas de cada producto hasta las 14.00 horas y luego detectar\u00edamos las anomal\u00edas comparando las ventas reales de cada producto con nuestras estimaciones.<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-weight: 400;\">Como punto de partida, desarrollamos un sencillo<\/span><b> Modelo de media m\u00f3vil<\/b><span style=\"font-weight: 400;\">. Para cada hora, el modelo realizar\u00eda sus predicciones tomando una media de las ventas del producto en esa misma hora durante los \u00faltimos 30 d\u00edas. A continuaci\u00f3n comparar\u00edamos este valor con las ventas reales del producto durante esa hora, si se verifica la siguiente desigualdad entonces lanzar\u00edamos una alerta de falta de existencias.<\/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=\"\">Este enfoque se basa en la suposici\u00f3n de que las ventas horarias de los productos siguen un\u00a0<strong class=\"go jy\">Distribuci\u00f3n normal\u00a0<\/strong>y pretende alertar sobre los productos que se encuentran fuera del 95% del intervalo de confianza.<\/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>Figura 1: Ejemplo de una distribuci\u00f3n normal<\/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=\"\">\u00a1Y no es el caso en absoluto! De hecho, tenemos muy poca se\u00f1al de la serie temporal si nos fijamos en las ventas por horas en una tienda y eso es simplemente porque la mayor\u00eda de los productos tienen 0 ventas durante varias horas al d\u00eda, por lo que el modelo predecir\u00eda un valor cercano a 0 (tomando la media de los valores pasados) para la hora dada. Por lo tanto, modelizar las ventas por horas no es claramente el camino correcto.<\/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>Figura 2: Cantidad de ventas por hora de una bebida gaseosa<\/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=\"\">Intentamos modificar ligeramente nuestro enfoque prediciendo\u00a0<strong class=\"go jy\">ventas diarias<\/strong>\u00a0<strong class=\"go jy\">cantidad<\/strong> hasta las 2.p.m pero seguir\u00edamos teniendo muchos productos para los que no ten\u00edamos suficiente se\u00f1al, los llamamos \u00abproductos de baja rotaci\u00f3n\u00bb. Este enfoque probablemente habr\u00eda funcionado con productos de alta rotaci\u00f3n como los refrescos de Coca-Cola, las botellas de agua, etc. pero nuestra soluci\u00f3n deb\u00eda funcionar con todos los productos de un hipermercado, por lo que eliminamos gradualmente este enfoque.<\/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;\">Detecci\u00f3n de anomal\u00edas mediante la distribuci\u00f3n de Poisson<\/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;\">Nuestro segundo enfoque fue intentar\u00a0<strong class=\"go jy\">modelizar la frecuencia de las ventas (y no la cantidad)<\/strong>,\u00a0<strong class=\"go jy\">Es decir, el tiempo transcurrido entre 2 ventas consecutivas de un mismo producto.<\/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;\">Realizamos pruebas estad\u00edsticas sobre las ventas de algunos productos data y nos dimos cuenta de que el tiempo transcurrido entre sus dos ventas consecutivas sigue una distribuci\u00f3n exponencial, lo que intuitivamente tiene sentido, ya que una distribuci\u00f3n exponencial suele utilizarse para modelizar el tiempo transcurrido entre diferentes sucesos de un acontecimiento.<\/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;\">La consecuencia l\u00f3gica de esto es que <strong class=\"go jy\">nosotros<\/strong>\u00a0<strong class=\"go jy\">puede modelizar la \u00abtasa de ventas\u00bb de un producto con una distribuci\u00f3n de Poisson.<\/strong>\u00a0Por \u00edndice de ventas entendemos el n\u00famero de veces que un producto pasa por caja durante una hora, independientemente de la cantidad que se haya vendido.<\/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>Figura 3: Histograma de la distribuci\u00f3n del tiempo transcurrido entre cada venta de una galleta espec\u00edfica<\/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>Figura 4: Ejemplo de una distribuci\u00f3n exponencial<\/em><\/figcaption><\/figure>\n<p style=\"text-align: left;\">Por lo tanto, nuestro segundo enfoque alternativo consiste en estimar el \u00edndice de ventas regulares de cada producto, que es el <i>lambda<\/i> par\u00e1metro de la distribuci\u00f3n de Poisson, y luego compararlo con sus ventas diarias reales hasta las 2.p.m.<\/p>\n<p style=\"text-align: left;\">Se trata de un proceso de dos pasos:<\/p>\n<p style=\"text-align: left;\"><strong><span style=\"text-align: center;\">C\u00e1lculo del <\/span><i style=\"text-align: center;\">lambda<\/i><\/strong><span style=\"text-align: center;\"><strong>:<\/strong> El <\/span><i style=\"text-align: center;\">lambda <\/i><span style=\"text-align: center;\">es la media de la distribuci\u00f3n de Poisson. Por lo tanto, para estimarla, necesitamos calcular la media de nuestros puntos data pasados, es decir, el n\u00famero medio de salidas por hora que ha tenido el producto en el pasado. Tomamos una profundidad hist\u00f3rica de 50 d\u00edas para nuestro c\u00e1lculo con el fin de conservar la informaci\u00f3n del pasado cercano. Adem\u00e1s, calculamos la <\/span><i style=\"text-align: center;\">lambda<\/i><span style=\"text-align: center;\"> para cada d\u00eda de la semana por separado porque existe una fuerte estacionalidad semanal en las ventas de productos en un hipermercado.<\/span><\/p>\n<p style=\"text-align: left;\">Concretamente, reunimos las ventas data de un producto de los \u00faltimos 50 d\u00edas, calculamos su tasa de ventas en cada d\u00eda y luego calculamos la tasa media de ventas para cada d\u00eda de la semana, por lo que nuestro c\u00e1lculo arroja 7 <i>lambda <\/i>n\u00fameros, uno para cada d\u00eda de la semana. Este c\u00e1lculo se realiza cada semana.<\/p>\n<p style=\"text-align: left;\"><strong>Detecci\u00f3n de anomal\u00edas:<\/strong> Cada d\u00eda, a las 14.00 horas, buscamos la \u00faltima vez que se vendi\u00f3 el producto. A continuaci\u00f3n, calculamos la probabilidad (funci\u00f3n de masa de probabilidad de Poisson) de no tener ninguna venta entre la \u00faltima venta y las 2.p.m, dada la <i>lambda <\/i>par\u00e1metro. Si la probabilidad es inferior a 1%, consideramos que el producto tiene un \u00edndice de ventas inusualmente bajo.<\/p>\n<p style=\"text-align: left;\">Por ejemplo, imaginemos un refresco de Coca-Cola que se vende regularmente cada 20 minutos, por lo que tiene una <i>lambda<\/i>=3, y que hoy su \u00faltima venta fue a las 11 a.m. Calculamos la funci\u00f3n de masa de probabilidad de Poisson de tener 0 ventas durante 3 horas sabiendo que el producto se vende regularmente 3 veces por hora.<\/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>Resultados<\/strong><\/span><\/p>\n<p><span style=\"font-weight: 400;\">Realizamos pruebas preliminares con nuestro modelo de Poisson intentando medir lo bien que pod\u00eda estimar las ventas a las 2 de la tarde. El modelo fue capaz de estimar el n\u00famero de salidas de productos con una precisi\u00f3n de <\/span><b>67%<\/b><span style=\"font-weight: 400;\">. Este resultado confirm\u00f3 nuestra intuici\u00f3n de que un modelo de Poisson podr\u00eda ser la herramienta adecuada para detectar con precisi\u00f3n la escasez de productos. Por lo tanto, decidimos probar nuestro modelo sobre el terreno.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Acudimos a dos tiendas cada dos d\u00edas para probar y evaluar la precisi\u00f3n de las alertas de nuestro modelo sobre 3000 productos que las tiendas identificaron como prioritarios. Una alerta se considerar\u00eda precisa si la estanter\u00eda estaba vac\u00eda o ten\u00eda menos de 10% de su capacidad media a la misma hora en que se envi\u00f3 la alerta. Esta fase de evaluaci\u00f3n dur\u00f3 2,5 meses y dio como resultado una medida <\/span><b>\u00edndice de precisi\u00f3n de 58% (es decir, 58% de las alertas de falta de existencias de nuestro modelo fueron precisas)<\/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;\">Aunque la precisi\u00f3n del 58% no sea brillante lo que hay que entender es que esta soluci\u00f3n es <\/span><b>muy sencillo de aplicar<\/b><span style=\"font-weight: 400;\"> (lo \u00fanico que necesita es tener acceso a las ventas hist\u00f3ricas data y a las ventas casi en tiempo real data en las tiendas) y puede <\/span><b>ampliarse f\u00e1cilmente a todas las tiendas <\/b><span style=\"font-weight: 400;\">para reducir los riesgos de ruptura de existencias. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Puede aplicar esta soluci\u00f3n a cada tienda en <\/span><b>menos de una semana<\/b><span style=\"font-weight: 400;\"> \u00a1y obtenga directamente la precisi\u00f3n 58-60%! Tenga en cuenta que un <\/span><b>modelo de clasificaci\u00f3n aleatorio tendr\u00eda casi una precisi\u00f3n de 5%<\/b><span style=\"font-weight: 400;\"> ya que en general hay aproximadamente 5% de productos que se agotan en las estanter\u00edas.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Adem\u00e1s, esta soluci\u00f3n podr\u00eda formar parte de un <\/span><b>producto m\u00e1s grande que eleve<\/b> <b>todo tipo de alertas con un bucle de retroalimentaci\u00f3n<\/b><span style=\"font-weight: 400;\">. Las alertas que sean de agotamiento de existencias llevar\u00e1n a los empleados de la tienda a tomar medidas y reponer los estantes, y las que no lo sean podr\u00edan utilizarse para un an\u00e1lisis m\u00e1s profundo con el fin de comprender por qu\u00e9 el producto ha tenido un volumen de ventas inusualmente bajo. Tambi\u00e9n se podr\u00eda pensar en construir un modelo de aprendizaje autom\u00e1tico que clasifique las alertas como agotados en las estanter\u00edas o no, ya que empezaremos a recopilar data etiquetados.<\/span><\/p>\n<p><a href=\"https:\/\/medium.com\/artefact-engineering-and-data-science\" target=\"_blank\" rel=\"noopener noreferrer\">Este art\u00edculo se public\u00f3 por primera vez en The Artefact Tech Blog - una biblioteca de art\u00edculos de ingenier\u00eda y ciencia data.<\/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>\u00bfInteresado en digital y data marketing?<\/b><\/p>\n<p>Suscr\u00edbase a Data Digest, el bolet\u00edn de Artefact, para recibir consejos pr\u00e1cticos, ideas y opiniones en su bandeja de entrada todos los meses.<\/p>\n<p><b>\u00a1Ap\u00fanteme!<\/b><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>25 de noviembre de 2020<br \/>\n En este art\u00edculo, Kasra Mansouri y Camille Le Gonidec, cient\u00edficos s\u00e9nior de Artefact, explican c\u00f3mo crear un producto cient\u00edfico data con recursos data limitados y elevadas restricciones empresariales.\u00a0Descubra c\u00f3mo lograron reducir la falta de existencias de productos en los hipermercados mediante el modelado de series temporales.<\/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\/es\/wp-json\/wp\/v2\/blog\/21367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artefact.com\/es\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.artefact.com\/es\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.artefact.com\/es\/wp-json\/wp\/v2\/media\/21212"}],"wp:attachment":[{"href":"https:\/\/www.artefact.com\/es\/wp-json\/wp\/v2\/media?parent=21367"}],"wp:term":[{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/www.artefact.com\/es\/wp-json\/wp\/v2\/blog-category?post=21367"},{"taxonomy":"blog-language","embeddable":true,"href":"https:\/\/www.artefact.com\/es\/wp-json\/wp\/v2\/blog-language?post=21367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}