martes, 13 de noviembre de 2012

Resumen - Short-term electricity prices forecasting in a competitive market: A neural network approach

Short-term electricity prices forecasting in a competitive market: A neural network approach
J.P.S. Catalao, S.J.P.S. Mariano, V.M.F. Mendes, L.A.F.M. Ferreira

El artículo trata, como el título dice sobre una propuesta para una red neuronal que pueda predecir los cambios en los precios de los recibos de la electricidad en cortos plazos.

Una red neuronal de tres capas, entrenada por el algoritmo Levenbeg-Marquardt es usada para predecir los precios de los recibos de la electricidad para la siguiente semana. Se evalúa también la precisión de la predicción de los precios, reportando los resultados de los mercados en España y California.

Introducción

Los precios de la electricidad son de extrema importancia en un mercado de energía electrica competitivo a todos los participantes, y en particular a los productores y consumidores. Por esto es que un conocimiento previo del precio de la electricidad es importante para manejar los riesgos y puede representar una ventaja para un participante en el mercado que tiene competencia.

En sí, para una compañia en el área de la energía eléctrica, la habilidad para predecir precios futuros significa que la compañia puede estratégicamente establecer ofertas para el mercado en poco tiempo.

Una buena herramienta que prediga los precios debe poder capturar la incertidumbre asociada con los precios. Estas incertidumbres suelen ser el precio de la gasolina, adiciones futuras de generación y transmisión de la energía eléctrica, reglas y regulaciones, crecimiento en la demanda, operaciones de planta y cambios climáticos.

Los precios de la electricidad son influenciados por diversos factores:
  • Precios históricos y demanda
  • Estrategias de Ofertas
  • Reservas de Operación
  • Importación
  • Efecto de la Temperatura
  • Predicción de cortes en los generadores.
Red Neuronal para predecir precios de la electricidad

Una red neuronal de tres capas entrenada por el algoirtmo Levenberg-Marquardt es propuesta para predecir los precios de la electricidad. Utilizan la herramienta de redes neuronales de Matlab, por su sencillez y flexibilidad. 
Las funciones de transferencia utilizadas para la capa oculta y de salida son funciones no lineares y lineares respectivamente
  • Capa Oculta: Utiliza la función tansing, una función de transferencia tangente sigmoidal hiperbólica con salidas entre -1 y 1.
  • Capa de Salida: Utiliza la función purelin, una función de transferencia linealmente pura.
En la fase de entrenamiento, probaron con cuantas unidades trabajar en la capa oculta. El resultado fue que utilizar 5 unidades en la capa oculta daba los mejores resultados. La capa de salida tiene una unidad, encargada de dar de salida los precios de la electricidad de la siguiente semana. 

Datos históricos sobre los precios de electricidad previos son la entrada principal para la red neuronal.

Entrenamiento

Para predecir eventos numéricos futuros, las redes neuronales utilizan dos pasos: entrenamiento y aprendizaje. Entrenar una red neuronal de este tipo es normalmente realizado de una manera supervisada. Uno asume que el set de datos de entrenamiento esta disponible, siendo este datos pasados, conteniendo tanto entradas y las correspondientes salidas deseadas, lo que es presentado a la red.

La selección adecuada de entradas para el entrenamiento es muy importante para el éxito del entrenamiento. En el proceso de aprendizaje una red neuronal construye un mapeado de salida-entrada, ajustando los pesos en cada iteración basado en la minimización de un error entre la salida producida y la deseada.

Sobreentrenar una red neuronal puede deteriorar las predicciones que se realizan, sin mencionar el dar información errónea a la red, lo que causará que la red se confunda y ajuste los pesos erróneamente.

Algoritmo de Entrenamiento

El algoritmo utilizado para está propuesta es el de Levenberg-Marquardt, que entrena una red neuronal de 10 a 100 veces más rapido que el backpropagation. El algoritmo consiste en econtrar la actualización, dada por:

Donde el parámetro u es modificado convenientemente durante las iteraciones del algoritmo.

Calculo del Error

Para evaluar la precisión de la red neuronal, se utilizan diferentes criterios. La precisión es calculada en función de los precios actuales del mercado que han ocurrido. El error absoluto porcentual promedio (MAPE), la suma cuadrada del error(SSE), y el error de desviación estándar (SDE), son definidos como sigue:



Donde ph y ph son usadas respectivamente para predecir los actuales precios de la electricidad a la hora h, p es el precio promedio en el periodo de predicción y N es el número de horas futuras predecidas.

Los precios de electricidad pueden incrementarse hasta 10 o cientos de veces su precio normal en horas particulares Puede bajar hasta cero o hasta ser negativo en otras horas. Por lo tanto, el precio promedio es usado para evitar el problema causado por los precios cercanos a cero.

Los criterios SSE y SDE están dados por:

Donde eh es el error en la predicción a una hora h, y e es el error promedio del periodo de predicción.

Casos de Estudio

Para construir el modelo de predicción para cada semana considerada, la información disponible incluye precios históricos por hora durante los 42 días previos al día de la semana cuyos precios se van a predecir. Datos de entrenamiento muy grandes no deben ser usados para evitar sobre entrenar la neurona.

Un ejemplo de una predicción de la red neuronal se ve en la siguiente gráfica:
Precios de Invierno para el mercado de España. Los precios actuales se muestran con una línea sólida, junto con los precios predecidos, mostrados por la línea punteada. Los datos son en euros por hora megawatt.



Análisis Estadístico del error en las predicciones semanales obtenidos por la red neuronal en un análisis de 5 semanas.

Conclusión

La red neuronal del artículo provee una buena manera para predecir los precios futuros del mercado de la electricidad. 

Además menciona metodos muy interesantes para entrenar una neurona de manera supervisada, y además proporciona funciones para calcular del error que podían ser de utilidad para la aplicación de nuestro proyecto. 

2 comentarios:

  1. Hubiera esperado que un sistema de ese nivel tuviera más neuronas en sus capas, y es interesante que solo 5 den mejores resultados.

    En otro punto, la documentación de octave te especifica que purelin es usada para neural networks, sería interesante aprenderle a eso :)

    http://octave.sourceforge.net/nnet/function/purelin.html

    Y la función que mencionaste que usa la capa oculta es tansig (tangente-sigmoidal) .Esta función es asignada a alguna capa de la red para calcular la salida de dicha capa a partir de las entradas que recibió >>

    http://www.mathworks.com/help/nnet/ref/tansig.html

    ResponderEliminar