Вы находитесь на странице: 1из 20

AO DE LA CONSOLIDACIN DEL MAR

DE GRAU

UNIVERSIDAD NACIONAL DE PIURA


FACULTAD DE CIENCIAS
ESCUELA PROFESIONAL DE ESTADSTICA

CURSO:

Inteligencia artificial

TEMA:

Redes neuronales y series de tiempo

ALUMNO:

Samuel Porras Sandoval

DOCENTE:

Prof. Lemin Abanto Cerna

PIURA PER

2016
INTELIGENCIA ARTIFICIAL

INTRODUCCIN

La prediccin de las series de tiempo es un tema de gran inters por la diversidad de


aplicaciones en las diferentes reas del saber y porque dado un conjunto de datos
correspondiente a un mismo fenmeno respecto al tiempo los valores futuros son
dependientes a los valores pasados.

En los ltimos tiempos el inters por la prediccin de series de tiempo ha aumentado puesto
que ayudado con las nuevas tecnologas se puede procesar informacin y realizar clculos
complejos en minutos e incluso segundos.

Asimismo, dado que muchas de las series que son de inters de anlisis tiene una
naturaleza no lineal, se hace necesario utilizar otras tcnicas fuera de las clsicas para
realizar prediccin y as obtener modelos ms eficientes.

Las redes neuronales artificiales son herramientas de prediccin las cuales son exitosamente
aplicadas en las series de tiempo. Las redes neuronales artificiales son una rama de la
inteligencia artificial que consiste en el aprendizaje y procesamiento automtico inspirado en
la forma en que funciona el sistema nervioso biolgico.

El objetivo de usar redes neuronales artificiales es conseguir respuestas similares a las del
cerebro humano las cuales se caracterizan por su generalizacin y robustez.

En el siguiente trabajo evaluaremos la capacidad que presentan las redes neuronales


artificiales en la prediccin de series de tiempo, estudiando una serie de tiempo tomada del
campo de la economa: Tipo de cambio del dlar a euro en el plazo de marzo 2006 a febrero
2016.

SAMUEL PORRAS SANDOVAL


INTELIGENCIA ARTIFICIAL

I. OBJETIVOS
Objetivo general:

Predecir el tipo de cambio mensual de dlar a euro utilizando Redes Neuronales


Artificiales.

Objetivos especficos.

Programar una red neuronal en Matlab para un modelo de prediccin de series de


tiempo.

Utilizar ntstool (herramienta de Matlab) para la prediccin de series de tiempo.

Comparar los resultados de la red neuronal manual y la del toolbox de Matlab.

Determinar el modelo para la prediccin del tipo de cambio.

II. PLANTEAMIENTO DEL PROBLEMA


Muchas de las series que son de inters de anlisis tiene una naturaleza no lineal, se hace
necesario utilizar otras tcnicas fuera de las clsicas para realizar prediccin y as obtener
modelos ms eficientes.

III. FORMULACIN DEL PROBLEMA


Tienen las redes neuronales la capacidad de predecir una serie de tiempo?

SAMUEL PORRAS SANDOVAL


INTELIGENCIA ARTIFICIAL

IV. MARCO TERICO

4.1. Definicin de Serie de Tiempo

De acuerdo a Bowerman y OConnel, 1993, una serie de tiempo es una


secuencia cronolgica de observaciones de una variable particular.

Conseguimos series de tiempo en los distintos campos del saber: en economa,


mercadeo, demografa, meteorologa, ingeniera, etc. Muchos son los ejemplos de
series de tiempo que podran citarse, tales como:

Las ventas mensuales de una empresa en la ltima dcada.

El nmero de automviles producidos por ao de determinada marca en el


periodo 1985- 2000.

La temperatura diaria promedio en los ltimos 6 meses.

4.1.1. Objetivos del Anlisis de Series de Tiempo

Segn Chatfield, 1978, son varios los objetivos por los cuales se puede querer
analizar una serie de tiempo:

Descripcin: Cuando tenemos una serie de tiempo, el primer paso en el


anlisis es graficar los datos y obtener medidas descriptivas simples de
las propiedades principales de la serie.

SAMUEL PORRAS SANDOVAL


INTELIGENCIA ARTIFICIAL

Explicacin: Cuando las observaciones son tomadas sobre dos o ms


variables, es posible usar la variacin en una serie para explicar la
variacin en otras series.

Prediccin: Dada una serie de tiempo se puede querer predecir los valores
futuros de la serie. Este es el objetivo ms frecuente en el anlisis de
series de tiempo.

Control: Cuando una serie de tiempo se genera por mediciones de calidad


de un proceso, el objetivo del anlisis puede ser el control del proceso.

4.1.2. Componentes de una Serie de Tiempo

