Cómo ajustar una Función de Probabilidad Teórica a una serie de datos Empíricos

En el análisis del comportamiento de una línea de espera se suele considerar  la premisa de que el tiempo entre llegada de los clientes se distribuye exponencial con parámetro lambda (λ). Si bien esta presunción es válida en muchas situaciones es conveniente realizar un diagnóstico de dicha situación a través de test estadísticos ad hoc. En este contexto el siguiente artículo aborda el problema de ajuste de una función de probabilidad teórica a una serie de datos empíricos que como se menciono anteriormente es un asunto de interés en el análisis de los sistemas de espera como así también en un sin número de aplicaciones estadísticas clásicas.

La data que utilizaremos en este tutorial fue obtenida del Libro Matching Supply with Demand: An Introduction to Operations Management. Esta corresponde a las 686 llamadas que ha recibido un Call Center en un período de 4 horas según se muestra a continuación:

tabla-data-call-center

La pregunta que queremos responder es: ¿El tiempo entre llamada de los clientes se distribuye exponencial?. Análogamente ¿Qué función de probabilidad teórica ajusta de mejor forma los datos empíricos?. Para enfrentar dichas interrogantes utilizaremos el software Easyfit que hemos abordado en artículos anteriores para la confección de histogramas y análisis de estadísticas descriptivas.

Preliminarmente ordenaremos los datos recolectados en una columna y procedemos a calcular el tiempo transcurrido entre cada llamada (Iai), por ejemplo, entre la primera y segunda llamada pasan 23 segundos, entre la segunda y tercera llamada pasan 1 minuto y 24 segundos (equivalente a 84 segundos) y así sucesivamente. A continuación se muestra un extracto de dicho procedimiento:

calculo-del-tiempo-entre-ll

Con los tiempos entre llamadas en segundos (o su equivalencia en minutos si así se desea) se hace uso de Easyfit. Copiamos dichos tiempos en la columna A tal se muestra en la siguiente imagen y luego la opción «Ajustar distribuciones»:

ajustar-distribuciones-easy

Luego seleccionamos «OK»:

datos-de-entrada-easyfit

El programa se ejecuta y proporciona los resultados de los ajustes de los datos empíricos a un importante número de distribuciones teóricas, proporcionando una estimación de los parámetros respectivos.

ajuste-easyfit-datos-empiri

La distribución Wakeby es la que muestra el mejor ajuste, considerando los siguientes parámetros:

parametros-wakeby

Adicionalmente podemos obtener los test de bondad de ajuste (en la pestaña «Bondad de ajuste»). Probablemente el más conocido de ellos es el test Chi-cuadrado (notar que las distribuciones han sido ordenadas en base a este criterio). También se puede obtener el detalle de las pruebas de hipótesis para distintos niveles de significancia estadística (valores de alfa).

bondad-de-ajuste-easyfit
valores-p-easyfit

Una interpretación exhaustiva de los test de bondad de ajuste requiere de una discusión más detallada que escapa a los propósitos de este artículo. No obstante queda de manifiesto que existen herramientas computacionales que permite simplificar este tipo de análisis que es recurrente en el ámbito de la estadística y por cierto en el de la gestión de operaciones.

Técnica de Littlewood en Revenue Management para determinar niveles de protección

La Regla o Técnica de Littlewood es ampliamente utilizada en el Revenue Management como procedimiento para asignar la capacidad de un recurso. Para ello se considero un vuelo con 2 tarifas, p1 y p2, en los cuales p1>p2, además de ello la demanda del producto 2 se presenta antes que la demanda de la clase 1. Este supuesto de orden de llegada de los clientes es importante para la formulación del modelo,  ya que representa el comportamiento lógico que debiesen tener los consumidores frente a un producto de similares características. Por ejemplo los segmentos con menor disposición a pagar (por ejemplo «turistas») tienden a comprar con mayor antelación que un segmento de mayor disposición a pagar (por ejemplo «ejecutivos») los cuales compran en una fecha más cercana a la del vuelo.

