Saltar a contenido

Algoritmos de predicción de orakWlum

orakWlum es una herramienta capaz de generar previsiones de consumo a partir de las medidas históricas del ERP de Comercializadora con el fin de tener una base sólida sobre la que generar las ofertas de compra a publicar en el Operador del Mercado (OMIE).

Para ello, basta con elegir una fecha y un algoritmo de predicción entre los disponibles. Las predicciones variarán según el algoritmo utilizado, ya que cada uno de ellos emplea diferentes estrategias y variarán los datos históricos utilizados para calcular la predicción.

Elección del algoritmo de predicción

Una vez creada la previsión de consumo, ésta se calculará utilizando el algoritmo predictivo elegido.

Teoría común

Cuando orakWlum trata de encontrar consumo histórico para los CUPS, el algoritmo utilizado irá recorriendo las fuentes en orden de prioridad ascendente, es decir, empezando por la que tenga el valor de prioridad más bajo. Si no se encuentra el consumo por a las 24 horas del día en la fuente consultada, se salta a la siguiente en orden de prioridad, hasta que se han recorrido todas.

Si después de recorrer todas las fuentes, el CUPS queda sin consumo, lo que se hace es consultar la tarifa de acceso y calcular una media por tarifa y hora a partir de todos los CUPS con esa misma tarifa que sí han encontrado consumo histórico en las fuentes.

De esta forma, se garantiza que se obtiene el consumo para todos los CUPS, aunque alguno pueda no estar presente en las fuentes.

En el diagrama siguiente se muestra cómo un conjunto de CUPS van obteniendo la previsión de consumo a partir del histórico o, por en el caso de los CUPS que no dispongan del mismo, de la media de consumo del resto de CUPS con la misma tarifa de acceso.

Obtención de Consumo Histórico

Inicialmente, ninguno de los CUPS dispone de consumo histórico. A medida que se recorren por orden de prioridad las fuentes de consumo histórico (F5D, F1, P1, etc.) cada vez hay más CUPS que han obtenido consumo (conjunto azul) mientras que va menguando el número de CUPS que no lo han obtenido (conjunto rojo). Al terminar el recorrido de las fuentes, se obtiene el consumo por los CUPS que todavía no tienen mediante la media por hora de los CUPS de la misma tarifa que sí han obtenido consumo.

Una vez hecha la obtención del consumo de cada hora para todos los CUPS, se agrupan estos consumos por hora y se genera así la previsión.

M-12 (One-Year-Ago)

Este algoritmo es muy rápido. Su estrategia es, dada la fecha para la que se quiere calcular la previsión de consumo, retroceder un año exacto en el tiempo para encontrar ese mismo día de la semana hace un año y consultar su histórico de consumo en las fuentes de orakWlum.

En el siguiente ejemplo, se quiere generar una previsión de consumo para el 21 de abril de 2022 (marcado en amarillo en el calendario). orakWlum calculará cuál es el jueves equivalente de hace un año y obtendrá de los históricos de consumo de esa fecha el consumo en proponer. En este ejemplo, la fecha objetivo será el 22 de abril de 2022 (marcado en amarillo en el calendario). Los CUPS que no tengan histórico de consumo en esta fecha, se estimarán con el promedio horario de acuerdo con la tarifa, tal y como se explica en el diagrama de la sección anterior de este documento.

Ejemplo M-12

Este algoritmo es muy ligero, permite realizar predicciones para miles de CUPS en unos segundos y funciona especialmente bien cuando el conjunto de CUPS tiene una estacionalidad muy marcada, es decir, cuando los CUPS tienen un perfil de consumo muy distinto según la época del año (por ejemplo, los asociados a hoteles o zonas turísticas).

Ventajas

  • Rapidez de cálculo.
  • Buen funcionamiento con carteras de CUPS con perfil de consumo marcadamente estacional.

Limitaciones

  • Sensible a desviaciones provocadas por perfiles de consumo atípicos hace un año de la fecha de la predicción.

Gauss (Medias Normalizadas)

Este algoritmo es más robusto. Su estrategia es, dada la fecha para la que se quiere calcular la previsión de consumo, crear una colección de días “candidatos” de los que obtener consumo histórico para calcular la previsión.