Una serie de tiempo frecuentemente es examinada con la intencin de descubrir


patrones histricos que puedan ser tiles en la prediccin. Para identificar
estos patrones es conveniente pensar que una serie de tiempo consiste de varios
componentes (Bowerman y OConell, 1993):

SAMUEL PORRAS SANDOVAL


INTELIGENCIA ARTIFICIAL
1. Tendencia: Una serie de tiempo tiene tendencia cuando por largos
periodos los valores crecen o decrecen. Tambin puede definirse
como cambios en la media.

2. Ciclos: Se refiere a movimientos hacia arriba y hacia abajo


alrededor del nivel de la tendencia. Estas fluctuaciones, medidas
de pico a pico, pueden tener una duracin larga.

3. Variaciones Estacionales: Son patrones peridicos que ocurren


y se repiten cada determinado tiempo, por ejemplo: anualmente.
Estas variaciones son usualmente causadas por factores como el
clima y las costumbres.

4. Fluctuaciones Irregulares: Son movimientos errticos en una


serie de tiempo que no siguen un patrn regular, ni reconocible.
Tales movimientos representan lo que queda en una serie de
tiempo despus de que la tendencia, ciclos y variaciones
estacionales han sido explicadas.

4.2. Neurona Artificial

Una neurona artificial o procesador elemental es una abstraccin


de una neurona biolgica que opera como una unidad de
procesamiento de informacin que es fundamental para la
operacin de una red neuronal. Una neurona artificial est
compuesta de: un conjunto de entradas, un conjunto de pesos
sinpticos, un cuerpo celular y una salida como se muestra en la
figura.

SAMUEL PORRAS SANDOVAL


INTELIGENCIA ARTIFICIAL
4.2.1 Redes Neuronales Artificiales
Una Red Neuronal Artificial (RNA) es un paradigma de
procesamiento de la informacin que es inspirado en el modo en
que un sistema nervioso biolgico, como el cerebro, procesa la
informacin. Una RNA est compuesta por un conjunto de
neuronas artificiales o procesadores elementales, los cuales
interconectados de alguna manera trabajan para obtener la
solucin de un problema especfico. En la literatura existen
diversas definiciones para una RNA pero una de las ms certeras
con el propsito de resumir su todo es la siguiente:

Una Red Neuronal es un conjunto de procesadores elementales


interconectados, no lineal ni estacionario, que realiza al menos
alguna de las siguientes funciones: Aprendizaje, Memorizacin,
Generalizacin o Abstraccin de caractersticas esenciales, a partir
de un conjunto de ejemplos.

En el estudio de las RNA deben considerarse tres aspectos


fundamentales: La arquitectura, el aprendizaje y la capacidad de
generalizacin de la red.

a) Arquitectura de red

El trmino arquitectura de la red est relacionado con el diseo estructural


de la red y busca determinar los siguientes elementos: la cantidad de
entradas y salidas, la cantidad de nodos ocultos, la funcin de red y de
activacin asociada a cada nodo, la forma en que los nodos estn
interconectados, la direccin que sigue la informacin, y la seleccin de
un conjunto de datos adecuado para realizar el entrenamiento y la
validacin del modelo obtenido.

b) Aprendizaje

El aprendizaje o entrenamiento es el proceso en el cual los pesos


sinpticos de la red son ajustados con el objetivo de capturar la
informacin que se presenta, y de esta forma obtener respuestas
adecuadas. Este proceso bsicamente consiste en la presentacin de un
conjunto de datos, conocido como conjunto de patrones de
entrenamiento, un nmero determinado de veces, conocido como ciclos,
hasta que se produzca uno de los siguientes eventos:

El error entre la salida de la red y la deseada alcance un valor


aceptable.

Se alcance el nmero mximo de ciclos.

SAMUEL PORRAS SANDOVAL


INTELIGENCIA ARTIFICIAL
El aprendizaje se lleva a cabo mediante el uso de algoritmos de
entrenamientos.

c) Capacidad de Generalizacin

La capacidad de generalizacin de una red tiene relacin con la


recuperacin de la informacin que es almacenada en los pesos de las
conexiones durante el entrenamiento, evaluando los resultados con un
conjunto de datos diferente del utilizado en el proceso de aprendizaje, en
el que pueden existir patrones diferentes. Se espera que cuando se
presenten patrones que no han sido enseados a la red, sta sea capaz de
entregar una respuesta cercana a la deseada. Mientras ms precisa es la
respuesta entregada por la red, ms capacidad de generalizacin tendr
sta.

Para que una red neuronal sea capaz de generalizar de buena forma es
necesario contar con un conjunto de datos de entrenamiento
suficientemente representativo de la globalidad del problema en cuestin.

