Cómo calcular la precisión del pronóstico

Un usuario Pregunto ✅

Hammarberg

Untitled.png

Hola,

He estado tratando de entender cómo calcular la precisión de un pronóstico. Así es como suelo configurar una fórmula simple en Excel:

Primero calculo la varianza absoluta entre las ventas y el pronóstico. Hago esto para cada «Material» (producto) individual.

varianza absoluta = ABS (Ventas reales – pronóstico)

Luego resumen la varianza ABS total y el pronóstico total para obtener la Precisión del pronóstico:

Precisión del pronóstico = 1 – (Desviación total de ABS / Pronóstico total)

(en la parte superior puede encontrar una pequeña muestra)

Si alguien tiene una idea, se la agradecería mucho. Esto me está poniendo de los nervios 🙂

Brutus82

Como veo este problema, básicamente está creando un SUMIF () de Excel dentro de DAX. Mi ejemplo es ligeramente diferente, pero espero que ilustre el punto. La clave fue crear un valor dinámico de ‘fecha estática’ en el que se filtró cada fila sumada, así:

Sum_error = VAR staticdate = nepool[date] return abs (sumx (FILTRO (NEPOOL, NEPOOL[Date] = fecha estática), NEPOOL[STF_Error])) / countrows (FILTRO (NEPOOL, NEPOOL[Date] = fecha estática))

Nepool es el nombre de mi conjunto de datos. STF_Error es el error en el pronóstico. Lo dividí por el número de filas para que la agregación funcionara correctamente.

Jaime

Greg_Deckler

Prácticamente lo mismo. Creé datos con sus primeras 3 columnas. Entonces una medida como esta:

Asolute Variance = ABS(SUM(ForecastAccuracy[Sold])-SUM(ForecastAccuracy[Forecast]))

Luego creé otra medida como esta:

Forecast Accuracy = 1 - ( [Asolute Variance] / SUM([Forecast]) )

Pon las primeras 3 columnas y la primera medida en una tabla.

Pon la segunda medida en una visualización de tarjeta. Su precisión de pronóstico funcionará en su tabla también para la precisión de pronóstico de cada material.

Hammarberg

En respuesta a Greg_Deckler

¡Hola y gracias por la rápida respuesta!

Probé esto con la muestra y obtuve el sesgo de pronóstico (95%) en lugar de la precisión (90%). A nivel material sería correcto, pero no puede manejar el hecho de que algunos se hayan vendido por encima del pronóstico y otros por debajo.

En resumen, creo que la fórmula que proporcionó no evalúa cada fila, las resume y luego dice que las cambie a «Absoluto». De alguna manera, primero debe evaluar cada material y luego sumar todas las variaciones individuales.Untitled2.png

Untitled3.png

Sean

En respuesta a Hammarberg

@Hammarberg

convertir la varianza de abs en una columna

ABS Variance COLUMN = ABS ( 'Table'[Forecast] - 'Table'[Sold] )

Bias = DIVIDE ( SUM('Table'[Sold]), SUM('Table'[Forecast]), 0 )

Accuracy = 1 - (SUM('Table'[ABS Variance COLUMN]) / SUM('Table'[Forecast] ) )

Hammarberg

En respuesta a Sean

Hola,

Anteriormente marqué esta publicación como resuelta. En relación con la muestra que le envié lo fue. Sin embargo, después de intentar usar esta solución en mis datos reales, noté que no podía juntar las piezas. Uno de mis problemas es que los datos reales se dividen en dos hojas separadas (que es como recupero la información). Vea las imágenes de ejemplo a continuación.

Las ventas reales se registran por día.

El pronóstico se registra por semana y «Escenario» (Escenario + Fecha = pronóstico para esa semana)

El pronóstico se registra el primer día de la semana.

Quiero poder calcular la precisión del pronóstico en diferentes períodos de tiempo (semana / mes / trimestre / año). Pero cuando pruebo la solución de Seans anterior, creo que obtengo la variación para cada día. ¿Puedo crear nuevas tablas con columnas calculadas para Semana / Mes, etc. y luego resumir las variaciones en esa tabla, o hay alguna otra forma de hacerlo?

Por favor, eche un vistazo al ejemplo y vea si tiene más suerte para controlar esto.

PronósticoPronósticoVentasVentas

¡Gracias por la ayuda!

dedelman_clng

En respuesta a Hammarberg

Estos enlaces de SQLBI pueden ser de alguna ayuda:

http://www.daxpatterns.com/handling-different-granularities/

http://www.sqlbi.com/articles/budget-and-other-data-at-different-granularities-in-powerpivot/

También hay un buen ejemplo en las páginas 378-381 de La guía definitiva de DAX por Russo y Ferrari si puedes conseguir ese libro.

Hammarberg

En respuesta a dedelman_clng

Gracias por el consejo. Lo miré pero no veo nada que pueda ayudarme. La mayoría de las cosas se tratan de medidas, y por lo que tengo entendido, debería usar columnas para poder evaluar las filas individualmente.

¡Me alegra recibir más ideas o consejos!

dedelman_clng

En respuesta a Hammarberg