La solución se puede obtener mediante el análisis de la relación ingreso/pérdida marginal, es decir, hay que suponer  que quedan n unidades de capacidad disponible y llega el cliente de clase 2. Si se acepta la llegada del cliente clase 2, se recibirá ingresos de p2. En caso de no aceptar, se venderán n unidades al precio p1, solamente si se cumple que la demanda de clase 1 es  mayor o igual que n. Esto se refiere que evitaremos capacidad inutilizada. En resumen, si y sólo si D1>=n. Como resultado, el beneficio que se espera de reservar el n-ésimo asiento para la clase 1 (paga un precio mayor), que es el beneficio marginal esperado es p1*P[D1>=n]. Finalmente tiene sentido y lógica aceptar llegada de clientes 2, siempre que su precio supere este valor marginal o sea equivalente: p2>p1*P[D1>=n]. Para ejemplificar lo anterior consideremos el siguiente caso:

Técnica de Littlewood en Revenue Management

Una línea aérea ofrece dos precios para sus vuelos en un tramo particular: el precio “Full” que cuesta $440/ticket (dirigido al segmento «ejecutivo») y el precio “Económico” que cuesta $218/ticket (dirigido al segmento «turista»). En el avión hay 230 asientos. La demanda de pasajes a tarifa “Full” tiene la siguiente distribución empírica:

distribucion-empirica-deman

Utilizando la Regla de Littlewood se desea determinar el nivel de protección de asientos “Full” y el límite que se debería imponer en el número de reservas de tipo “Económico”. Para ello determinamos el mayor valor de Q tal que:

ejercicio-littlewood
Para Q=45, P(Dfull<=Q) = 0,49 y P(Dfull=Q) = 0,07
Luego P((Dfull<Q) = P(Dfull<=Q) – P(Dfull=Q) = 0,49 – 0,07 = 0,42 < 0,504
Para Q=46, P(Dfull<=Q) = 0,51 y P(Dfull=Q) = 0,02
Luego P((Dfull<Q) = P(Dfull<=Q) – P(Dfull=Q) = 0,51 – 0,02 = 0,49 < 0,504
Para Q=47, P(Dfull<=Q) = 0,54 y P(Dfull=Q) = 0,03
Luego P((Dfull<Q) = P(Dfull<=Q) – P(Dfull=Q) = 0,54 – 0,03 = 0,51 > 0,504

La cantidad óptima de asientos a destinar (nivel de protección) a la tarifa «Full» es de 46 asientos. En consecuencia el número máximo de reservas a aceptar de la tarifa descontada es 184 asientos (230-46).

Una forma equivalente de enfrentar el problema anterior es mediante el cálculo del valor esperado (ganancia marginal) asociado a distintos niveles de protección de la tarifa «Full». Para ello notar que P[D1>=Q]=1-P[D1<Q] o análogamente P[D1>=Q]=1-P[D1<=Q]+P[D1=Q]. Con ello obtenemos las 2 últimas columnas de la derecha de la siguiente tabla:

calculo-valor-esperado-reve

El valor esperado se obtiene de p1*P[D1>=Q], por ejemplo para Q=46 tenemos $440*P[D1>=46]=$224,4>$218 (este último precio tarifa turista). Luego el mayor valor de Q que satisface la condición de Littlewood es Q=46 asientos como nivel de protección para la tarifa Full.

Cómo calcular la Utilización de un servidor, Tiempo de Espera y Tiempo de Flujo de una Línea de Espera

El siguiente artículo aborda de forma práctica cómo calcular algunos indicadores de desempeño básico de un sistema de espera con un único servidor. Entre ellos, la tasa promedio de flujo (λ), la capacidad promedio del servidor (μ), la utilización promedio del servidor (ρ=λ/μ), el tiempo promedio que un cliente esta en la fila esperando ser atendido (Wq) y el tiempo promedio que un cliente esta en el sistema (Ws), esto incluyendo tanto los tiempos de espera como los tiempos de atención.

Considere un proceso de línea de espera que tiene un servidor y una única fila (caja de atención) como el que se describe a continuación. Se opera bajo una regla de prioridad FIFO, es decir, se atienden los clientes por orden de llegada. Los registros tomados para la primera hora de trabajo de un día en particular son los siguientes:

linea-de-espera-1-servidor
tabla-llegada-de-clientes-l

Por ejemplo el Cliente 3 llega exactamente 9 minutos después de iniciada las actividades y una vez que comienza su atención (por el servidor) el tiempo requerido para completar ésta es de 7 minutos. Es decir, el tiempo de flujo de este cliente es de 11 minutos, donde 7 minutos corresponde a la atención en sí y los 4 minutos restantes son los minutos que debe esperar que se desocupe el servidor (que esta atendiendo al Cliente 2). Con este ejemplo queda en evidencia que contar con la información de las primeras 3 columnas se puede completar la información de las columnas restantes.

Ahora desarrollaremos algunos cálculos básicos que permite tener una noción del desempeño de esta línea de espera.

Calcular la tasa de flujo promedio (λ) y la capacidad promedio del servidor (μ): Pasaron 12 clientes por el servicio en 60 minutos, luego la tasa de flujo promedio es λ=0,2[clientes/minuto]=12[clientes/hora]. El tiempo de servicio promedio es 4[min] (corresponde al promedio de los valores de la columna Ws), luego la capacidad promedio es μ=1[clientes]/4[min]=0,25[clientes/min]=15[clientes/hora].

La utilización promedio del servidor (ρ): Esto permite estimar que porcentaje del tiempo en promedio el servidor esta ocupado (atendiendo clientes). En nuestro ejemplo ρ=λ/μ=12[clientes/hora]/15[clientes/hora]=80%. Notar que de este ejemplo sencillo se obtiene una importante conclusión que se puede extrapolar a otros sistemas de espera más complejos:

Si existe variabilidad en las llegadas y/o atenciones, entonces hay colas (aunque de largo finito). A pesar de que λ<μ, es decir, de que ρ<1. Si λ>μ el sistema es inestable (colas infinitas). Es decir, las colas se deben a la variabilidad y no al hecho de que λ>μ (ρ>1).

El tiempo promedio que un cliente pasa en el sector de caja (espera + atención) (Ws): El tiempo promedio que un cliente pasa en el sector de caja corresponde al promedio de los valores de la columna “Tiempo Sistema”: Ws=8[min].

Evalúe si el proceso de llegada es estacionario: Un proceso de llegada es estacionario si el número esperado de clientes que llegan al sistema sólo depende de la longitud del intervalo de tiempo y no del tiempo de inicio del intervalo. Lo anterior por simple inspección no se cumple para el ejemplo. En este sentido se puede apreciar que en la primera media hora de observación han llegado 8 clientes (de un total de 12 clientes en la hora completa). Por tanto el sistema tiene un requerimiento mayor en el primer período de observación.

clientes-acumulados

El gráfico anterior corrobora esta conclusión. Se muestra la cantidad de clientes (acumulados) que han llegado al sistema al cabo de un determinado tiempo. La línea roja mostraría teóricamente el comportamiento de un proceso estacionario, donde un cliente llega exactamente cada 5[min]. La línea azul muestra el comportamiento real del proceso en estudio.

¿Qué es el Revenue Management?

El Revenue Management o conocido también como Yield Management consiste en la aplicación de herramientas analíticas que permiten la segmentación de clientes y la discriminación de precios, optimizando la disponibilidad del producto o servicio en el tiempo, con el propósito de maximizar el desempeño de la función de ingresos en la empresa. En este contexto se han propuesto una serie de definiciones en torno a este concepto entre las cuales destacan:

Vender el producto correcto al cliente correcto en el momento correcto al precio correcto.

Maximizar los ingresos controlando cuidadosamente la liquidación del inventario mediante la regulación de precios y el control de disponibilidad en el tiempo.

En la actualidad la aplicación del Revenue Management a la gestión de la política de precios, es una metodología que se ha ido masificando debido a la imperiosa necesidad de lograr un desempeño eficiente en la gestión de la capacidad en el tiempo. Esta realidad se sustenta, entre otros factores, por la mayor competitividad en los mercados y la apertura de éstos, con clientes cada vez más informados y exigentes. En este contexto sus aplicaciones no se limitan a una industria, no obstante existe abundante evidencia empírica en la industria de transporte de pasajeros (aérea, terrestre, marítimo), hotelería, retail, rent a car, televisión, etc. Existen ciertos elementos claves asociados al Revenue Management:

1. Bienes perecibles (valor cambia en el tiempo): En el caso de los servicios esta situación es evidente. Por ejemplo, un hotel que desea gestionar su capacidad para la noche del año nuevo comprende que una vez trascurrida dicha fecha si no logra asignar todas sus habitaciones habrá perdido una oportunidad de vender dichas habitaciones a un precio eventualmente menor que permitiera (eventualmente) lograr una mayor recaudación.

2. Demanda incierta y que varía en el tiempo: La demanda por naturaleza es estocástica y por tanto al tomar decisiones respecto a los precios se esta decidiendo en un contexto de incertidumbre.

3. Distintos tipos de clientes (¡discriminables!): Se reconocen distintos segmentos de mercados sobre los cuales se pueden aplicar estrategias específicas.

4. El mismo producto/servicio se puede vender a distintos tipos de clientes: Los cuales tienen comportamientos particulares frente al producto o servicio y por lo general con distintas disposiciones a pagar.

5. Libertad de acción (firma orientada a maximizar ganancias): Este asunto es vital. Por ejemplo un monopolio natural podría reconocer que sus clientes tienen distintas disposiciones a pagar por sus servicios pero probablemente el mercado en el que se desenvuelva este regulado y por tanto no puede ejercer libremente la discriminación de precios.

Para la implementación del Revenue Management se deben identificar las siguientes actividades características:

1. Modelar y predecir demanda de los distintos segmentos de mercados a los cuales se dirige el producto o servicio. Un segmento de mercado es un grupo de clientes que  valoran similarmente un producto/servicio en el tiempo. Si bien cada cliente no es idéntico a otro cliente, para efectos prácticos y con el objetivo de implementar estrategias comerciales se tiende a agrupar a éstos en segmentos, buscando maximizar la homogeneidad de los individuos al interior de un segmento y al mismo tiempo maximizando la heterogeneidad en comparación a individuos pertenecientes a otros segmentos de mercados. Existe una serie de herramientas y procedimientos para agrupar individuos en segmentos de mercados lo cual se conoce como análisis de cluster o «clustering», destacándose para estos propósitos software o programas estadísticos como SPSS o Minitab.

Es importante comprender que la segmentación de mercado no es perfecta. Si bien quisiéramos que cada cliente pagara lo que corresponde a su segmento, en la vida real ocurren fugas de demanda (de segmentos altos a bajos) cuando la segmentación no es perfecta. Para evitar las fugas de demanda, se emplean barreras como herramientas para separar los distintos segmentos. Las barreras se materializan a través de la versión del producto, canal de distribución, tiempo, cupones, etc.

2. Controlar precios de los productos o servicios de acuerdo a la clase (segmento) de cliente, canal de distribución, tiempo, etc.

3. Controlar la disponibilidad de los productos o servicios en el tiempo. Por ejemplo, una línea aérea puede reconocer que los clientes con mayor disposición a pagar son aquellos que compran con menor antelación, en consecuencia podría ser razonable no vender los pasajes por «orden de llegada» debido a que probablemente los segmentos con menor disposición a pagar (generalmente «turistas») compran con mayor antelación y podrían dejar sin asientos a los segmentos con mayor disposición a pagar.

4. Negociar contratos y precios.

Para ejemplificar parte de los conceptos presentados anteriormente consideremos una función de demanda. Una función o curva de demanda en una abstracción que representa la cantidad de demanda en función del precio de oferta. Por ejemplo sea d(p)=130-p y el costo unitario de producción c=10. Asumamos un precio único que se cobrará a todos los clientes de p=$70.

ganancia-un-solo-precio

Por cada unidad que logra vender la firma se obtiene una ganancia de p-c, en el ejemplo p-c=$70-$10=$60. Adicionalmente a un precio de $70 la cantidad demandada es de d(70)=130-70=60 y la ganancia de la firma es de 60*60=$3.600. Otro efecto de la fijación de precios es que existen clientes con disposición a pagar mayor a $70 pero como el precio fue menor ($70) quedaron con una holgura respecto a lo que estaban dispuestos a pagar (esto se conoce como la holgura de los compradores). En contraste a lo anterior al precio de $70 no todos los clientes están dispuestos a pagar dicho precio lo que genera una oportunidad perdida.

¿Qué sucedería si tuviésemos por ejemplo la oportunidad de fijar 2 precios?. Asumamos 2 precios de $50 y $90, respectivamente.

ganancia-2-precios

Se puede observar que aumenta la ganancia de la firma al mismo tiempo que disminuye la holgura de los compradores y la oportunidad perdida. Intuitivamente esta sería una opción a implementar, no obstante, la principal dificultad práctica es cómo evitar que aquellos clientes que tienen disposición a pagar mayor o igual a $90 adopten el precio de $50. De forma análoga, cómo evitamos una fuga de clientes del segmento con mayor disposición a pagar al segmento de menor disposición a pagar. La respuesta a la pregunta anterior no es sencilla y básicamente se basa en establecer barreras que permitan minimizar la fuga de clientes (no evitarlas en un 100%).

Punto de Reposición e Inventario de Seguridad con Demanda y/o Lead Time Variable

En la revisión de las herramientas básicas para la gestión de inventarios destaca el modelo EOQ (Economic Order Quantity) o análogamente en su traducción al español conocido como Cantidad Económica de Pedido. Este modelo tiene una serie de supuestos simplificadores entre los cuales destaca que tanto la demanda y el tiempo de reposición (o lead time) es constante y conocido. Lo anterior limita significativamente su aplicación práctica dado que la regla general es que la gestión de inventarios esta afecta a la incertidumbre.

Al existir incertidumbre (en la demanda y/o lead time) será necesario establecer un nivel de servicio conocido como Instock (α) que permita acotar la probabilidad de quiebre de stock a un valor objetivo (1-α) durante el tiempo de reposición. En este contexto el Punto de Reposición (ROP) determina el momento en el tiempo en el cual será necesario realizar una nueva orden de pedido.

Las siguientes fórmulas permiten calcular el Punto de Reposición (ROP) para distintos escenarios de incertidumbre de la demanda y/o tiempo de reposición:

formulas-calculo-rop

Ejemplo Caso 1: Demanda Fija – Lead Time Fijo

Una empresa enfrenta una demanda anual de 1.500 unidades de un producto en particular. Los costos unitarios de mantener inventario son de $0,18 anual. El costo fijo de emitir un pedido (independiente del tamaño del mismo) es de $15 y el tiempo de reposición del proveedor es de 2 semanas. Determine el tamaño óptimo de pedido utilizando EOQ y el Punto de Reposición. Asuma que el año tiene 50 semanas.

El tamaño de pedido que permite minimizar la función de costos totales es:

q-optimo-caso-1

El Punto de Reposición corresponde a:

rop-caso-1

La empresa deberá realizar una nueva orden de pedido (de 500 unidades) cada vez que su inventario alcance las 60 unidades. Una pregunta natural es ¿cuál es la probabilidad de tener quiebre de stock durante el período de reposición?. La respuesta: 0%. Esto debido a que se asume que no existe incertidumbre y por tanto los pedidos llegaran justo a tiempo. En consecuencia en este escenario no es necesario disponer de un stock de seguridad.

Ejemplo Caso 2: Demanda Variable – Lead Time Fijo

La demanda diaria por una cerveza se distribuye normal con media de 50 litros y desviación estándar de 15 litros. El tiempo de reposición es de 10 días. Si se desea un nivel de servicio Instock de un 95% determine el Punto de Reposición y el Inventario de Seguridad.

rop-caso-2

Notar que Z(95%)~1,645 lo cual se puede obtener utilizando Excel y la fórmula: =DISTR.NORM.ESTAND.INV(95%). También se podría asumir que no está permitido comprar cerveza en fracciones de litros. En dicho caso ROP debe ser de 579[litros] (notar que el criterio de aproximación es al entero superior más cercano de modo que se garantice el nivel de servicio mínimo).

En cuanto al inventario de seguridad, éste corresponde a:

inventario-seguridad-caso-2

Ejemplo Caso 3: Demanda Fija – Lead Time Variable

La demanda diaria de un artículo es de 50 unidades. El tiempo de reposición sigue una distribución normal con media de 8 días y desviación estándar de 2 días. Obtenga el ROP que permita asegurar un nivel de servicio de un 95%.

rop-caso-3

El Punto de Reposición debe ser de 567[unidades].

Ejemplo Caso 4: Demanda Variable – Lead Time Variable

La demanda diaria de una hamburguesa sigue una distribución normal con media de 1.000 unidades y desviación estándar de 100 unidades. El tiempo de reposición también se distribuye normal con media de 8 días y desviación estándar de 2 días. Encuentre el Punto de Reposición para un nivel de servicio de un 95%.

rop-caso-4