4.2.2. Solucin del problema

La aplicacin de Redes Neuronales Artificiales a la prediccin de series de


tiempo se realiza en esta investigacin de acuerdo a las siguientes
etapas: Bsqueda de las variables de entrada, preparacin del conjunto
de datos, creacin de la red, entrenamiento, validacin y clculo de los
factores de comparacin.

1) Bsqueda de las variables de entrada

Esta etapa tiene como objetivo identificar los retrasos o rezagos de la


serie de tiempo que deben considerarse como variables de entrada en la
red neuronal.

2) Preparacin del conjunto de datos

Esta etapa tiene como objetivo realizar el escalamiento de los datos. El


escalamiento de los datos consiste en la normalizacin de estos.

3) Creacin de la red

SAMUEL PORRAS SANDOVAL


INTELIGENCIA ARTIFICIAL
Esta etapa tiene como objetivo determinar cada elemento que compone la
arquitectura de la red.

4) Entrenamiento

En esta etapa se define el algoritmo de entrenamiento y los parmetros


de configuracin propios de ste. Se consideran dos algoritmos de
entrenamiento supervisado, que ajustan los pesos sinpticos mediante la
minimizacin del error: Backpropagation y Resilient Propagation.

5) Validacin

Esta etapa tiene como objetivo realizar la validacin del proceso de


aprendizaje de la red. Se presenta a la red el conjunto de datos
seleccionados para este fin y se obtienen los valores de la prediccin del
siguiente periodo para cada patrn de datos.

SAMUEL PORRAS SANDOVAL


6) Clculo de los factores de comparacin

El objetivo de esta etapa consiste en calcular los factores que sern


utilizados en el anlisis de los resultados al comparar los distintos
modelos de redes neuronales obtenidos y elegir la ms efectiva en la
prediccin de una serie de tiempo especfica. Para llevar a cabo esta
tarea se obtienen los siguientes factores: Error Absoluto Medio
Porcentual (EAMP), Coeficiente de correlacin (R), Representacin
grfica de las series, Representacin grfica del EAMP.

V) PROCEDIMIENTO
En la lnea de script ingresamos la siguiente descripcin y la ejecutamos.

%Traslada la informacin de una matriz de Excel a Matlab%


x=xlsread('t.xlsx')
%Transforma Los valores de una matriz en un intervalo de
-0.99 a 0.99 para
%un mejor procesamiento de datos%
x=trans(x,-0.99,0.99)
%Determina el tamao de una matriz%
[m,n]=size(x)
%Determinado el tamao de la matriz formamos una matriz
rezagando cuatro
%veces los datos y anteponindole una columna de unos, sta
ser nuestra matriz variables independientes%

SAMUEL PORRAS SANDOVAL


g=horzcat((ones(m-4,1)),(x(4:m-1)),(x(3:m-2)),(x(2:m-3)),
(x(1:m-4)))
%Determinamos una matriz de los datos deseados matriz
dependiente%
d=x(5:m)
%Determinamos el tamao de la matriz independiente%
[m,n]=size(g)
%Inicialmente le asignamos ponderaciones aleatorias las
cuales multiplicadas por las variables independientes
tratarn de predecir las variables dependientes%
w=rand(n,1)
%Determinamos el nivel de aprendizajes de la neurona%
alfa=0.1
k=0
%Determinamos un error cuadrtico medio alto para comenzar%
ecm=100
%El Proceso debe detenerse cuando se obtenga un error
cuadrtico medio
%inferior a 0.01%
while ecm>0.01
%Asignamos un valor k que cuenta el nmero de iteraciones
hasta llegar al ptimo%
k=k+1
for i=1:m
%Multiplicamos la matriz de variables independientes con
las ponderaciones
%las cuales se van actualizando hasta llegar a la ptima%
s=w'*g(i,:)'
%Ingresamos la funcin tangente hiperblica para que los
datos tengan una
%distribucin normal%
z=tanh(s)
%Determinamos los errores restando el valor deseado menos
el valor
%pronosticado%
e(i)=d(i)-z
%La frmula descrita a continuacin es para la
actualizacin de pesos
%hasta llegar al ptimo%
w=w+2*alfa*e(i)*(1-(z)^2)*g(i,:)'
end
%La formula descrita a continuacin es para hallar el error
cuadrtico
%medio del modelo%
ecm=sqrt(sum(e.^2)/m)
end

Podemos observar que las iteraciones se repiten en bsqueda de la


ponderacin ptima, sin embargo, nos detenemos puesto que no hay una
reduccin significativa en el error cuadrtico medio.

SAMUEL PORRAS SANDOVAL


Al detener obtenemos los siguientes datos.