Una medida se puede evaluar fila por fila si su visualización se usa correctamente (matriz / tabla con los identificadores de fila como filas).

Hammarberg

En respuesta a dedelman_clng

Hola de nuevo,

¿Crees que podrías elaborar sobre la base de las dos imágenes de muestra? No estoy seguro de cómo llegar al siguiente paso, aunque he estado tratando de leer varias publicaciones y los enlaces que proporcionaste. Soy bastante nuevo en DAX, como probablemente comprenderá en este momento. 🙂

dedelman_clng

En respuesta a Hammarberg

Lo que quiero decir con una matriz / tabla que usa una medida como columna es como el siguiente:

Capture.PNG

TYTDRunningUpTime y RDT Hours son ambas medidas. Al poner Fecha y Sistema como filas, las medidas esencialmente se convierten en columnas en ese objeto visual. Entonces, una vez que siga las instrucciones a través de los patrones vinculados, puede usar sus nuevas medidas en cualquiera de sus imágenes.

Sean

En respuesta a dedelman_clng

@Hammarberg

Si desea MEASURE en lugar de COLUMN, use esto, la función SUMX es un iterador

ABS Variance MEASURE = SUMX('Table', ABS('Table'[Forecast] - 'Table'[Sold]) )
Accuracy MEASURE = 1 - ( [ABS Variance MEASURE] / SUM('Table'[Forecast] ) )

¡Esto funciona con el primer ejemplo que publicaste! (Puede filtrar la ‘Tabla’ en el SUMX si es necesario …)

Para conseguir que alguien le ayude más si esta Medida no le ayuda con sus datos reales

Publique datos de muestra que se pueden copiar y pegar en PBI, no en imágenes.

De lo contrario, le está pidiendo a las personas que dediquen tiempo a recrear sus datos para probarlos y muchos se saltearán su pregunta.

PH_Pascual

En respuesta a Sean

Hola

¿Qué pasa si sus datos no están en la misma tabla? puedes usar la función SUMX

Tengo una tabla con previsiones por mes por producto.

una tabla con ventas por mes por producto

una medida rápida para calcular por fila la brecha / delta

una medida para medir la precisión a nivel de fila.

Pero me encuentro con el mismo problema para agregar a nivel de región o país

sigo buscando. si lo encuentro lo compartiré con todos. Mientras tanto, si estáis listos, tenéis la solución, gracias.

Anónimo

En respuesta a PH_Pascual

Hola

¿Encontraste la solución?

Atentamente

Hammarberg

En respuesta a Sean

Hola Sean,

La solución que tenías para UNA tabla funciona perfectamente. Probé algunos enfoques diferentes, pero llegué a un callejón sin salida. Adjunto encontrará un archivo de muestra de Excel más grande y un pbix. Si estuviera listo para echar un vistazo, se lo agradecería mucho.

Ejemplo.xlsx

Sample.pbix

Avíseme si hay algún problema con los enlaces (no vi cómo cargar archivos directamente en el mensaje).

hymieho

En respuesta a Hammarberg

Cuando todos los valores están en una tabla, puede usar las medidas siguientes. No pude averiguar cómo hacerlo cuando cada pieza está en una tabla diferente. Probé SUMMARIZECOLUMNS pero no pude hacerlo funcionar … mi intento está en la parte inferior, tal vez alguien más pueda aconsejarme.

Medidas para la misma tabla

Nota: no había una columna de «artículo» o «fecha», y la combinación de «Datos en el mismo modelo 2» me confunde. Si tuviera que agregar la fecha y el artículo, probablemente querría resumir primero por esas columnas.

Precisión Nuevo =
VAR ABSErr =
SUMX (
‘Datos en la misma tabla 1’,
CALCULAR (
ABDOMINALES (
SUM (‘Datos en la misma tabla 1′[Forecast]) – SUM (‘Datos en la misma tabla 1′[Sold])
)
)
)
VAR Volume = SUM (‘Datos en la misma tabla 1′[Sold])
Precisión VAR = 1- (DIVIDE (AbsErr, Volume))

REGRESO
SI (Volumen = 0,0,
SI (Precisión <= 0,0,
Exactitud)
)

Sesgo Nuevo =
VAR Volume = SUM (‘Datos en la misma tabla 1′[Sold])
VAR Forecastvar = SUM (‘Datos en la misma tabla 1′[Forecast])
REGRESO
IF (Volume = 0, IF (Forecastvar = 0,0,1), (SUMX (‘Datos en la misma tabla 1’, ‘Datos en la misma tabla 1′[Forecast] – ‘Datos en la misma tabla 1′[Sold]) / Volumen))

out.jpg

Mida los valores en diferentes tablas No funciona

Precisión del pronóstico =
VAR ABSErr =
SUMX (
RESUMEN COLUMNAS (
‘Fechas'[Date],
‘Artículos'[Article]),
ABDOMINALES (
SUM (Previsión[Forecast]) – SUM (Ventas[Sold])
)

)

VAR Volumen = SUM (Ventas[Sold])
Precisión VAR = 1- (DIVIDE (AbsErr, Volume))

REGRESO
SI (Volumen = 0,0,
SI (Precisión <= 0,0,
Exactitud)
)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *