← 14 · La lección: señal frente a ruido F5

El ticket medio de 2.405 € tiene un margen de error de unos 46 € arriba o abajo

La pregunta de esta página

El ticket medio es 2.405 €, pero ¿con qué precisión se conoce?

1 El problema

El ticket medio de TechSoluciones es 2.405,41 €. Es la cifra que aparece en el cuadro de mando cuando se pregunta cuánto deja cada venta y la que se compara con la de otros periodos para decidir si el negocio mejora.

Ese valor sale de 19.984 ventas concretas. Con otras 19.984 ventas del mismo negocio, parecidas pero no idénticas, el promedio habría salido algo distinto, porque cada venta tiene su propio importe y basta con que entren unas pocas más caras para mover la media. Por eso, además del valor, hace falta saber cuánto podría cambiar si la muestra fuera otra.

2 Por qué engaña

Un promedio que se publica sin su margen se lee como si fuera exacto. Cualquier diferencia con otro promedio parece entonces un cambio del negocio, aunque sea de pocos euros y se deba solo a qué ventas entraron en la muestra.

El problema se agrava cuando se comparan periodos de tamaño distinto. El ticket medio de un solo mes se calcula con unas pocas centenas de ventas y su margen es mucho más ancho que el del histórico completo. Si se compara un mes con el margen del histórico, cualquier mes corriente parece una anomalía.

3 El principio

Intervalo de confianza
Un promedio es una estimación. El intervalo de confianza es un tramo de valores alrededor del promedio, y su anchura dice cuánto cambiaría el promedio de una muestra a otra del mismo tamaño.

Con un intervalo del 95 %, de cada 100 muestras como esta unas 95 darían un intervalo que contiene el valor verdadero. Es frecuente leerlo como la probabilidad de que el valor verdadero esté dentro del tramo calculado. Esa lectura es incorrecta porque el valor verdadero es fijo y lo que cambia de una muestra a otra es el intervalo.

4 La solución

El intervalo se puede calcular con una fórmula que supone una forma concreta para la variable. Aquí se usa el bootstrap, que no necesita esa suposición: genera muchas muestras nuevas a partir de la que ya se tiene y mira cuánto varía la media entre ellas.

De las 19.984 ventas se saca al azar, con reemplazo, otra tanda de 19.984, de modo que algunas ventas salen dos veces y otras ninguna. Se calcula la media de esa tanda y el proceso se repite 5.000 veces. El intervalo son los dos valores que dejan fuera el 2,5 % más bajo y el 2,5 % más alto de esas medias.

5 Qué pasa con estos datos

Ticket medio
2.405,41 €
19.984 ventas válidas
Intervalo del 95 %
2.360 a 2.452 €
5.000 remuestreos
Ancho
91,46 €
3,8 % del valor

El ticket medio es 2.405,41 € con un margen de unos 46 € arriba o abajo. El intervalo completo mide 91,46 €, un 3,8 % del valor, y sale estrecho porque se apoya en 19.984 ventas.

Cómo se usa el intervalo
Cualquier ticket medio entre 2.360 y 2.452 € es compatible con estas ventas. Para compararlo con otra medición del mismo tamaño no basta con mirar si cae fuera: la otra también tiene su margen, y con los dos juntos la diferencia tiene que superar unos 65 €. Uno de 2.500 € la supera y sería un cambio real que investigar. Uno de 2.455 € queda fuera del intervalo y aun así no la supera. Para comparar un mes o un año concretos hay que calcular el intervalo de ese periodo, que tendrá menos ventas y será más ancho.

6 Para qué sirve

Para publicar cualquier indicador junto a su margen. La página del margen de la facturación mensual aplica el mismo cálculo a la facturación media mensual.

También sirve para decidir si una mejora existe. Si el intervalo es más ancho que la diferencia que se quiere presentar como mejora, los datos todavía no permiten afirmarla.

El detalle técnico

Método del percentil sobre 5.000 remuestreos con reemplazo, generador de semilla 42. No supone que el importe siga una distribución normal. Esa ventaja importa aquí porque el importe de esta empresa tiene unas pocas ventas muy grandes que alargan su reparto.

Ver el remuestreo
# Intervalo por el metodo del percentil: se remuestrea y se miran los extremos
rng = np.random.default_rng(42)
idx = rng.integers(0, len(x), size=(5000, len(x)))   # muestras CON reemplazo
medias = x[idx].mean(axis=1)                       # 5.000 medias posibles
lo, hi = np.percentile(medias, [2.5, 97.5])        # el 95 % central

Fuente: inferencia.json, campo f5_intervalo_confianza.