Un error cuadrtico medio de 0.1639.


Que se realizaron 944 iteraciones.
Que las ponderaciones para obtener ese error cuadrtico medio son:
w=

0.0101
0.9318
0.0283
0.2669
-0.4351
En el siguiente grfico se muestran los datos pronosticados y deseados.

Otra manera de predecir los datos de una serie es mediante un


toolbox de Matlab (ntstool), para ello se seguirn los siguientes
pasos:

En la lnea de comando se ingresa ntstool ejecutamos y aparecer la


siguiente ventana.

Damos clic en la opcin NAR la cual predice valores a partir de valores


pasados.

SAMUEL PORRAS SANDOVAL


Se ingresa la serie la serie a analizar en este caso la serie transformada.

Indicamos el nmero de neuronas, capas y rezagos, para este ejemplo


utilizaremos una neurona, cuatro rezagos y una capa de salida.

SAMUEL PORRAS SANDOVAL


Hacemos clic en entrenar neurona por defecto el 70% es para el entrenamiento
y el otro 30% se distribuye en test y validacin.

Aparecern lo coeficientes de determinacin correspondientes. Y una ventana


de respuesta de la cual obtendremos los siguientes grficos.

SAMUEL PORRAS SANDOVAL


Como todos son mayores al 90% analizaremos el modelo.

Este grfico nos muestra los pronsticos, los datos deseados y los errores en
funcin del tiempo. Tambin indica que se han seleccionado los puntos de
tiempo para el entrenamiento, pruebas y validacin.

En el grfico de regresin se muestra que el 92.405% del total de los datos son
explicados por el modelo.

SAMUEL PORRAS SANDOVAL


Y del entrenamiento, validacin y test se explica el 92.276%, 95.047% y
0.91.574 respectivamente.

De las 250 iteraciones, en la iteracin 244 se alcanza el punto ptimo. Despus


de esta iteracin no hay disminucin significativa en el error.

El siguiente grfico muestra el error funcin de auto correlacin. En l se


describe cmo los errores de prediccin se relacionan en el tiempo.

SAMUEL PORRAS SANDOVAL


Para un modelo de prediccin perfecta, slo debe haber un valor distinto de
cero de la funcin de auto correlacin, y debe manifestarse a retraso cero (este
es el cuadrado medio del error.) Esto significara que los errores de prediccin
estn completamente no correlacionados entre s.

Si hubo una correlacin significativa en los errores de prediccin, entonces


debera ser posible mejorar la prediccin, tal vez al aumentar el nmero de
retrasos en las lneas de retardo derivadas. En este caso, las correlaciones, a
excepcin de la que est en retraso cero, caen aproximadamente dentro de los
lmites de confianza del 95% alrededor de cero, por lo que el modelo parece
ser adecuado.

En el siguiente grfico podemos ver que los errores tanto del entrenamiento
como del test y de la validacin siguen una distribucin normal

En el siguiente grfico podemos ver que los errores tanto totales siguen una
distribucin normal y que la mayoria de errores est alrededor de cero.

SAMUEL PORRAS SANDOVAL


SAMUEL PORRAS SANDOVAL
Ponderaciones para este modelo:

Para las cuatro capas de entrada son:

w=

-0.1157
-0.0589
0.0007
-0.013
0.0126

Para la capa de salida.

w=

-1.7545
-15.2154

Grfico valores deseados y pronosticados con ntstool

SAMUEL PORRAS SANDOVAL


VI) CONCLUSIONES
Como resultado de esta investigacin se ha podido comprobar que es posible
realizar predicciones del tipo de cambio dlar-euro (EUR/USD) utilizando
Redes Neuronales Artificiales.

Se pudo determinar un modelo que muestra la relacin existente entre los


resultados obtenidos y los tipos de cambio vigentes en las fechas de estudio, el
cual est conformado por cuatro rezagos y una Red Neuronal Artificial de
cuatro neuronas en la capa de entrada y una neurona en la capa de salida con
un mecanismo de aprendizaje supervisado por correccin de errores.

VII) REFERENCIAS

Freeman, James y Skapura, David: Redes Neuronales Algoritmos,


aplicaciones y tcnicas de programacin, 1 edicin, Addison-Wesley
Iberoamericana, E.U.A 1993.

Collantes, Joanna: Prediccin con Redes Neuronales: Comparacin con las


Metodologas de Box y Jenkins, Universidad de los Andes, Venezuela 2001.

Requena, Ignacio: Introduccin a las Redes Neuronales Artificiales.


Neurocomputacin, Universidad de Granada, Espaa.

Delgado, Alberto:Inteligencia artificial y minirobots, 2 edicin, Ecoe ediciones


1998.

SAMUEL PORRAS SANDOVAL