Por eso, en primer lugar debemos definir los “tipo de días” de la semana. El comportamiento del algoritmo será diferente según tratamos cada uno de los 7 días de la semana como un tipo de día diferente o si, como se decide a veces, se tratan como el mismo tipo de día los martes, miércoles y jueves. De esta forma, si decidimos que los jueves son un tipo de día en particular, cuando se consulte el consumo histórico, la colección de días candidatos constará de varios jueves anteriores a la fecha de la predicción. Si se opta por considerar que martes, miércoles y jueves son un mismo tipo de día, entonces la predicción para un jueves utilizará martes, miércoles y jueves de las semanas anteriores a la fecha de predicción. En cualquier caso, los festivos y los domingos siempre se considerarán un mismo tipo de día.

El principal objetivo de este algoritmo y su evolución respecto al M-12 es que tengamos una muestra de consumos históricos más recientes y más cercanos a la fecha de la previsión. Por eso, se puede ajustar el parámetro “max” para decir hasta cuántos días atrás queremos consultar cuando se haga una predicción. De esta forma, si el parámetro “max” se ajusta a 10 días, al calcular una predicción para el próximo jueves, se utilizarán como días candidatos los 10 jueves anteriores, en orden temporal inverso, del más reciente al más antiguo. Es importante señalar, que si se estableció que el jueves es el mismo tipo de día que el martes y el miércoles, entonces la muestra de días candidatos de los que consultar el consumo histórico en las fuentes serán por este orden: miércoles anterior, el martes anterior, jueves de hace una semana, miércoles de hace una semana, martes de hace una semana, jueves de hace dos semanas, miércoles de hace una semana, etc. hasta llegar a los 10 días candidatos, como establece el parámetro max. Este parámetro permite entonces definir lo próximos queremos que sean los días candidatos para tener en cuenta el perfil de consumo.

Un problema que ocurre a veces con el algoritmo M-12 es que al utilizar un único día para consultar el histórico, es posible que ese día tuviera unas condiciones distintas al de la predicción. Por ejemplo, una temperatura extrema y rara para la época o cualquier otra circunstancia que provoque que el perfil de consumo de los CUPS no fuera típico y desvíe la previsión. Para evitar esto, el algoritmo Gauss tiene un último parámetro llamado “min” que define el número mínimo de días sobre los que se consultará el consumo. Esto significa que si ajustamos el parámetro “min” a 3 días, por ejemplo, en lugar de recorrer los días candidatos atrás en el tiempo y utilizar para cada CUPS el primer día que encuentre el consumo de las 24 horas, iré guardando días completos hasta tener los requeridos por el parámetro. Es decir, que orakWlum guardará para cada CUPS una muestra de 3 días completos con el consumo en cada una de las 24 horas. Una vez terminado el recorrido, para cada CUPS se realizará una media normalizada entre los consumos de la muestra hora a hora, suavizando así los posibles consumos atípicos que pudieran desviar la previsión.

En el siguiente ejemplo, se quiere generar una previsión de consumo para el 22 de abril de 2021. En el ejemplo de la izquierda, se ha ajustado que el jueves es un único tipo de día y en el ejemplo de la derecha, se consideran el mismo tipo de día martes, miércoles y jueves. En ambos casos, se irá retrocediendo en el tiempo hasta el máximo de días establecido en el algoritmo (6 días, en este caso). En el primer ejemplo, vemos que sólo se tienen en cuenta los jueves anteriores a la fecha de la previsión, mientras que en el ejemplo de la derecha, se tendrán en cuenta los martes, miércoles y jueves anteriores a la fecha de previsión hasta tener así los 6 días candidatos. Una vez seleccionados estos días candidatos, orakWlum los recorrerá de más reciente a más antiguo consultando sus consumos históricos correspondientes a los CUPS en estas fechas.

Ejemplo Gauss

Los CUPS que no hayan podido obtener una muestra de consumo histórico, se estimarán con el promedio horario de acuerdo con la tarifa, tal y como se explica en el diagrama de la sección anterior de este documento.

Ventajas

  • Mejor precisión que el algoritmo M-12, al ser menos sensible a los perfiles de consumo atípicos de los históricos.
  • Gran fiabilidad, al consultar una muestra de consumo histórico lo más cercana posible a la fecha de la predicción.
  • Mayor personalización, al poder ajustar los parámetros disponibles.

Limitaciones

  • Tiempo de cálculo mucho más elevado que el algoritmo M-12 al tener que obtener muchos más datos y normalizarlos, antes obtener el consumo propuesto.