Você está na página 1de 49

Resumen

La Minera de Datos ha evolucionado mucho en estos ltimos aos


conviertiendose en una de las tareas ms importantes dentro del proceso de
Descubrimiento de Conocimiento en Bases de Datos (conocido en ingls como
Knowledge Discovery in Databases, KDD). Tradicionalmente el proceso de Minera de
Datos ha abordado su participacin sobre volmenes de datos representados como tablas
de atributos, estos datos han ido evolucionando, ya que la propia informacin que
representaban ha ido creciendo, hasta encontrarnos con dominios donde los individuos se
presentan mediante un conjunto o estructura de datos.
Las series temporales, son un ejemplo de estos conjuntos de datos utilizados en la
actualidad, contienen un gran valor de informacin importante sobre un fenmeno o
comportamiento observado en un sistema. Son muchas reas en las que se crean multitud
de datos de este tipo con lo que su importancia aumenta ya que su estudio nos permite
solucionar problemas reales. Para realizar un buen anlisis de una serie temporal
debemos de hacer incapie en la extraccin, comparacin, almacenamiento y
recuperacin de la informacin para la posterior extraccin de conocimiento
(modelos,reglas). El anlisis de las series temporales tiene caracteristicas diferentes de
otros datos como pueden ser la alta numerosidad y dimensionalidad, el constante cambio
de los datos (debido a su relacin temporal).

En este trabajo se hace una revisin bibliogrfica sobre los mtodos tradicionales y los
nuevos mtodos que la Minera de Datos ha propuesto para las series temporales.
Adem'as de una revisi'on de las herramientas software para la predicci'on de series
temporales.

Capitulo 1 Introduccin

En este primer captulo se describen las principales motivaciones y causas del


desarrollo de este proyecto fin de carrera, empezando por una pequea introduccin,
planteamiento del problema, objetivos del presente proyecto, delimitacin del tema y
como esta organizada la memoria dentro del resto del documento.

1.1 Preliminares.

1.2 Planteamiento del problema


El problema planteado se fundamenta en las siguientes frases:
``Estudiar, analizar y entender tanto los mtodos clsicos que trabajan con series
temporales, as'i como en la Minera de Datos Temporal, siendo capaz de identificar estos
mtodos y algoritmos dentro de las herramientas software destinadas a este proceso''.

1.3 Objetivo del Proyecto Fin de Carrera


El objetivo principal de este trabajo fin de carrera es realizar una revisin
bibliogrfica sobre el an'alisis de series temporales, partiendo desde los m'etodos cl'asicos
que han abordado el estudio de esta materia, hasta las herramientas software de las que
disponemos en la actualidad. Para ello perseguiremos varios objetivos secundarios como
pueden ser los siguientes:
- Entender la importancia que tienen las series temporales en la actualidad.
- Estudiar los inicios de las series temporales, para tener una base terica de las
mismas.
- Definir el proceso de KDD y en especial la etapa de Minera de datos.
- Aplicar la Minera de datos a series temporales, obteniendo un nuevo concepto
de est ciencia llamada Minera de datos temporal.
- Estudiar las diferentes tareas que la Minera de datos ofrece al anlisis de series
temporales
- Revisar el funcionamiento de herramientas software que nos permitan trabajar
con series temporales.

Cap'itulo 2- Estado del Arte


En este captulo realizaremos una revisin sobre varios trabajos donde se ve la
evolucin de las tcnicas que se han dado en la historia para el anlisis de series
temporales. Los comienzos de la disciplina se hayan a comienzos del siglo XIX en
Francia donde Laplace realiz un estudio sobre como influia las fases Lunares sobrer las
mareas y los movimientos de la tierra [1], durante este periodo Fournier tambin realiza
sus experimentos para lograr transformar funciones peridicas en series matemticas
trigonomtricas convergentes conocidas en un futuro como series de Fourier [2]. A
comienzos del siglo XX el cientfico Yule estudi los procesos autoregresivos para
explicar las manchas solares [3] a este le siguieron otros autores como Slutsky [4] que
contribuyo al campo de la economa con sus trabajos sobre la media mvil. [5], [6] y [7]
enuncian el principio fundamental de la Complejidad de Kolmogorov o complejidad
Algoritmica.
Por aquel entonces tambien empezaban a surgir nuevas tcnicas predictivas para modelos
economtricos, que se fundamentaban en teoras de la econmia que desde sus inicios
arrastraban dos problemas : trabajar con ecuaciones simultneas con gran nmero de
variables y una dbil estructura dinmica apoyada en la teora de la economa, es por ello
que los mdelos econmicos que iban surgiendo tenian una baja tasa de acierto en sus
predicciones [8].
El gran salto en el anlisis y prediccin de series temporales tuvo lugar con la aparicin
del modelo Box-Jenkins por los aos setenta al proporcionar una revolucin en el estudio
de series temporales, mientras realizaban sus estudios sobre el comportamiento de la
Baha de San Francisco. El mdelo tambin conocido como ARIMA era capaz de
predecir series estacionarias o no estacionarias mediante las tcnicas descritas en [9] .
Pocos aos despus de las primeras publicaciones en el mbito de la prediccin de series
temporales, las nuevas investigaciones sobre la combinacin de predicciones comienzan
a ser populares entre la comunidad cientfica de la poca [12], la cal se encuentra
dividida por dos tendencias: los que creen que los mtodos de combinaciones son un
acercamiento a disminuir el riesgo de escoger un modelo equivocado y los que piensan
que si una combinacin supera al mtodo individual es porque este ltimo se puede
mejorar [11] . Los modelos de autorregresin fueron durante varios aos la materia punta
en cuanto a la prediccin de series temporales, no obstante estos fueron sujetos a
numerosas crticas debido a la pobre especificacin de la autocorrelacin y las malas
tcnicas de realimentacin utilizadas [13], [14]. Todos estos trabajos tanto a favor como
en contra de las diferentes teoras planteadas son determinantes para la creacin en el ao
1982 del International Institute of Forecasters institucin que colabor con el
International Journal of Forecasting y el International Symposium on Forecasting [1]. La
recopilacin de datos y su almacenamiento ya ocupaba una misin considerable para la
denominada "Data fishing" o "Data archaeologi". Durante aos estos datos han ido

incrementando su nmero de forma exponencial, convirtiendose en un problema a tratar


pero a la vez proporcionaba un reto apasionante al intentar ver la informacin como un
todo y no de manera puntual, para as afrontar la tarea de extraer conocimiento de lo
desconocido. Durante los aos 80 muchos autores estudiaban ya esta area dentre los
cuales vamos a citar Agrawal, Wiederhold, Blum y Piatetsky como los "creadores" del
proceso de extracin de conocimiento oculto o KDD (Knowledge discovery in
databases ), alguna de sus obras se comentan en este captulo. Entonces por definicin
KDD es un proceso no trivial de identificacin vlido,novedoso, potencialmente til y
entendible de patrones comprensibles que se encuentran ocultos en los datos [16]. Antes
de descubrir el siguiente paso en el avance historico de las series temporales vamos a ver
uno de los primeros esquema de arquitectura de un sistema de bsqueda [17]:

Imagn arquitectura de un sistema de bsqueda (querachitecturesystem)

La aparicin y posterior consolidacin del proceso KDD abrio un abanico de


posibilidades a la hora de analizar volumenes de datos de gran tamao. Son innumerable
los autores que han desarrollado trabajos en esta matera hasta convertirse en una de las
ms importantes de nuestros das. A finales de los aos ochenta haba menos de diez
empresas en el mundo que se dedicaran a este sector, en el ao 2002 se reconocieron ms
de 100 [19].
El problema de tratar base de datos de series temporales ha sido uno de los objetivos ms
estudiado por las tareas comunes de la Minera de datos [21]. Laxman y Sastry
ennumeran las tareas de la Minera de datos para series temporales en seis grupos:

prediccin, clasificacin agrupacin, bsqueda y recuperacin y descubrimiento de


patrones[23]. En [17] ya se da una primera aproximacin del estudio de grandes bases de
datos que se dividen en secuencias de series temporales para ser analizados con mayor
facilidad. La segmentacin busca dependencias lineales o no en las series temporales para
as conocer con antelacin el desarrollo de la misma, en [22] se propone un mtodo de
segmentacin de series temporales en secuencias combinando una tcnica de
agrupamiento y un algoritmo gentico para encontrar segmentos que contengan
caractersticas estadsticas similares. Dentro de las tcnicas de agrupamiento vamos a
citar alguna de las obras ms importantes, segn el mtodo de agrupamiento escogido
entre: agrupamiento por proximidad temporal, basado en modelos o basado en las propias
caractersticas de la serie temporal analaizada [24] .Segn la proximidad temporal la
metodologa ms efectiva es la DTW [ 26], extendiendo esta mtodologia el trabajo [27]
propone un procedimiento para poder trabajar con series multivaridas de valor continuo y
diferente longitud, para ello transforma las series mediante un algoritmo de
transformacin para luego aplicar DTW. Los mtodos de agrupamiento basado en
modelos primero realizan un modelado de la serie para luego aplicar un algoritmo de
agrupamiento, el estudio de [25] aplica el algoritmo de agrupamientos anidados para
subsanar los sobreajustes producidos en la divisin de datos. En cuanto a las
metodologas basadas en caractersticas es interesante resaltar el estudio sobre series de
tiempo difusas llevado a cabo en [27], se aplica en series de tiempo basado en
coeficientes cepstral basado en lgica difusa donde los datos pueden pertenecer a ms de
un cluster. Como se puede comprobar algunas tareas de Minera de datos echan mano de
algortimos ms propios de otras como puede verse en el agrupamiento se utilizan
funciones para calcular la similitud entre varias series temporales y la clasificacin utiliza
algoritmos descritos en las tareas de agrupamiento[20], [24]. La clasificacin de series
temporales tiene numerosas aplicaciones en campos tan distintos como la medicina,
negocios, ciencia, ingenier, arte y entretenimiento en [26] se realiza un revisin
bibliogrfica sobre los algoritmos de clasifiacin para los campos antes citados hasta el
ao 2004. Las nuevas tecnologas proporcionan herramientas software para el tratamiento
de Minera de datos, existen herramientas de libre distribucin como pueden ser R, Weka,
RaapidMiner en [28] se describen las caratersticas ms relevantes de cada una de ellas.
Tambin citaremos el trabajo de [29] donde se aplica la metodologa CRISP -DM para
series temporales y se muestra un ejemplo prctico sobre Knime.

Los primeros estudios sobre las series temporales y su predicin datan del ao 1950,
donde se encuentran los inicios de estudios sobre varias aplicaciones.

3 - Miner'ia de datos para Series Temporales


En este apartado haremos un repaso en el estudio de las series temporales y la
miner'ia de datos, aportando varias definiciones, objetivos y principales t'ecnicas de
an'alisis de las mismas.

3.1 Series Temporales


A menudo es natural encontrarse con una gran situaci'on de eventros que pueden
ser m'edidos con diferentes m'etodos y dispositivos pero todos ellos se pueden relacionar
con un instante de tiempo con lo que tenenmos una relaci'on directa entre fen'omeno y
tiempo que da como resultado una serie temporal definida a groso modo como una
secuencia de valores obtenidos ordenados cronolgicamente durante un intervalo de
tiempo [31]. En el estudio de las series temporales hay numerosas clasificaciones
discretas y cont'inuas , estacionaria o no estacionaria, univariados o multivariados, lineal
o no lineal, estas 'ultimas son las m'as interesantes en el estudio de su predicci'on, materia
en la que centraremos nuestro estudio en las herramientas software descritas mas
adelante.
Las series temporales suelen venir representadas en modo de gr'afica donde el eje
X representa el intervalo de tiempo en el que se observan y recogen los resultados, el
valor de estos viene representadeo en el eje Y.

Imagen Serie Temporal

Las series temporales presentan diversos objetivos enfocados en su mayor'ia a la


extracci'on de informaci'on representativa que nos permita crear un modelo y predecir su
comportamiento futuro,algunos objetivos son control de procesos , simulaci'on de los
mismos, generaci'on de nuevas teor'ias y la predicci'on de valores futuros. La predicci'on
se denomina como la estimaci'on de valores futuros de una determinada variable en
funci'on de los resultados pasados obtenidos a lo largo de la serie temporal. Definimos

control de procesos a la t'area de estudiar y seguir el comportamiento de un atributo con


el fin de regular y tener controlado su resultado. La simulacin nos permite abordar
problemas complejos donde es imposible calcular un resultado por ejemplo debido al
gran n'umero de datos. Algunos autores describen estos objetivos de manera mas formal
[31] :
- Descripcin: mediante t'ecnicas descriptivas permite definir las principales
propiedades de la serie.
- Explicacin: ciertas series temporales pueden usar la variaci'on de otra serie
temporal para explicar sus propios cambios.
-Predicci'on: consiste en predecir valores futuros de la serie temporal. Este ser el
objetivo en el que centraremos nuestros estudio dentro de las series temporales.
-Control: se desea regular la calidad de un determinado proceso, para ello se
pueden tomar las m'edidas oportunas para que el resultado sea 'optimo.

3.1.1 An'alisis cl'asico de series temporales


Los m'etodos tradicionales para el an'alisis de series temporales se fundamentan
en la descomposici'on de las propias series temporales en varias componentes b'asicos
[30]:
- Tendencia: puede ser vista como cambios sistem'aticos no repetitivos de una
variable sobre el tiempo,basicamente la variaci'on a largo plazo de la media de la serie.
- Estacionalidad: componente causal debida al comportamiento de ciertos eventos
que encontramos en fluctacciones periodicas de la variable en periodos cortos de tiempo.
- Variaci'on c'iclica: aparte de la variaci'on estacional hay otros eventos que se
repiten con un per'iodo de tiempo m'as largo que caracterizan a la serie temporal.
-Variaci'on aleatorio: o llamada tambi'en variaci'on residual, no muestra ninguna
regularidad, son elementos totalmente aleatorios que no tienen ninguna aportaci'on de
valor a la serie.

Imagen Componentes de una serie temporal

Tradicionalmente el objetivo de las series temporales ha sido estudiar los datos

con cierta regularidad en el tiempo con lo que nos permite encontrar patrones en el
pasado para hacer predicciones futuras. Se llevan a cabo varios procesos entre los que
encontramos el proceso de ajuste, que abarca desde la primera estimaci'on hasta que
obtenemos predicciones, para as'i conseguir un m'odelo satisfactorio. Para ello los
m'etodos tradicionales detectan y eliminan la tendencia de una serie temporal mediante
filtros , aplicaciones que mediante unos datos de inicio se le aplican una determinada
funci'on matem'atica que nos devuelve datos con una determinada caracter'istica en
com'un, la media m'ovil es uno de estos filtros que se pueden aplicar.

Imag'en media m'ovil


Una media m'ovil calcula un promedio de la misma cantidadad de valores a cada
lado del punto estudiado. Hay otros procedimientos que nos permiten eliminar la
tendencia de manera menos engorrosa que las m'edias m'oviles que tienen su problemas
en los l'imites de la serie temporal, alto coste en su c'alculo y no se pueden definir fuera
de la propia serie con lo que no nos aportan nada respecto a la predicci'on. Otros m'etodos
y sus caracter'isticas importantes son [30] :
- Alisado mediante funciones exponenciales: proporciona un filtrado f'acil de
calcular, actualizando el resultado del valor pasado con el 'ultimo dato de la serie
original. Su pendiente creciente muy acelerada.
- Ajuste polin'omico: procedimiento por el cual se ajusta una curva ( polinomio) a
los valores de la variable contenidos en la serie. Obteniendo as'i una serie temporal sin
irregularidades en la que es mejor percibir su tendencia.
- Suavizamiento estacional de Winters : aplica una ecuaci'on lineal , asumiendo tal
tipo de tendencia en la serie, usando tres variales de suavizamiento para la media, la
tendencia y la estacionalidad.
As'i como se existen los anteriores m'etodos para el an'alisis de la tendencia
podemos realizar un an'alisis de la estacionalidad para ello definiremos un concepto de
gran importancia en el estudio de series temporales como es la funci'on autorcorrelaci'on,
que mide valores de la serie separados un intervalo de tiempo k (italica).

Imag'en de funci'on de autocorrelaci'on


Llamaremos coeficiente de autocorrelaci'on de factor 1, al resultado de calcular la
correlacci'on entre pares seguidos (x1, x2) , (x2,x3),...(xn-1, xn). Del mismo modo queda
definido el coeficiente de autocorrelaci'on de factor 2 como los pares de puntos separados

en una distancia de 2 , as'i sucesivamente podemos calcular el coeficiente de


autocorrelaci'on de orden k . (italica) Esta funci'on es de gran valor para estudiar la
estacionalidad de la serie, ya que en los intervalos iguales al periodo estacional si existe
dicha estacionalidad los valores implicados tienen que tener alguna correlaci'on, esto
implica que el coeficiente de autocorrelacin es diferente de 0 cuando el retardo es igual
al periodo estacional.

3.1.2 Modelos cl'asicos de an'alisis de series temporales


Buscan obtener un modelo de comportamiento de una serie temporal mediante
una funci'on lineal. Dentro de este enfoque cabe destacar una metodolog'ia que
revoluciono el mundo del an'alisis de series temporales, los investigadores Box y Jenkins
[9] crearon el modelo Box - Jenkins o conocido comumente por ARIMA ( siglas en
ingl'es de Autoregressive Integrated Moving Avarage) .
Comenzaremos definiendo un proceso estacionario como aquel en el que la media,
varianza y covarianza son constantes. Los modelos ARMA son aplicados a procesos
estoc'asticos estacionarios con un componente autoregresiva (AR) y una componente de
medias m'oviles (MA). La parte del proceso autoregresivo modela los valores antiguos de
la serie mientras que la otra modela el ruido de los mismos.Estos modelos se pueden
definir como :
landa(B) Xt= 0 (B) t
-Xt: valor de la variable a predecir en un instante t.
-t: representa los valores erroneos o confusos lo que otorga el car'acter aleatorio
a la serie.
- landaB y 0B funciones polin'omicas del operador de reardos B.

Formulas Autoregresi'on (Libreta 6,7,8)

Los valores de las variables estudiadas son calculadas mediante la funci'on de


autocorrelaci'on para n y funci'on de autocorrelaci'on parcial para m. El modelo obtenido
se verifica para ser validado con algunos test estad'isticos y los valores de las funciones
autocorrelaci'on. Estos modelos son bastante simples con lo que su coste computacional

es bastante bajo.
Los modelos ARIMA se fundamentan en el anterior pero permiten trabajar con series no
estacionarias, para ello el primer paso de estos modelos es convertir la serie estudiada en
una serie estacionaria para que la predicci'on sea 'optima. Despues de transformar nuestra
serie, se obtienen los valores de las funciones de autocorrelaci'on y se comparan con
patrones conocidos semejantes. Este paso es muy importante para que se haga una
correcta predicci'on, solo con un buen filtrado de datos para que las variables de la serie
temporal no varien en el tiempo y un modelo id'oneo conseguiremos nuestro objetivo.
Finalmente llevaremos a cabo la detecci'on de residuos, buscaremos el factor en el que
difieren los datos observados de los previstos por el modelo, para comprobar si el modelo
escogido se ajusta a las necesidades de nuestra serie temporal. Despu'es de elegir el
modelo que creemos que m'as se ajusta procederemos a estabilizar la serie aplicando a la
inversa las transformaciones que hemos aplicado en el primer paso para ver que el
modelo propuesto es vlido para la predicci'on de nuestros datos. En caso de que los
resultados no fueran 'optimos, volveriamos atras en el proceso hasta el punto de escoger
nuestro modelo este proceso puede repetirse varias veces hasta que encontremos el
modelo correcto.
Para terminar este apartado destacaremos que los modelos ARIMA trabajan con c'alculos
complejos ( a la hora de transformar la serie a estacionaria) y los resultados que se
obtienen no suelen ser siempre precisos ya que la identificaci'on del modelo correcto en
los primeros pasos suele ser una tarea complicada y casi siempre nunca se consigue a la
primera teniendo que repetir el proceso iterativo desde este punto.

3.2 Miner'ia de Datos


Como hemos visto hasta ahora los m'etodos de an'alisis y modelos tradicionales
han basado su estudio en t'ecnicas estad'isticas con las cuales se ofrecen medidas como
medias, desviaciones, distribuciones, correlaciones para el estudio de la tendencia,
estacionalidad, variaciones c'iclicas estas se han visto sobrepasadas por el
comportamiento de los grandes volumenes de datos que se manejan en la actualidad [32].
Estos volumenes de datos contienen informaci'on oculta y relaciones de gran utilidad que
son materia prima para el desarrollo de un modelo basado en m'ineria de datos . En este
apartado repasaremos brevemente el proceso de KDD ( siglas en ingl'es de
Descubrimiento de Conocimiento en Base de Datos) y en especial de la fase Miner'ia de
Datos en la que se centra esta secci'on, de forma reducida ya que entrar en detalle se sale
fuera del objetivo de este trabajo.
Para empezar definieremos KDD como el proceso no trivial de identificar en los datos
estructuras v'alidas, novedosas, potecialmente 'utiles y en 'ultima estancia comprensibles

[16]. El principal objetivo del KDD consiste en descubrir conocimiento[34]:


- 'Util : el conocimiento que se obtiene despu'es del proceso debe inducir a
procedimientos que sean capaz de obtener beneficios para el usuario.
-Valido: ya que los datos que aparezcan nuevos deben de ser validos en el modelo
elegido, no pueden ser solo correctos para datos hist'oricos.
-Comprensible: ya que un modelo incomprensible esta exento de conocimiento,
debe ser f'acil de interpretar y usar.
- Nuevo: debe aportar informaci'on desconocida o inexistente para el sistema y el
usuario.
Para realizar el procesdo de KDD llevaremos a cabo siempre los mismos pasos aunque en
ellos se apliquen t'ecnicas diferentes en cada paso , estas t'ecnicas son las desarrolladas
por la Miner'ia de Datos y las analizaremos m'as adelante. Por todo ello diremos que el
proceso de KDD es :
- Iterativo: ya que la entrada de una fase puede estar condicionada a la salida de la
fase anterior, lo que en caso de no ser v'alido nos har'a retroceder en el proceso y repetirlo
hasta que sea correcto.
-Interactivo: aunque el proceso se computacional el encargado del proceso o
experto del mismo debe aportar su conocimiento, prepacin de datos, validar el mdelo
obtenido y otras funciones.
La siguiente imagen muestra las etapas del proceso estndar KDD y su principales
caracter'isticas [34].

Imag'en Proceso KDD


-Limpieza y preprocesamiento de los datos: operaciones b'asicas del proceso
como remover ruido y el manejo de datos extrabiados.
-Proyecci'on y condensaci'on de datos: utiliza t'ecnicas de reducci'on de
dimensiones y m'etodos de transformaci'on para presentar los datos.
-Descripci'on e integraci'on de datos: incorpora muchas y heterog'eneas fuentes
de datos para proporcionar sus descripcioness para un manejo sencillo.
-Determinar funciones, miner'ia de datos y algoritmos: se establece el objetivo del
modelo as'i como los m'etodos a usar para la b'usqueda de patrones.

-Miner'ia de datos: b'usqueda de patronees , de forma individual de


representaci'on o en un cojunto de representaciones.
-Interpretaci'on y visualizaci'on: los patrones descubiertos son interpretados y si
es posible se realiza una visualizaci'on de los mismos.
-Uso del conocimiento encontrado: aporta el conocimiento que se estaba
modelando para tomar decisiones con este.
A continuaci'on definiremos la Miner'ia de datos como el an'alisis de bases de
datos que tienen como objetivo descubrir informaci'on oculta en los propios datos, que
nos sea de utilidad para tomar decisiones futuras. Aparte de los valores estad'isticos, esta
informaci'on oculta es extraida mediante algoritmos de aprendizaje autom'atico por
medio de la mineria de datos, como resultado de ello podemos obtener patrones, reglas,
asociaciones, dependencias y relaciones entre los datos analizados. La Miner'ia de datos a
veces es confundida con el proceso de KDD, siendo esta una etapa del proceso, no el
conjunto que abarca el propio KDD, esto es contrastado por diversos autores que ven la
Miner'ia de datos de diferenetes puntos de vista, en [32] se define como el proceso
secundario de an'alisis de base de datos destinado a la bsqueda de relaciones
insospechadas que son de inter'es para los usuarios, de la misma forma Jesus Mena sigue
este enfoque en el proceso iterativo de extraer patrones predictivos ocultos en grandes
bases de datos usando tecnolog'ias de inteligencia artificial y t'ecnicas de estad'istica
tradicional [35]. Otros autores como [36] definen la Miner'ia de datos como el procesos
de descubrimiento de conocimiento a partir de grandes base de datos.
Son numerosas las aplicaciones donde podemos usar la Miner'ia de datos y esta puede
aplicarse a cualquier tipo de informaci'on emplenado las diferentes t'ecnicas para cada
tipo de datos. La informaci'on puede diferenciarse como datos estructurados ( cuya
procedencia puede ser una base de datos relacional, base de datos temporales, etc) y datos
no estructurados como puede ser la informaci'on web o de reporsitorios no ordenados. El
conocimiento extraido despus de aplicar las t'ecnicas de Miner'ia de datos puede
obtenerse en diferenetes representaciones como ya citamos anteriormente, relaciones,
patrones o reglas, aunque tambi'en podemos dar una descripci'on m'as simple de los datos
por ejemplo un resumen. Estos res'umenes y relaciones nos aportan el modelo de los
datos que hemos analizado, los modelos pueden ser [15] :
-Predictivos: busca encontrar los valores futuros de una cierta variable objetivo o
dependiente apartir de otras variables o atributos de la base de datos, denominados
variables independientes o predictivas. Un modelo predictivo pude ser la pol'itica de
spam de servidores de correo, ya que apartir de los correos descartados anteriormente
busca filtrar los futuros correos.
-Descriptivo: intentan encontrar propiedades de los datos analizados no buscan

predecir ningn valor de los nuevos datos. El objetivo de un modelo descriptivo es


conocer las situaciones, actitudes predominantes a trav'es de la descripc'on exacta de sus
variables.Un ejemplo de estos pueden ser las encuestas, valoracioenes personales, etc.. de
una determinada empresa que ofrece un servicio de ocio, apartir de la exploraci'on de las
caracter'isticas pueden realizarse agrupamientos seg'un los valores comunes de ciertas
variables.
La Miner'ia de datos proporciona modelos de informaci'on, reglas o patrones de
un conjunto de datos analizados. En general un algoritmo de Miner'ia de datos se
compone de alguno de los siguientes componentes:
- Modelo: contiene las caracter'isticas que son extraidas de los datos observados,
incorpora su funci'on y alguna forma de representaci'on.
- Funci'on evaluadora: que califica la calidad del modelo elegido, seg'un el
comportamiento del modelo a ciertos datos elegidos.
- Criterio de preferencia: es b'asicamente asustar la funci'on del modelo hacia los
datos o buscar otro modelo con grados de libertad que se ajuste a los datos de entrada,
resumiendo todo modelo depende de los datos de entrada y buscaremos el que mejor
satisfaga a los mismos.
- Algoritmo de b'usqueda: especificar un algortimo 'optimo para buscar modelos
particulares y caracter'isticas apartir de los datos de entrada, criterio de preferencia y
modelos.
As'i mismo es com'un encontrarse modelos de miner'ia de datos que incluyan alguna de
las siguiente tareas [36]
-Clasificaci'on: el objetivo es predecir dentro de unas clases predefinidas seg'un
el valor de alg'un atributo para instancias que no se conozcan su clase. El objetivo de esta
tarea es maximizar el 'exito de la funcion clasificaci'on para los nuevos datos, que se
c'alcula dividiendo el n'umero de aciertos entre el n'umero total (aciertos y fracasos). Es
una tarea de aprendizaje supervisado porque se basa en los datos ya clasificados para
poder obtener una predicci'on del modelo.
-Agrupamiento: tambi'en conocido por clustering esta tarea se diferencia de la
anterior en que las clases en las que se clasifican las instancias no estan predefinidas, sino
que el propio algoritmo se encarga de definir los conjuntos o clases de datos. Estos
cluster son generados a partir de m'etricas de semejanza o modelos probabil'isticos. Se
trata de una tarea descriptiva que puede ser supervisada si se conoce el numero de cl'uster
que son necesarios para la clasificaci'on o no supervisada en caso contrario.
-Asociaci'on: buscan relaciones ocultas entre diferenetes atributos. Existe una

regla de asociaci'on cuando ciertos valores de dos atributos se repiten frecuentemente


entre ellos, esta relaci'on no tiene porque ser de causa-efecto ya que los atributos pueden
no tener ninguna causa para estar relacionados. Esta tarea es descriptiva y esta
fundamentada en el estudio del mercado.
-Predicci'on: se define como el aviso o anuncio que algo va a suceder, asumiendo
el conocimiento historico de un hecho f'uturo de nuestros datos, el modelo puede
prepararse para hacer frente a su tratamiento. Esta tarea es predictiva y como ejemplo
puede estudiarse una determinada fabricaci'on de un producto, si se conocen las
demandas pasadas del mismo , se puede hacer una predicci'on para que nunca se
produzca en exceso ni se agoten las existencias.
-Regresi'on: se utilizan para predecir valores de una variable continua, el objetivo
es reducir el error entre el valor a predicir y el real. Conociendo un n'umero aplio de
atributos de una variable se busca predecir el valor aproximado de una variable continua.
Se trata de un aprendizaje supervisado y predictivo.

3.3 Miner'ia de Datos de Series de Tiempo


La Minera de datos para series temporales tiene unas caracter'isticas especiales
que la diferencencian de las t'ecnicas tradicionales de Miner'ia de datos. Algunas de estas
caracter'isticas son el gran n'umero de datos y el continuo cambio de estos datos en el
tiempo. Teniendo en cuenta estas ideas es imposible pensar en una serie de tiempo como
valores n'umericos aislados, tenemos que cambiar nuestra forma de ver la serie temporal
como un conjunto continuo de informaci'on. La Minera de datos tradicional ha
incorporado m'etodos para poder llevar acabo el an'alisis de series de tiempo, estos
m'etodos que forman parte de la Miner'ia de datos para series de tiempo proporcionan
soluciones a los modelos cl'asicos de an'alisis de series del tiempo, con todo ello la
Miner'ia de datos para series de tiempo utilizan estos nuevos m'etodos como la b'usqueda
de patrones desconocidos de la Miner'ia de datos, t'ecnicas de an'alisis de las teor'ias de
series de tiempo, del procesamiento de seales usa el filtrado de seales para obtener
mejores datos, sistemas din'amicos que nos permiten obtener una validaci'on del m'etodo.
Antes citamos alguna de las tareas m'as comunes que engloban un modelo de
Miner'ia de datos, ahora clasificaremos m'as en profundidad las tareas que adaptan para
las series temporales:
3.3.1 Representaci'on e indexado
Esta primera tarea a analizar engloba uno de los objetivos m'as importantes ya que
las series temporales casi siempre vienen representadas por conjuntos muy grandes de

datos de los cuales no todos son relevantes para el an'alisis de nuestra serie temporal
aparte del alto coste de trabajo al tener que evaluar cada una de los valores de la serie y
mejorando la eficiencia del trabajo desarrollado. Para ello se proponen diferentes
m'etodos:
- Muestreo simple: para ello se busca reducir la dimensi'on de una serie temporal
S de valor m a la dimensi'on deseada de valor n. Para ello se recuperan los valores de la
serie original en intervalos iguales de tiempo. Este m'etodo tiene el inconveniente que si
la serie original tienen una tasa de muestreo pequea el resultado puede diferir bastante
de la realidad.

Imagen muestreo simple

- M'etodo de puntos importantes: transforma la serie original en una m'as sencilla


utilizando puntos extremos ( m'aximos y m'inimos m'as caracter'isticos de la serie), estos
puntos se llaman perceptualmente imporatantes.

Imagen reduci'on mediante puntos importantes

- Transformada discreta de Fourier: este m'etodo demuestra que cualquier serie


peri'odica en el tiempo se puede modelar, mediante los resultados de las funciones seno y
coseno de los valores de la serie, esta funci'on se conoce como transformada de Fourier y
se denomina espectro a la representaci'on de amplitudes, de los valores de la serie en un
determinado rango de frecuencia, el espectro esta ligado a la funci'on de autocorrelaci'on
y es una herramienta de gran ayuda a la hora de analizar la estacionalidad y el periodo de
una serie. Dada una secuencia de n valores x0, x1...,Xn-1, se transforman a otra secuencia
de n valores tambin apartir de esta f'ormulua:

Def. Transformada de Fourier


En la siguiente imagen se muestra la representaci'on de una serie a la cual se le aplica la
transformada de Fourier y as'i conseguir una nueva representaci'on de la misma.

Imagen Transformada de Fourier.

- Modelo de porciones lineales: nos aporta una forma de representar series


temporales por segmentos. Si tenemos una serie temporal de N valores se puede obtener
una nueva representaci'on en forma vectorial de X= x1, x2.. xn de la misma aplicando la
siguiente f'ormula:

F'ormula para representar porciones lineales de una serie temporal.

Imagen de la representaci'on por porciones.

-Representaci'on simb'olica: recientes estudios han desarrollado una


representaci'on de las series temporales mediante letras de un alfabeto, esta
representaci'on se conoce como SAX ( Symbolic Aggregate approXimation) y es capaz
de reducir una serie temporal de longitud n a una palabra de longitud w, donde w alcanza
un valor considerablemente menor que n . El alfabeto sobre el que trabajar'a esta
representaci'on estar'a compuesto por un numero arbitrario a que extrictamente sera
superior a 2. Esta forma de representaci'on es 'unica ya que utiliza la gr'afica de la serie
temporal y palabras simb'olicas. Para ello primero se realiza una transformaci'on de la
serie original mediante la aproximaci'on lineal de porciones y despu'es se convierten a
palabras del diccionario propuesto [37].

Imagen representaci'on simb'olica SAX

3.3.2 Clasificaci'on
Esta tarea de la Miner'ia de datos de series temporales busca emparejar datos a
grupos predefinindos, teniendo un cierto n'umero de clases predefinidas los algortimos de
Miner'ia de datos buscan englobar en alguna de estas clases seg'un el an'alisis de sus
atributos. De forma m'as teor'ica el problema de clasifcicar series temporales lo

defininiremos como encontrar una funci'on que a cada valor de la base de datos es
clasificado por alguna clase, si existe un conjunto de tatos de series temporales D=
{S_1,S_2,...S_n} y un conjunto de clases predefinidas C = {C_1,C_2...,C_m} la funci'on
de clasificaci'on nos devolvera las series mapeadas por alguna clase de Cj = {t_i | f (t_i) =
Cj, 1<= i <= n, y t_i D} . Dentro de esta definici'on nos podemos encontrar con varios
problemas a la hora de clasifcar datos como los siguientes:
- Verdadero negativo: Tj no esta clasificado por Cj y no se encuentra en la clase.
Instancias que son negativas y reconocidas como tales.
- Verdadero postivo: Tj es clasifcado por Cj pero ya se encuentra en la clase.
Instancias correctamente clasificadas por el sistema.
- Falso negativo: Tj no es clasficado en Cj pero en cambio si esta en la clase.
Instancias que son positivas pero el sistema no las reconoce as'i.
- Verdadero negativo: Tj no esta clasificado por Cj y no se encuentra en la clase.
Instancias negativas y reconocidas como tales.
Existen numerosos algoritmos para llevar a cabo la tarea de clasificacin de series
temporales por Miner'ia de datos, los m'as relevantes para nuestro trabajo son descritos a
continuaci'on:
- Clasificaci'on bayesiana ingenua: dado un conjunto de datos cuya clase no se
conoce que denominaremos X y una hip'otesis H tal que un cojunto de datos pertenecen a
la clase C, calcularemos la probabilidad de que la hip'otesis H sea correcta para el
conjunto de datos X . Este algoritmo es utilizado a menudo cuando no sabemos que
atributos se pueden predecir en funci'on de otros, ya que se fundamente en predecir
valores de todos los atributos en funcin de todos los atributos.
F'ormula teorema de Bayes (4.Tareasdemineriadedatosclasificacin)
En este caso la clasificaci'on Bayesiana denominada "naive" asume la independencia
entre diferentes valores de los atributos , entonces para un determinado valor Xi se
calcula la probabilidad que una serie temporal Ti este en una clase Cj definida por P (Cj|
Xi) . Con todo esto podemos utilizar los datos de entrenamiento para calcular los valores
de P (xi) , P (xi | Cj ) y P (Cj) y apartir de ellos emplear el teorema de Bayes para
calculara la probabilidad a posteriori P(Cj|xi) y como resusltado final P (Cj| ti).
Este modelo tienen la ventaja de que se entrena muy r'apido pero hay que tener cuidado
porque no suele ser muy preciso en algunos casos.
- Regresi'on lineal : esta t'ecnica nos permite calcular la relaci'on que existe entre
dos variables, apartir de un conjunto de variables independientes ( que identificaremos
por X) se estima el valor de una variable dependiente ( denominada Y). El modelo de

regresi'on lineal tiene sentido cuando la tendendia de los datos es consistente y se puede
obtener apartir de una ecuaci'on que nos proporcione un modelo de los datos, no es una
buena t'ecnica cuando la tendencia no es estacionaria. La siguiente ecuaci'on representa
un modelo de regresi'on lineal :
Yt = a + bt
Una vez calculada la pendiente y el punto de intersecci'on de una l'inea que pasa por el
interior de los datos, se puede deducir la ecuaci'on que nos permite predecir el valor de la
variable que queremos. La regresi'on puede utilizarse para dividir los datos en regiones
utilizando clases o para predecir los valores de una determinada clase.
- K vecinos ms cercanos: este esquema se basa en la medici'on de distancias,
para ello se asume que el conjunto de datos de entrenamiento no son solo los datos que lo
forman, tambi'en forma parte de el la clasificaci'on deseada, esto supone que para
clasificar una nueva serie temporal ha de calcularse la distancia con todos y cada uno de
los puntos de los datos de entrenamiento, los datos de entrenamiento son el modelo. Para
una nueva serie temporal (t) se clasifica en base a los k vecinos m'as cercanos, esta
cercan'ia se definene en t'erminos de distancia euclidiana para cada par de puntos :
d(X,Y) = RAIZ SUMATORIOi=1 hasta n (xi -yi)^2
El algorimo de clasificaci'on seguir'ia el siguiente proceso:
- Se escoge un n'umero de vecinos cercanos (k).
- Seleccionamos una funci'on para calcular la distancia entre pares de
elementos.
- Con cada valor de x realizaremos los siguientes pasos:
- Calcular la distancia al resto de puntos.
- Selecci'on de los k vecinos m'as cercanos.
- La clase del nuevo valor x es la ms repetida entre sus k vecinos.
- En caso de que el n'umero de vecinos sea igual para un determinado
valor, se escoger'a el que mejor probabilidad a priori tenga.
Esta t'ecnica tiene elevados costos computacionales y no se asegura su porcentaje de
acierto si el conjunto de datos de entrenamiento es muy grande, tambi'en hay que apuntar
que se suele escoger un valor de k menor o igual a la ra'iz del conjunto de valores de
entrenamiento, para obtener unos resultados 'optimos.
- 'Arbol de decisi'on: es un m'etodo de aprendizaje inductivo supervisado muy
utilizado en la tarea de clasificaci'on de Miner'ia de datos. Partimos de un conjunto de
pares de datos de entrenamiento (atributo, valor), apartir de los cuales se dividen y se le
asigna a cada espacio su modelo correspondiente. Cuando se inserta un nuevo dato, se
determina su valor de salida a partir de los datos de entrenamiento y del resultado de la
funci'on valoraci'on en cada nivel. Los algoritmos para la creaci'on de 'arboles de
decisi'on cumplen dos requisitos siempre para sus clases:
- Clases predeinidas: al tratarse de un aprendizaje supervisado, los atributos

que dan valor a cada clase se conocen de antemano y forman el conjunto de


ejemplos de entrada.
- Clases discretas: el conjunto de clases tiene que tener un valor discreto para
clasificar todos los ejemplos de entrada.
Comenzamos a construir el 'arbol de decisi'on a partir del conjunto total de ejemplos de la
muestra desde el nodo ra'iz y vamos extendiendo el 'arbol apartir de una cierta funci'on
que valor'a un atributo obteniendo nodos interiores, de ramas binarias con lo que se
obtienen dos nodos hijos ( en general se asigna el nodo izquierdo al caso verdadero y el
nodo izquierdo al falso) y se acaba el 'arbol en los nodos hoja a partir de un determinado
criterio de detenci'on. Cada uno de los nodos internos esta ligado a uno de los ejemplos
de entrada y cada nodo hoja representa un valor de salida de la variable estudiada.
Imagen de un 'Arbol de decisi'on.
El algoritmo ID3 representa una herramienta para la creaci'on de 'arboles de decisi'on
para ello comienza con el conjunto vac'io y recursivamente va rellenando los nodos del
'arbol a partir de la evaluaci'on de una hip'otesis que clasifique de forma correcta los
ejemplos analizados. Este algoritmo se basa en el principio que cualquier funci'on
discreta puede ser representada por alg'un 'arbol de decisi'on y la teor'ia de divide y
vencer'as , creando sub'arboles en cuyos nodos intermedios se realiza una b'usqueda sobre
el atributo m'as homogeneo para asignarle alguna de las clases o no se encuentre la
posibilidad de seguir dividiendo el 'arbol. El algortimo C4.5 es la evoluci'on del anterior
comentado y su funcionamiento se describe en los siguientes pasos:
- Construlle los ejemplos de entrada.
- Para cada atributo X se c'alcula la ganancia de informaci'on del
despliegue de X.
- El atributo X' con m'aximo valor de ganancia es selecionado como el
mejor.
- Se crea un nuevo nodo intermedio con X' y se realiza su divisi'on.
- Repetir el proceso en los hijos de X', y agregar estos a sus divisiones.
Este algoritmo utiliza la funci'on de ganancia para asi evitar que las variables con mayor
n'umero de categorias representadas tenga m'as posibilidad de salir, asi se obtienen
'arboles menos frondosos tambi'en proporciona una forma de trabajar con datos continuos
que ID3 no contemplaba.
3.3.3 Medidas de similitud
En el estudio de series temporales es muy frecuente preguntarse si dos series son
iguales o que puntos tienen en com'un, para ello se llevan a cabo varios m'etodos para
calcular la similud entre ellas. Esta t'ecnica se encuentra en la mayor parte de las tareas de
Miner'ia de datos ya que como hemos dicho es muy com'un comparar dos series
temporales ,si se conocen las diferentes clases a la que pertenece nuestro conjunto inicial

de series del tiempo, cada nuevo dato se puede comparar con las entradas conocidas para
asi conocer el valor de su clase. Para ello se suele seguir dos tendencias: comparar
subsecuencias del total de la serie temporal o considerar esta en su total longitud,
aplicando estas tendencias podemos obtener diferentes patrones de nuestra base de datos,
escoger un patron determinado apartir de la comparaci'on, reducir el tamao de la serie
con aquellos segmentos semejantes para asi al aplicar los algoritmos correspondientes y
que estos acuten sobre los datos relevantes. Comumente la similitud se categoriza en
funci'on de la distancia entre series, as'i denominaremos la similitud como la inversa a la
distancia. Las medidas de distancias m'as comunes suelen calcularse para alguno de los
siguientes casos[20]:
- Consulta de rango: a partir de una serie determinada localizar todas las series
que
distan de ella en un valor espec'ifico.
- Vecino m'as cercano: dada una serie se c'alcula la m'as pr'oxima a ella del total
del conjunto.
- Pares cercanos: se buscan todos los pares de series, dentro del conjunto de la
base de datos , que estan a una distancia menor de un n'umero indicado.
Existen multitud de algortimos para la medidas de similitud, alguno de ellos ya se han
comentado con brevedad en la primera secci'on de este documento, a continuaci'on se
presentan las f'ormulas m'as usadas para calcular la distancia entre dos series seg'un sean
sus datos:
- Datos discretos:
- Distancia por diferencia : o tambi'en conocida por distancia de
Levenshtein, se utiliza sobre cadenas, y su valor representa el m'inimo n'umero de
operaciones para transformar una cadeca C en otra C' y existen tres operaciones:
inserci'on, supresi'on o substituci'on de un caracter. Se aplica a series temporales despu'es
de transfromarla en una serie temporal s'imbolica.
-Distancia de Hamming: tambi'en trabaja sobre cadenas, se suman los
posiciones de valores discordes , de tal forma que si la distancia es 0 las cadenas son
iguales y 1 en caso contrario
F'ormula distancia Hamming
-Distancia de diferencia : apartir de alguna hip'otesis o premisa , por
ejemplo:
si x=y entonces D=0 sino D=1
- Datos continuos:
- Distancia Eucl'idea :
9-formula distancia euclidea
- Distancia de Manhattan:
10-formula de manhatan
- Distancia de Chebychev: 11-formula chebychev
Estas tres f'ormulas conviene aplicarlas sobre series normalizadas con anterioridad. A
continuaci'on se describen dos t'ecnicas m'as complicadas para calcular la similitud entre
dos series del tiempo :
- T'ecnica de Alineamiento por Distancia Coseno:
Esta t'ecnica no necesita un conocimiento previo de las series temporales a estudiar, ni
tampoco una fase de entrenamiento debido a que el alineamiento se realiza dato por dato

de las series temporales estudiadas. El proceso se basa en los algoritmos de distancia


coseno y m'inimos cuadrados, tambi'en necesitaremos emplear cierta heur'istica para
extraer la mejor medida de distancia entre dos series. La distancia entre las series se
c'alcula a partir del 'angulo que forman los pares de puntos comparados. El algoritmo
c'alcula el 'angulo entre dos vectores V1 y V2 de dimensi'on N , estos vectores son los
puntos que se analizaran de cada serie para calcular su similitud, a partir de la siguiente
f'ormula [38] :
F'ormula t'ecnica alineamiento por cosenos.
Si el 'angulo resultante se encuentra entre 0 y 10 (matematico) se puede deducir que las
series son similares, mientras que si el 'angulo va desde los 10 a los 90 las series son
muy diferentes. Este algoritmo se puede usar en aplicaciones tan diversas como el
procesamiento de seales m'edicas, reconocimiento de audio, diccionarios de voz, etc..
- Algoritmo de Alineamiento Temporal Din'amico: conocido como DTW de las
siglas Dynamic Time Warping, esta t'ecnica se ha extendido con rapided en la comunidad
de la Miner'ia de datos, aparte de ser un algoritmo para sacar similitudes entre dos series
temporales tambi'en nos proporciona una t'ecnica de alineamiento bastante satisfactor'ia.
Para ello el algoritmo trabaja con dos series temporales S = (s1,..., sn) y S'= (s1', ...sm'),
de tal forma que a partir de ellas se forma una matriz Mnxm donde cada elemento de la
matriz, corresponde a la distancia entre dos de los puntos de la series c'alculada apartir de
la distancia euclidiana:
d ( si, sj') = ( si - sj') ^2
F'ormula para cada punto de la matriz de distancias parciales
Cada elemento ( i , j ) corresponde al alineamiento entre los puntos correspondientes a
cada serie si, sj'. Un camino W es un conjunto de elementos de la matriz que definen ela
correspondencia entre las series S y S'. El elemento k del camino W se define como:
w_k = (i, j) k , W = w1, w2... wk , max (m,n) <= K <= m + n -1
Este camino de alineamiento tiene unas caracter'isticas especiales :
- Condiciones de los extremos o fronter: w1 = (1,1) y wk = (m, n) , con esta
premisa nos aseguramos que el punto inicial y final de la serie S se alinear'a con su
correspondiente de la serie S', matricialmente el camino comienza y termina en
diagonales opuestas.
- Continuidad: con w_k = (a,b) su anterior wk-1= (a',b') donde a-a' <= 1 y b-b'<=1
, estas restricciones nos aseguran un cambino continuo y sin saltos inexistentetes.
- Monoton'ia: sea w_k = (a,b) entonces wk-1 = (a',b') donde a - a' > 0 y b-b' > 0,
as'i se asegura que todos los puntos del camnino W se distribuyan mon'otonamente por el
espacio.
Para calcular nuestro camino W de menor coste para alinear las dos series empleamos:

DTW ( S, S') = min { raiz Sumatorio w_k/K desde k=1 hasta K


El valor de K en el denominador, es una forma de trabajar con series de diferentes
tamaos y poder calcular a'un as'i su distancia. Si aplicamos la f'ormula anterior de
manera recursiva obtendremos la distancia siguiente:
$(i,j) = d (si, s'j) + min { $ ( i-1, j-1), $ ( i-1, j) , $(i , j-1)}
El algoritmo DTW nos proporciona un m'etodo para calcular la diferencia entre dos series
temporales una vez que han sido anlineadas de forma 'optima [26].
3.3.4 Agrupamiento
Esta t'ecnica conocida tambi'en por el nombre de clustering es un m'etodo basado
en estad'istica multivariante de agrupamiento autom'atico que tomando como entrada los
datos de una base de datos es capaz de redistribuirlos en grupos o clusters, con
caracter'isticas semejantes. Los grupos en los que se coloca la base de datos no son
conocidos con anterioridad, estos se crean a base del descubrimiento de los datos,
colocando los similares en el mismo cluster y los elementos m'as diferenciados se
encuentran en clusters distintos. El alzamiento de la Miner'ia de datos para series
temporales ha sido gracias a la multitud de trabajos de investigaci'on que han surgido en
los ultimos anhos, se proponen nuevos algoritmos y metodolog'ias aplicadas al clustering
de series temporales. El objetivo del agrupamiento de series temporales es separar un
conjunto original de series temporales no identificadas, en conjuntos de datos regulares.
Esta tarea tienen dos componentes principales para su desarrollo, una funci'on para
calcular la distancia entre datos, cuya elecci'on es una t'area muy importante para los
agrupamientos f'uturos, usualmente se usa la f'ormula de la distancia Euclid'iana y el
coeficiente de correlaci'on de Peason. La segunda componente principal del clustering es
un algoritmo de agrupamiento que divida los datos se'gun sus caracter'isticas. Existen
numerosos de estos algoritmos que se pueden clasificar seg'un tres metodolog'ias de
agrupamiento basado en la forma, basado en modelos y basado en caracter'isticas:
- M'etodos basado en la forma: trabajan sobre los datos que forman la serie
temporal o transformadas de los mismos y la correlaci'on temporal se c'alcula mediante
medidas de similitud. Si tenemos entonces dos series temporales como S y S' con T
observaciones en el instantes iguales del tiempo calcularemos su medida de similtud
mediante la distancia euclidea:
L (S,S') =

Libreta formula 1.

Otro m'etodo para calcular la similitud aparte de la distancia euclidea es el coeficiente de


correlaci'on de Pearson, por ejemplo entre dos series S y S' es posible apartir de las

expresiones algebraicas desarrolladas por Goley calcular la correlaci'on de dos series del
tiempo :
F'ormula 2 libreta.

- M'etodos basado en modelos: estos trabajan sobre el conicimiento previo de las


series temporales analizadas,los algoritmos de agrupamiento de estos modelos reciben
como entrada los coeficientes de modelos ajustados. Estos m'etodos son adecuados para
enfrentar dependencias de datos pero como desventaja tiene altos costos computcionales
y una mala elecci'on del modelo puede repercutir gravemente al 'exito de nuestro
objetivo. Podemos clasificar estos m'etodos en tres categor'ias segun el m'odelo:
- Modelos ARMA : donde el proceso de agrupaci'on tiene tres etapas: ajustar el
modelo elegido a cada una de las series analizadas, calcular la distancia entre los modelos
representados y agrupar las series en funcion del resultado de la distancia calcualada en el
paso anterior.
- Modelo oculto de Markov : estos modelos asumen que dentro de cada cluster los
elementos tienen un mismo proceso constructor que se puede describir meidante una
cadena oculta de Markov. En diferencia de la anterior categor'ia donde el agrupamiento se
realiza una vez ajustado el modelo, estos modelos forman los clusters en cada paso del
algoritmo de agrupaci'on.
- Modelo de mezcla de polinomios: se utiliza para el agrupamiento de series
temporales pequeas de longitud variable. Asumen el modelo obtenido como una mezcla
de ecuaciones polin'omicas.

- M'etodos basados en caracter'isticcas : en vez de utilizar el valor de los datos, el


agrupamiento se realiza en base a las caracter'isticas de la serie, con lo que el coste
computacional puede aumentar mucho si la serie a analizar tiene un tamao muy grande.
Tambi'en hay que tener en cuenta que estos m'etodos guardan su 'exito seg'un la
aplicaci'on donde se apliquen, pueden ser validos para una cierta aplicaci'on pero no para
otra. En una serie temporal con pocas caractersicas importantes obtendr'an un buen
resultado frente a series temporales complicadas donde extraer caracter'isitcas resulta un
trabajo complicado.

Para termina esta secci'on queremos comentar un nuevo algoritmo para el agrupamiento
de clases temporales descrito en [20], la t'ecnica de biclustering detecta grupos

informativos compuesto tanto de objetos como de atributos, es capaz de clasificar objetos


y atributos entre los diferentes clusters. El biclustering es un evoluci'on del clusterig, ya
que son capaces de agrupar conjuntos de objetos que tengan un perfil similar en cualquier
situaci'on del experimento. Esta tcnia se destaca por dos caracter'isticas frente al
clustering cl'asico:
- El agrupamiento simult'aneo de objetos y condiciones.
- Permite solapar datos entre diferentes clusters.
El biclustering representa objetos que actu'an de manera similar, bajo una sola serie de
condiciones, no tienen porque ser en todas y permite tener objetos en varios clusters
simultaneos. El objetivo primncipal de estos m'etodos es identificar subgrupos de objetos
y de caracter'isticas aplicando clustering por filas y columnas de forma simult'anea. A
continuacin presentaremos los dos algoritmos mar relevantes en el proceso de
biclustering:
- Modelo de Plaid: tiene lugar en 2002 por los inversitgadores Lazzeroni y
Owen[39]. Este mtodo trabaja con una estructura de solapamiento y ajusta los datos por
medio de l minimizacin del error, sea Zij el valor del objeto i -simo y el atributo jsimo, que se calcula con la siguiente formula:
Zij= Libreta 3.
- K representa el nmero de Biclusters.
- ij es el ruido.
- p_{ikKjk} son variables de pertenencia.
- Y_ ijk valor del Bicluster.
- Yij0 valor de fondo.
Para optimizar la frmula anterior se propone la siguiente ecuacin :
min Sumatorio( LIBRETA 4)
Este problema conlleva un costoso trabajo para resolverla directamente, con lo que se
propone quitar uno de los biclusters, obteniendo as la siguiente ecuacin de
optimizacin:
- Libreta 5 :

- Algoritmo de Cheng y Chruch: este algoritmo es descrito en [29], el objetivo


principal de estos autores es obtener una submartriz lo ms grande posible y con un valor
residual de sus objetos no superior al definido por un umbral. Se parte de la idea de que
todos los objetos de un biclustering tienen que evolucionar a la misma vez, esto se
consigue por medio del cuadrado de residuo (MSR). Este valor mide la coherencia de los
datos a travs de sus filas y columnas, si el valor de MSR es muy alto la calidad de los
objetos agrupados en un biclustering ser baja. El algoritmo trata los datos como si de
una bsqueda local se tratase.

Captulo 4 : Weka

4.1 Introduccin
En este captulo presentaremos la herramienta software llamada Weka, fue
desarrollada por la universidad de Waikato y su objetivo principal es proporcionar un
entorno de experimentacin para el anlisis de datos, ms concretamente enfocando a
este trabajo al anlisis de datos utilizando tcnicas de Minera de Datos. Weka es un
software de licencia libre desarrollado en Java que contiene libreras de codigo abierto
que implementan tcnicas que van desde el preprocesado de los datos, su clasificacin,
segmentacin, asociacin, alineamiento, visualizacin y prediccin. Los paquetes
software que ofrece Weka pueden ser utilizados en otras aplicaciones e incluso pueden
manipularse por los propios usuarios, para conseguir nuevas fuentes de cdigo para
determinados algoritmos personales que satisfagan los nuevos retos del programador.
En la versin 3.7.3 de Weka, la herramienta dispone de un paquete destinado al anlisis
de series temporales que nos permite crear modelos de prediccin de las mismas. Este
paquete puede instalarse en cualquier versin de la herramienta y nos aparecer en el
entorno de trabajo "Explorer" como un plugin que aparecer bajo la etiqueta de
Forecasting. Weka proporciona modelos de series temporales, transformando los datos de
manera que los algoritmos de aprendizaje proposional estandar puedan procesarlos. Esto
se lleva a cabo mediante la eliminacin de la dependencia temporal de las entradas por
otros campos adicionales, tambin hay otros atributos que se calculan automaticamente
para permitir a los algoritmos de la herramienta definir valores como la estacionalidad y
tendencias. Una vez que los datos han sido transformados, Weka puede aplicar cualquiera

de los algoritmos de los que dispone para la extraccin de un modelo, alguna de las
tcnicas ms comunes a aplicar en este punto es la regresin lineal, pero se puede utilizar
cualquier mtodo capaz de predecir un objeto continuo, incluyendo mtodos no lineales.
Aplicando estos nuevos enfoques al anlisis de series temporales surgen nuevas tcnicas
que proporcionan mtodos ms potentes que los clsicos ARMA y ARIMA[8].
A continuacin se realiza una breve revisin sobre las caractersticas ms relevantes de la
herramienta y posteriormente se propone una demostracin prctica de la interface de
Weka para el caso que nos ocupa a la hora de analizar una serie de tiempo, se termina este
captulo narrando las conclusiones que se han obtenido despus del estudio de la
herramienta.

4.2 Caractersticas
Comenzaremos este apartado definiendo las caractersticas principales de la
herramienta Weka, para luego hacer una revisin de las clases que forman parte del
paquete dedicado al anlisis y prediccin de series temporales.
Weka trabaja con archivos de entrada en un formato especfico llamado AttributeRelation File Format (.arff). Estos datos de entrada pueden ser introducidos en la
herramienta segun tres soportes:
- Fichero de texto.
- Accediendo directamente a una base de datos.
- Por medio de internet, especificando una URL para acceder a un servidor.

Imagn Fichero Arff.


La herramienta nos ofrece cuatro entornos de trabajo donde se pueden desarrollar
cualquier funcionalidad de la herramienta con diversas formas de entrada, estos entornos
son:
- SimpleCLI : es basicamente una consola donde introducir comandos, las siglas
CLI vienen del Ingls Command Line Interface. Este potente entorno de trabajo a la vez
de simple resulta complicado de manejar, ya que para ello se debe de tener un aplio
dominio sobre las clases que implementan la herramienta, su utilizacin se remonta a las
primeras versiones de la herramienta donde no existia interface grfica, los paquetes eran
invocados desde lnea de comandos con sus correspondientes argumentos. Actualmente
su uso se rerserva slo a la fase de pruebas de un experimento.

- Explorer: este entorno de trabajo es el ms utilizado en la herramienta Weka,


proporciona una interface agradable al usuario para poder llevar a cabo las
funcionalidades de las que disponemos. En este apartado se pueden realizar alguna de las
tareas de la Minera de datos descritas en el captulo tres, mediante alguna de las pestaas
que ofrece el interface:
- Preprocess: se introducen los datos y se utilizan filtros para preparar los
datos.Estos filtros se pueden aplicar a nivel atributo o instancias, y la salida de un filtro
puede ser la entrada de otro. El filtro TimeSeriesDelta se aplica a series temporales donde
se remplaza el valor de los atributos por la diferencia entre el valor actual y el
pronosticado para dicha instancia.
- Classify: se aplican algorimos de clasificacin para cualquier tipo de
datos. Se escoge el algoritmo que se quiere lleva a cabo del conjunto que nos ofrece
Weka, seguidamente se pasan los argumentos y opciones que convenga y se escoge el
mtodo de entrenamiento. Una vez ejecutado los resultados se pueden visualizar en texto
plano, grficas y esquemas. Clasificadores ms populares: OneR y J48.
- Cluster: este apartado es semejante al anterior pero para aplicar tcnicas
de segmentacin de datos en conjuntos o clusters. Se puede realizar un agrupamiento
numrico por ejemplo con el algoritmo SimpleKMeans o un agrupamiento simblico
ayudandonos del algortimo CobWeb (algoritmo de cluster jerrquico).
- Associate: son algoritmos que nos permiten realizar una bsqueda
automtica de reglas que involucren conjuntos de atributos entre si. Al tratarse de una
tcnica no supervisada, se comprueban si las reglas de asociacin son vlidas si ellas
mismas implican un conocimiento correcto. Es muy conocido en Weka trabajar con el
algortimo Apriori, que busca reglas en atributos simblicos, con lo que casi siempre
debemos aplicar un filtro para discretizar nuestros datos numricos de entrada.
-Select Attributes: estos mtodos a partir de un cojunto de datos que
poseen unos determinados atributos, son capaces de identificar los atributos ms
relevantes a la hora de clasificar los datos en diferentes clases. Todos los mtodos tienen
una funcin evaluacin de atributos que cuantifica la calidad del conjunto de atributos
para discriminar la clase (asigna a cada atributo un peso) y una funcin de bsqueda de
conjuntos ya que si el conjunto de datos de entrada crece mucho o se trabaja con una base
de datos muy grande, la bsqueda exhaustiva puede resultar un trabajo con un coste muy
alto.
- Visualize y Visualize3D : permiten crear representaciones de los datos en
2D y 3D (ms recientemente), donde se pueden comparar atributos cualquiera de los
datos y obtener diferentes grficas de ellos para ver el resultado de alguna de las tareas
descritas anteriormente, en las que ms se utiliza son en la clasificacin y asociacin. Los

resusltados pueden colorearse de tal forma que la visualizacin sea ms orientativa, un


ejemplo de esta tcnica es introducir el ruido en la grfica y colorearlos para ver a partir
de que valores se pierde la veracidad de los datos.
- Forecast: esta pestaa corresponde al plugin para analizar y predecir
series temporales, en la siguiente seccin se mostrar un ejemplo de las funcionalidades
que porporciona a la herramienta. Tambin se citar al final de este apartado las clases
ms relevantes que forman parte de esta librera.

- Experimenter: proporciona un entorno de trabajo para poder ejecutar ms de un


algoritmos de aprendizaje autormtico sobre varias base de datos para asi comparar cual
de los algortimos es mejor, con experimenter se detectarn que algoritmos son
estadsticamente ms significativos frente a los que tienen su xito debido al azar. La
interface de experimienter tiene dos modos de ejecucin : simple y avanzado, en los dos
hay que especificar los datos de entrada, la validacin que se utilizar para probar el
experimento, el lugar donde guardar los resultados y los algoritmos a estudiar. El modo
avanzado tiene sentido para profundizar en ciertos pasos del experimento mientras que el
modo simple se ejecuta como un experimento normal.
- KnowledgeFlow: este entorno de trabajo nos permite realizar todas las tareas
que hemos analizado antes en Explorer pero de una manera grfica, seremos capaces de
crear un diagrama de flujo de como vamos transformando y extrayendo el conocimiento
de una base de datos.

Imagen diagrama de flujo de KnowledgeFlow.

Estas son las opciones que nos permite ejecutar Weka, donde hemos visto alguna de las
caractersticas ms importantes de su funcionamiento. A parte podemos catalogar Weka
como un entorno multitarea, permite realizar varias ejecuciones a la vez. Dispone de toda
la RAM que sea posible para la ejecucin de sus procesos y trabaja con puntos
intermedios donde la ejecucin se realiza completa de principio a fin. Aunque Weka
puede presumir de tener una aplica colecin de algoritmos en su librera Java , no todos
estan implementados y solo es posible apliar su funcionalidad programando en Java.
Ahora analizaremos los paquetes Java, con lo que trabaja la herramienta Weka y el
funcionamiento de alguna de sus clases. Comenzaremos con el paquete
weka.classifiers.timeseries este tiene una interfaz para el manejo de predicciones llamada
TSForecaster esta interfaz contiene mtodos para manejar las clases AbstractForecaster y

WekaForecaster. Los mtodos de TSForecaster son :


- buildForeaster : a partir de los datos de entrenamiento construye un nuevo modelo de
prediccion.
- forecast: predice los valores para un determinado objeto.
-getAlhorithName: devuelve el nombre del algoritmo correspondeiente.
- getFieldsToForecast: recupera los campos que se quieren predecir.
- primeForecaster: proporciona un modelo a base del entrenamiento de datos histricos
hasta la fecha estabalecida por el usuario.
-reset: restablece la interfaz para que se pueda construir un modelo nuevo.
-runForecaster: ejecuta el predictor con las opciones que se le pasan por lnea de
comando.
-setFieldsToForecast: define los nombres de los campos en los datos a predecir.
La interface anteriormente descrita hereda mtodos de la clase AbstractForecaster, los
mtodos de esta clase son:
-buildForecaster: semejante al anteriormente descrito, construye un modelo nuevo de
prediccin a partir de los datos de entrenamiento recopilados.
-forecast: predice el valor de un campo objetivo.
-getFieldsToForecast: recibe los campos que tiene que predecir.
-makeCopy: por medio de la serializacin crea una copia del modelo predecido.
-primeForecaster: proporciona un modelo, a partir d los datos historicos recopilados,
hasta el da actual para realizar un prediccin.
-run: se ejecuta el objeto que se pasa por parmetro de la funcin con las
correspondientes opciones indicadas.
-runForecaster: ejecuta la clase pronosticador con las opciones que se le pasan por
parmetros.
- setFieldsToForecast: establece el nombre de los campos que se quieren predecir.
-stringToList: convierte una lista de cadenas a una sola separadas por coma.
Este ha sido el primer ejemplo, pero para las prximas clases abstractas no se repetiran
los mtodos comunes en ambas clases con el fin de facilitar la lectura de este trabajo al

igual que los mtodos set y get de datos tribiales de la clase, simplemente escribiremos el
nombre del mtodo.
La clase WekaForecaster que contiene este paquete nos proporciona mtodos para
realizar una prediccin mediante un esquema de regresin Weka, se ayuda de la clase
TSLagMaker para manejar atributos peridicos, el atributo lag y otros. Los mtodos ms
importantes de esta clase son:
-addCustomPeriodic: se agrega un dato personalizado de fecha a traves de un atributo
peridico.
- buildForecaster: construye un nuevo modelo de prediccin a partir de un grupo de datos
de entrenamiento.
- clearCustomPeriodics: borra la lista de fechas personalizadas.
- forecast: predice valores para un campo objetivo.
- set/getBaseForecaster: obtiene/establece el esquema de regresin Weka, con el que se
realizar la prediccin.
- set/getCalculateConfIntervalsForForecasts: establece/devuelve el nmero de pasos que
se necesitan para el clculo de los intervalos de confianza.
-set/getConfidenceLevel: establece/devuelve el nivel de confianza.
-getOverlayFields: se obtienen una lista separada por comas de los campos "overlay".
Estos son valores que se han agregado de forma externa para futuras predicciones.
-getTSLagMaKer: devuelve el correspondiente TSLagMaker con el que se esta
trabajando.
-isProducingConfidenceIntervals: este mtodo devuelve un valor booleano como
verdadero si se est calculando los limites de confianza para alguna o todas las
previsiones futuras.
-isUsingOverlayData: como el anterior mtodo, este devuelve verdadero si los datos
"overlay" se han utilizado para entrenar el predictor.
-listOptions: devuelve una lista con las opciones indicadas al predictor.
-primeForecasterIncremental: actualiza de forma incremental instancias con informacin
de cebado.
-reset: se restabalece el predictor.

-set/getBaseForecaster: establece el esquema de resegin Weka que queremos aplicar.


-set/getTSLagMaker: se establece el TSLagMaker a usar.
La interface TSForecaster, las clases AbstractForecaster y WekaForecaster forma el
paquete weka.clasiifiers.timeseries. A continuacin describimos el paquete
weka.classifiers.timeseries.core proporciona varias interfaz para manejar las seis clases
que nos ofrece este paquete. La primera interface que comentaremos es
ConfidenceIntervalForecaster, esta es capaz de calcular intervalos de confianza para
predicciones, los mtodos que ofrece son:
-set/getCalculateConfIntervalsForForecasts: devuelve el nmero de pasos para calcular
los intervalos de confianza, si el valor obtenido es de cero, significa que no hay intervalos
de confianza computados o producidos.
-isProducingConfidenceIntervals: semejante al ya descrito.
-set/getConfidenceLevel: ya definidos.
IncrementallyPrimeable proporciona una interfaz para un predictor , solo trabaja con un
mtodo:
-primeForecasterIncremental: este mtodo trabaja con una instancia cada vez que se
actualiza esta con el valor de cebado.
OverlayForecaster es una interfaz para trabajar con predictores que han entrenado con
atributos que tienen valores "overlay", estos atributos tienen valores suministrados de
forma externa.Utiliza los siguientes mtodos:
-forecast: como el que se definio antes, con este mtodo se produce un pronstico para
los campos objetivos.
-set/getOverlayFields: establece o obtiene los campos "overlay", separados por una coma
en forma de lista.
-isUsingOverayData: devuelve verdadero si el predictor ha trabajado con datos de
entrenamiento que contienen atributos "overlay".
La interfaz TSLagUser propociona los mtodos set y get para poder trabajar con la clase
TSLagMaker cuyo objetivo principal es crear versiones intermedias de las variables
objetivo para su uso en fturas prediciones, esta clase utiliza el filtro TimeseriesTranslate.
Los mtodos para manejar TSLagMaker son :
- reset: restablece los valores de fbrica de lag.
-list/set/getOptions: son tres mtodos para trabajar con las opciones de esta clase, se listan

las opciones disponible por la clase, set y get proporcionan mtodos para recuperar y
establecer las opciones que necesitemos.
-clear/add/set/getCustomPeriodic: funciones para trabajar con los atributos peridicos
personalizados.
-set/getFieldsToLag: funciones para crear y recuperar campos de variables intermedias.
-set/getOverlayFields: ya se han descrito para mtodos anteriores.
-set/getTimeStampField: funciones para manejar los campos de registro temporal.
-set/getAdjustForTrends: funciones para definir una marca de tiempo real o artificial y
recuperar dicha informacin.
-set/getAdjustForVariance: funciones para definir si la varianza se ajustan a los datos a
travs del registro objetivo.
-set/getFineTuneLags : funciones para trabajar con rangos sobre los atributos
intermedios.
-set/getMinLag: funciones que manejan el retraso mnimo, por defencto este es 1.
-set/getMaxLag: como las anteriores pero este caso para el mximo, por defecto es 12.
-set/getLagRange: trabaja con los rangos para definir la seccin intermedia.
-determinePeriodicity: con este metodo se identifica a partir de la heurstica la periocidad
de los datos con respecto de una marca de tiempo prestablecida.
La clase AbstractTimeSeriesFilter proporciona nuevas funcionalidades de la clase
weka.filters, para el manejo de series de tiempo, entre los mtodos ms importantes estan:
-list/set/getOptions: ya definido para otras clases.
-setImputFormat: establece el formato de entrada, devuelve true si el formato introducido
es correcto.
-imput: asigna una instancia para su filtrado, hay algunos filtros que deben de tener todas
sus entradas antes de ejecutarse.
-imputOneTemporarily: introduce solo una instancia para ser filtrada, el resultado no se
guarda en la cola de salida.
-batchFinished: funcin para saber si el conjunto de instancias para un determinado filtro
esta listo.

-fill/set/getFillWithMissing: funciones para trabajar con los datos perdidos.


-set/getInstanceRange: funciones para saber el nmero de instancias traducidas por el
filtro.
-invertSelectionTipText: devuelve informacin para una determinada propiedad.
-set/getAttributeIndices: funciones para defenirir y recuperar los atributos que se van a
filtrar.
De la clase anteriormente descrita se extiende TimeSeriesTranslate para definir filtros
sobre Weka para el tratamiento de series temporales, dispone de cinco metodos:
-globalinfo: nos proporciona informacin sobre el clasificador.
-getCapabilities: devuelve las capacidades del filtro.
-setImputFormat: ya definido anteriormente.
-getRevision: nos devuelve un texto con la revisin obtenida.
-main: para trabajar con la clase en general.
CustomPeriodicTest es una clases que compara valores de fechas, tanto especificadas por
el usuario como generadas por el sistema, es muy utl en el tratamiento de series
temporales, los mtodos que proporciona:
-getLowerTest: obtiene el lmite inferior de un determinado test.
-getUpperTest: obtiene el lmite superior de un determinado test.
-setTest: establece el test como una cadena de texto.
-setLabel/getLabel: establece y recupera la etiqueta opcional de un intervalo.
-evaluate: compara una fecha suminstrada con respecto al intervalo personalizado,
devuelve true si esta dentro de este intervalo.
-toString: devuelve una descripcin textual del test realizado.
-main: como en otras clases, es el mtodo principal para usar la clase.
ErrorBasedConfidenceIntervalsEstimator es una clase que nos permite calcular el
intervalo de confianza para predecir ua serie temporal utilizando errores computados
dentro de los datos de entrenamiento, los mtodos con los que trabaja son:
-getConfidenceOffsets: recibe como parmetro el nivel de confianza establecido, y
devuelve una lista con los limites superiores e inferiores de confianza para cada objeto de

la serie temporal.
-calculateConfidenceOffsets: calcula los intervalos de confianza usando el predictor que
se pasa por parmetros y los datos de entrenamiento.
-getConfidenceLevel: devuelve el nivel de confianza utilizado actualmente.
-getConfidenceLimitsForTarget : devuelve los limites de confianza superior e inferior de
un objetivo segn el ciclo que se le pase.
Weka tiene varios paquetes ms en su API para el manejo de series temporales, las
anteriores son la base de cualquier predictor de series de tiempo, pero a partir de estas se
implementa muchas funciones probabilsticas y mtodos grficos, para ms informacin
consultar [] , de donde se ha sacado toda la informacin que se ha citado.
4.3 Demo
Ahora veremos el interfaz grfico que nos ofrece Weka para el tratamiento de
series temporales, la aplicacin tiene dos formas de configuracin: bsica y extendida.
Para comenzar cargaremos en el Explorer de la herramienta el archivo "airline.arff" que
contiene el paquete para trabajar con series temporales, este volumen de datos tiene como
campos: nmero mensual de pasajeros para los aos 1949-1960 y una marca temporal
con fecha y hora. Automaticamente, como solo existe una serie, el panel escoge la serie
temporal y el campo fecha y hora que acabamos de comentar.

Figura Panel de configuracin bsica Weka.(BasicConfigPanel1)


En la parte derecha de la pantalla de configuracin bsica se muestran los diferentes
parmetros que Weka nos deja modificar. Podemos cambiar el nmero de pasos
temporales que queremos predecir, a partir de la ultima fecha de los datos suministrados.
Weka permite al usuario marcar la periocidad de los datos segn sus criterios definiendo
alguna marca temporal, si la marca temporal que traen los datos por defecto es una fecha,
son detectados por el propio entorno de trabajo y el sistema ya se encarga de definir la
periocidad de los datos. Despus de este cuadro hay un par de puntos que el usuario
puede activar para asignar el intervalo de confianza con el que quiere trabajar y el
conjunto de datos de entrenamiento para realizar la prediccin. La siguiente figura
muestra la prediccin para los 24 meses siguientes al ejemplo.
Previsin de pasajeros para los siguientes 24 meses. (BasicConfigPanel2).
En la parte superior izquierda del panel de configuracin bsica, el usuario puede
seleccionar el campo que desea pronosticar. El entorno nos permite seleccionar varios
atributos objetivo para poder ver las dependencias que se crean entre ellos y en sus

predicciones, si el sistema solo reconoce un objetivo este ser seleccionado


automticamente. En la siguiente figura trabajamos con un fichero de datos que describe
las ventas mensuales de vinos australianos, como se ve hay cinco clases que se pueden
escoger como objetivos para pronosticar, se escogen dos de ellos para ver sus
dependencias y su evolucin en la prediccin.

Prediccion de doce meses para las clases de vinos "Fortified" y "Dry-white".


(BasicConfigPanel3)
Ahora definimos varios parmetros esenciales que se pueden cambiar en la parte derecha
de la ventana de configuracin bsico, estos controlan el comportamiento del algoritmo
de prediccin:
- Number of time units: este controla la cantidad de tiempo que transcurre entre
los pasos a predecir por el algoritmo, por defecto el sistema har una prediccin de una
nica unidad temporal. Segn sea la serie de tiempo la unidad de tiempo cambiar por
ejemplo en los dos casos anteriores se fijaban los fturos pasos mes a mes, pero para una
franquicia de comida rpida se pueden hacer previsiones a nivel de hora, para ver las
horas ms punteras en un da.
-Time stamp: si la serie de tiempo viene definida por una determinada fecha,
como ya explicamos antes el programa la reconocer y har las predicciones en base a
esta unidad temporal. En caso de que no sea as se puede utilizar la opcin de crear un
indice de tiempo artificial o si la marca de tiempo no viene definida por una fecha y si por
un nmero asignar este como marca temporal, en caso de que no interese definir este
campo se puede dejar en blanco.
-Periodicity: es usada para establecer valores predeterminados para la creacin de
variables rezagadas o "lagged" como las denominaremos. Este campo depende de si se ha
seleccionado una marca temporal definida por una fecha, en este caso el programa aplica
la heurstica para detectar directamente la frecuencia, en caso de que no sea una fecha el
usuario podr marcar la frecuencia manualmente o seleccionar como desconocido este
campo.
-Skip list: este campo permite crear excepciones para la frecuencia en la que se
quieran pronosticar los datos. Se pueden definir marcas temporales para que el algoritmo
no las trate como datos reales para la prediccin, modelado y visualizacin. Por ejemplo
si se analizan las faltas a clases de los alumnos de una asignatura de instituto, no se se
contabilizarn los fines de semana ni los das festivos o patrones del centro. Este campo
permite establecer estos huecos temporales definiendo las fechas especficas a omitir. La
siguiente frase muestra un ejemplo para no usar los datos de fin de semana y las fechas

especficas:
"weekend, 2011-01-17@yyyy-MM-dd, 2011-02-21, 2011-04-22, 2011-05-30, 2011-0704".
Confidence Intervals: para determinar el nivel de confianza deseado entre casa
intervalo a pronosticar, por defecto el programa utiliza un nivel de confianza del 95%,
esto significa que en cada intervalo de tiempo se encontraran un 95% de casos verdaderos
para los valorers objetivos. Hay que citar que los intervalos de confianza de un primer
paso predictivo usan todos los datos de entrenamiento, y as sucesivamente, no es que en
cada paso se vayan cambiando los grupos de datos de entrenamiento.
-Perform evaluation: seleccionando esta casilla el sistema realizar una prueba
sobre el predictor utilizando los datos de entrenamiento, para verificar su correcto
funcionamiento. Es decir, hasta que el predictor no termine de realizar su entrenamiento
sobre los datos, no se realizar ningn pronstico, una vez que se ha terminado con los
datos de entrenamiento, se predice cada valor puntual, para despus aplicar mtricas
sobre el conjunto de datos de un paso predictivo, se resumen los datos paso a paso para
toda la serie temporal. La siguiente captura de pantalla muestra el resultado de evaluar los
datos de entrenamiento para la base de datos de vinos australianos de antes:

(Fig.) Resultados de la evaluacin de las clases "Fortified" y "DryWhite".


(TrainingEvaluation)
Para termina de explicar la configuracin bsica de la herramienta vemos que en la parte
baja del lado izquierdo cada vez que se ejecuta el predictor y se pulsa START se gener
una lista con los resultados obtenidos, el modelo se puede exportar al disco seleccionando
la opcin que se muestra en la siguiente figura. Hay que saber que si el modelo se guarda
y se ejecuta con otros datos el resultado nunca va a ser el mismo, por eso es
recomendable ejecutar el evaluador con todos los datos posibles para as crear un modelo
consistente para el fturo.

(Fig) Guardando nuestro modelo recien creado.(SaveForecaster)

A continuacin describimos la configuracin avanzada del programa, que nos permitir


crear un modelo ms profundo donde existen muchas ms opciones y variables que se
pueden tocar. Una vez pinchamos en "Advanced configuration" vemos seis pestaas que
nos permitiran modificar algn comportamiento del predictor, estas son las siguientes:

-Base learner: podemos elegir sobre que algoritmo crear Weka el modelo para
nuestra serie temporal y configurar los parmetros especficos para el algoritmo de
aprendizaje seleccionado. SMOreg es el algoritmo que tiene seleccionado por defecto
Weka, pero se pueden escoger entre varios como se ve en la figura o utilizar alguno que
hayamos implementado usando la API del programa.
(Fig). Seleccin del algoritmo. (BaseLearner2).
Como ya comentamos, en este apartado el programa nos da la opcin de escoger que
parmetros le pasamos al algorimo que acabamos de elegir.
(Fig). Seleccin de parmetros. (BaseLearner3).
-Lag creation: permite al usuario controlar y manipular como se generan las
variables retardadas o "lagged". Estas variables son el principal mecanismo por el que se
relacionan los datos pasados con los datos acutales de una serie temporal, capturados por
los algoritmos de aprendizaje provisional. Se cre un "snapshot" de longitud definida por
el nmero de variables lagged durante un perodo de tiempo, la frecuencia de la serie
temporal tiene un valor muy importante sobre el nmero de variabes lagged, por ejemplo
para los datos analizados anualmente un buen valor de variables lagged sera 12 en
cambio para analizar datos de un da concreto el valor de lagged que mejor se ajusta ser
24. Marcando la opcion de "Adjust for variance" el modelo se ajusta a los valores de la
varianza,en las siguientes casillas se define los valores de pasos predictivos que se han de
dar para comenzar a generar variables lagged, mediante el campo "Fine tune lag
selection", definimos rangos de valores para la creacin de estas variables, en el ejemplo
que se muestra en la siguiente figura se crearan variables lagged los pasos 1-26 y 52,
descartando los pasos 27-51. En la parte derecha de este men econtramos el apartado
Averaging donde podemos seleccionar una casilla para crear un promedio de las variables
lagged con las que se trabaja. Segn una regla de estados debera de cumplirse que el
nmero de filas(instancias) sea diez veces al nmero de campos o atributos, con lo que
crear muchos campos para variable lagged puede ser contraproducente dependiendo del
algoritmo con el que se trabaje, una excepcin puede ser la mquina de vectores que
trabaja en casos donde hay muchos ms columnas que filas. En este apartado podemos
especificar en que paso predictivo queremos que se comiencen a crear promedios para las
variables lagged y el nmero de estas que queremos que entren en cada promedio.

(Fig) Men para el ajuste y creacin de variables lagged. (LagCreation1

-Periodic attributes: en esta pestaa Weka nos ofrece unas opciones para

personalizar que atributos derivados del tiempo son creados, esta funcionalidad solo esta
permitida si existe una marca de fecha y hora, si se especfica una cierta frecuencia en la
configuracin bsica, este valor ser introducido por defecto en esta seccin, por ejemplo
al tratar datos menusales se pueden crear campos peridicos para su anlisis como puede
ser una variable trimestral, semestral. Las siguientes figuras muestran en primer lugar el
cuadro para escoger parmetros temporales predefinidos y en el segundo Weka nos
permite definir nuestro propio intervalo temporal como pueden ser un periodo vacacional.
(Fig) Cuadro para crear atributos peridicos predefinidos.(PeriodicAtts1)
(Fig) Ventana para crear o borrar atributos peridicos personalizados. (PeriodicAtts2)
-Overlay data: permite al usuario especificar que campos de los datos han de ser
considerados como "overlay", por defecto la herramienta Weka no trabaja con los datos
overlay, entendemos por estos a los atributos que no se pueden predecir y seran
considerados en proximos perodos de tiempo. Si escogemos un objeto a predecir en una
base de datos, el resto de los atributos se pueden considerar como valores overlay, al
marcar la casilla "Use overlay data" para trabajar con estos datos, nos apareceran los
campos que estan disponibles para ser tratados como datos overlay. Es importante tener
un control de estos datos para poder realizar predicciones especiales histricas, ya que
aunque no se vayan a predecir los valores overlay nos ofrecen informacin extra sobre
cada instancia, estas se denominan variables de intervencin. Hay que apuntar que si se
quiere realizar un pronstico sobre una variabale objetivo que depende de valores overlay
y estos no se encuentran disponibles, el sistema ser incapaz de realizar la prediccin.
(Fig) Campos overlay despus de selecionar la variable objetivo vino fortified.(Overlay1)
- Evaluation: nos permite seleccionar las diferentes mtricas que ofrece Weka para
la evaluacin de los datos de entrenamiento y/o un conjunto de datos extendidos desde el
final de los datos de entrenamiento. Esta opcin es semejante a la ofrecida en la
configuracin bsica, donde por defecto se seleciona la media del error absoluto(MAE) y
la media del error cuadrtico (RMSE) para evaluar las predicciones, en la versin
avanzada podremos elegir la mtrica que queramos de las siguientes ofrecidas:
-Media Error Absoluto (MAE): sum(abs(prediccin-real)) div N.
-Error Cuadrtico Medio (MSE): sum ((prediccin-real) ^2) div N.
-Raiz Cuadrada del Error Cuadrtico Medio (RMSE): sqrt(sum((prediccinreal)^2) div N).
-Porcentaje del Error Medio Absoluto (MAPE): sum(abs((prediccin-actual) div
actual)) div N
-Orden Exacto(DAC): count(sign(valor_actual - valor_actual_previo)== sig
(valor_prediccion- valor_prediccion_previo)) div N
-Error Relativo Absoluto(RAE): sum (abs( prediccion- actual)) div

(sum(abs( valor_previo - actual )))


-Raiz de los Errores Relativos: (sqrt (sun (( prediccion - actual) ^ 2) div N)) div
(sqrt (sum ( valor_previo - actual) ^2) div N))
Las medidas relativas proporcionan una buena informacin para saber si las prediciones
son correctas, comparandolo con el valor de la ltima prediccin conocida, si se obtienen
valores bajos el algoritmo de prediccin esta obteniendo buenos resultados.
-Output: la configuracin avanzada nos permite seleccionar ajustes para la
obtencion de resultados y opciones para su representacin grfica, como se muestra en la
siguiente figura:
(Fig) Output1
En el cuadro de opciones de salida podemos seleccionar la casilla de prediciones paso a
paso, donde escogemos la variable que querremos analizar y el nmero de unidades
temporareles que queremos que se ejecuten en cada paso, aparte del resultado de la
prediccin el sistema tambin nos devuelve el error calculado en cada paso.
Tambin podemos obtener un resultado en modo grfico de los datos objetivos a
pronosticar, en este modo se pueden pintar varios atributos a diferencia de los resultados
de salida descritos antes, que solo podiamos tener un valor objetivo en cada salida. El
modo grfico permite tambin la predicin por pasos, tal y como se ha descrito para la
recopilacin de resultados en modo texto. La siguiente figura representa la salida en
modo grfico para la variable "fortified" de los datos ejemplo vinos de Australia,
representando los pasos uno, dos, tres, seis y doce.
(Fig) Salida grfica para la variable "fortified". OutputGraph1

4.4 Conclusiones
Weka se ha convertido en una de las herramientas ms faciles e intuitivas de usar para el
tratamiento de series temporales y para realizar cualquiera de las tareas de Minera de
datos que ofrece. Su interfaz resulta bastante agradable al usuario y creo que podra
utilizarse como entorno de aprendizaje para el proceso de Minera de datos. Al trabajar
directamente con Java es mucho ms atractivo que otras herramientas que exigen
aprender un lenguaje menos comn para poder ser usados. En contra decir que no se
encuentra mucha informacin sobre el tratamiento de series temporales.

Captulo 5: Lenguaje R

5.1 Introduccin
El nacimiento de este lenguaje de programacin se puede ligar con el programa
estadsitco S o S-Plus, este fue desarrollado por los Laboratorios Bell en el ao 1976 por
el investigador John Chambers cuyo objetivo era proporcionar una metodologa
estadstica, estaba codificado en Fortran en sus comienzos luego seran reescritas al
lenguaje de programacin C. Podemos afirmar que R proporciona un lenguaje de
programacin de cdigo abierto para la implementacin de la metodologa estadstica
proprocionada por S, de forma informal diremos que R es la versin abierta de S.
Destacaremos que aunque no son el mismo lenguaje mucho cdigo de S se puede ejecutar
en R [41].
Hablaremos ahora de los inicios de R despus de este inciso sobre su padre S. En 1991 en
Nueva Zelanda es creado por los profesores Ihaka y Gentleman de la universidad de
Aukland para que nueve aos ms tarde salga a la luz su primera versin GNU GPL, a
partir de este momento comienza el reinado de R dentro del mundo de la estadsitca
computacional. En sus comienzos R simplemente estaba pensado para ser una
herramienta estadstica pero con el paso de los aos y el trabajo de una comunidad
extensisima de trabajadores se ha convertido en un entorno de programacin donde se
pueden aplicar infinidad de tcnicas estadsiticas tanto clsicas como modernas. R como
entorno de programacin fue desarrollado mediante librerias y paquetes, en sus inicios
constaba de ocho paquetes bsicos para su ejecucin y a estos se fueron uniendo un sin
fin de paquetes desarrollados por la comunidad de R, la gran aceptacin de los
investigadores ha sido crucial para que R se convierta en uno de los lenguajes de
programacin ms usados en todo el mundo, es tal su despliegue que en el ao 2014 se
contabilizaban ms de 5800 librerias desarrolladas en R, el desarrollo en la actualidad de
gran nmero de las librerias se realiza por R Development Core Team. Son numerosas las
empresas punteras que utilizan R: Google, Shell y Inter-Continental Hotels Group entre
otras.
Por defecto el modo de trabajar con R es por lnea de comando, algo que a primeras
puede causar una situcin no deseada por el investigador pero que realmente ofrece una
herramienta estadstica muy potente. Actualmente ya hay interfaces grficas para el uso
de R, como son Rstuido y R-commander, se muestra una pantalla de cada herramienta en
la siguiente figura:
(Fig) Entorno grfico R-commander. Rcmdr-screenshot.
(Fig) Entorno gfico RStudio. Rstudio
Sobre la consola de mando se van escribiendo scripts que generan resultados de salida a
partir de unos resultados previamente cargados. Una de las particularidades de R es que
introduce el concepto de objeto, R ejecuta paso a paso las expresiones que se le pasan, los

resultados intermedios se almacenan en estos objetos para ser analizados posteriormente


produciendo salidas mnimas. Estos objetos pertenecen a una clase determinada de forma
que cada objeto realizar unas funcions especficas segn la clase que pertenezcan.
Aunque este concepto no es excesivamente novedoso para el mundo de la programacin
informtica si que lo ha sido en la comunidad estadstica.
En este trabajo se har una revisin ms profunda sobre el paquete Forecast que esta
disponible para R en : http://github.com/robjhyndman/forecast donde se proponen
mtodos y herramientas para pronsticar y visualizar series del tiempo univariadas
usando modelos ARIMA entre otros [42].

5.2 - Caractersticas
Como ya describimos en la seccin anterior R presenta un entorno de programacin
estadstica con las siguientes caractersticas bsicas [41] [43]:
- Almacenamiento y manipulacin de datos: proporciona un entorno para la
aplicacin de tcnicas de Minera de datos, suministrando un montn de mtodos
estadsticos tanto clsicos como los de ltima generacin para el tratamiento de datos.
- Posibilidades grficas: para analizar datos de forma visual, se pueden descargar
numerosos paquetes para pintar todo tipo de grficas y estadsticas.
- Lenguaje de programacin: robusto y bien desarrollado, simple y efectivo.
Formado por semticas condicionales, fuciones recursivas, bucles, modificacin de
parmetros.
- Multiplataforma: existen versiones ejecutables para Windows y Mac, para Linux
se pueden descargar desde el paquete principal las clases que ejecutan el programa.
- Amplia disponibilidad de documentacin para el usuario experto o usuario
novel.
- Facilmente adaptable: debido a su gran extensin entre la comunidad de
investigadores cada vez se encuentra en ms facetas de investigacin: biomedicina,
modelos financieros..
- Libre distribucin: al ser un programa gratis, propociona una herramienta muy
demandada en muchas instituciones, por ejemplo en el sector acadmico se ha convertido
en una de las ms populares ya que al no tener que pagar una licencia el alumno podr
seguir trabajando con el despus de realizar sus estudios.

A la hora de importar archivos a R hay numerosos procedimientos, ya que al ser tan


usado por la comunidad de programadores, existen infinidad de paquetes que
implementan funciones para extraer datos desde casi cualquier plataforma. El primer caso
que revisaremos ser la recopilacin de datos a partir de un texto plano para ello lo ms
importante es especificarle a R cual ser el separador de los argumentos, mediante la
funcin read.delim o read.table,en la siguiente figura se muestra un ejemplo:
(Fig) Introducir datos en R a partir de un fichero de texto. (Importar Datos)
Tambin se pueden recuperar los datos de un servidor online, trabajar con archivos csv
(formato abierto de datos representados en tablas), de una plantilla excel. Todos los
ejemplos que se muestran y otros se pueden encontrar en [44]:
(Fig) Ejemplo para importar datos desde Excel. (ImportarDatosExcel)
Despus de ver como se introducen los datos para el lenguaje R, vamos a analizar el
paquete llamado forecast, este paquete esta especialmente diseado para realizar
predicciones de series temporales. Trabaja con otros paquetes de R como son stats,
graphics, zoo, timeDate, tseries, fradiff. El paquete forecast contiene ms de cuarenta
funciones, en este trabajo no citaremos todas, se puede encontrar su especificacin
completa en Internet. Definiremos alguna de ellas:
- Acf/Pacf: esta funcin utiliza plot para pintar una grfica de la funcin
autocorrelaccin de una serie temporal univariable, en el segundo caso se estima apartir
de la funcin de autocorrelacin parcial.
- Arima: ajusta el modelo ARIMA a una serie unavariable.
- arima.errors: devuelve los datos que no se ajustan al modelo, no son los valores
residuales, si no existen variables regresivas en el modelo Arima la funcin devolver la
serie temporal con la que se esta trabajando, en caso de existir variables de regresion el
resultado sera la serie temporal menos las variables de regresin obtenidas.
- arimaorder: devuelve el orden del modelo Arima univariable que le pasamos por
parmetro.
-auto.arima: devuelve el modelo ARIMA que mejor se adapta a las variables de la
serie introducida.
- bizdays: devuelve el nmero de das habiles para un mes o un periodo de tiempo
especfico.
-BoxCox: devuelve la transformada de Box-Cox de una variable que pasamos por
parmetro.

- croston: devuelve la prediccin de Croston y otra informacin para la serie


introducida.
-dshw: devuelve un pronstico usando el mtodo de Double-Seasonal HoltWinters.
-easter: devuelve un vector de 0 y 1, para indicar los das festivos en Semana
santa.
-ets: devuelve el modelo de suavizado exponencial.
-findfrequency: encuentra la frecuencia dominante para una serie temporal.
-forecast: es una funcin estandar para realizar la prediccion de series temporales,
segn el modelo escogido existen varias variantes de esta funcin.
- forecast.Arima: prediccin utilizando el modelo ARIMA.
- forecast.bats: prediccin utilizando el modelo BATS.
- forecast.ets: prediccin utilizando el modelo ETS.
- forecast.lm: prediccin utilizando el modelo lineal.
- getResponse: es una funcin genrica para extraer datos historiocos del modelo
de una serie temporal, de un modelo lineal o de la prediccin de un objeto.
- ma: procporciona una tcnica de suavizamiento sencilla.
- meanf: devuelve el pronstico y los intervalos de prediccin para un modelo
aplicado a una serie temporal.
- na.interp: usa la interpolacin lineal para series no estacionales.
- ndiffs: devuelve el nmero de variables diferenciadas para una serie
estacionaria.
- nnetar: prediccin de una serie temporal empleando redes neuronales.
- plot.Arima: produce un grfico de las caractersticas principales para un modelo
ARIMA.
-plot.bats: produce un grfico para los componentes de un modelo BATS.
- plot.ets: produce un grfico para los componentes de un modelo ETS.
- ses: devuelve predicciones y otra informacin para el suavizamiento exponencial
de un serie temporal.

- sindexf: devuelve la prediccin de un ndice estacionl.


- tsclean: identifica y remplace los valores errneos de una serie temporal.
- tsdisplay: dibuja una grfica de una serie temporal, con su funcin de
autocorrelacin, su funcin parcial de autocorrelacin, valores lagged o su valor
espectral.
- tslm: ajusta los componentes de una serie temporla a un modelo lineal.
- tsoutliers: identifica y remplaza los valores atpicos de una serie.

5.3- Demo
Una vez que nos hayamos descargado e instalado el programa R comenzaremos a
trabajar con el, lo primero que nos aparece al arrancar el programa es una cabecera donde
nos informa de la versin con la que estamos trabajando. Para comenzar comentaremos
que R es un entorno de trabajo para la programacin via ventanas, lo primero que
haremos es crear un directorio donde guardaremos nuestra sesin ( todos los objetos y
estados intermedios por los que pasar nuestro programa). El lenguaje de programacin R
no distingue entre comillas simples y dobles, pero si que entiende la diferencia entre
letras maysculas y minsculas [42]. Una vez que nos disponemos a comenzar a
programar, deberemos primero descargarnos los paquetes que nos hagan falta para llevar
a cabo la funcionalidad objetivo de nuestro programa, como ya dijimos antes R dispone
de muchsimos paquetes para poder abordar cualquier tarea estadstica que queramos.
Antes de cargar los paquetes en memoria para ser usados en nuestro programa debemos
de instalarlos sobre el entorno de trabajo, para ello usaremos la interfaz grfica y
descargaremos el paquete correspondiente, en nuestro caso trabajaremos con ts y
forecast.
(Fig) Instalar paquetes en R [43]. (Instalar paquetes)
Lo primero que haremos ser crear una serie temporal bsica y manejar un par de
comandos con ella, en el ejemplo mostrado en la siguiente figura, se declara una serie
temporal anual porque se acotan doce intervalos de tiempo sobre una fecha, y se
especcica extrictamente que comience a contar desde Marzo del ao 2011. Luego se
devuelve la propia serie creada de forma general, en cadena de carcteres y por atributos.
(Fig) Declarar serie temporal. (DeclararST)
Como hemos visto en casos anteriores la Minera de datos suele realizar un preprocesado
de los datos, entre alguna de las tareas de este proceo se encuentra la reduccin o
descomposicin de una serie temporal. Se puede descomponer una serie temporal segn

sus componentes: tendencia, estacionalidad, componentes cclicos y componentes


residuales o irregulares. En la siguiente figura se muestra los comandos para realizar una
descomposicin estacional de una serie temporal.
(Fig) Descomposicin estaciona. (DescomposicinEstacional)
La prediccin se ha vuelto una de las tareas ms estudiadas en el anlisis de series
temporales, ya que conociendo valores pasados en el tiempo podemos ser capaces de
pronosticar ciertas variables en un futuro veremos ahora un ejemplo para implementar un
modelo ARIMA para un intervalo de confianza del 95%:
(Fig) Prediccin Modelo ARIMA (ModeloARIMA)
(Fig) Grfica del pronstico del modelo ARIMA (GraficaModeloARIMA)

Veamos ahora como realizar un agrupamiento una serie temporal, para ello utilizaremos
alguna de las medidas de distancia entre series temporales, de esta forma la serie
temporal objetivo se dividir en secuencias que se comparan sobre la medida calculada
para saber a que cluster pertenecen. En el siguiente ejemplo se muestran los comandos
del lenguaje R para realizar un clustering jerrquico basado en la distancia eucldea, el
resultado de los seis valores observados se reparte en 8 clusters, donde se genera una
matriz que indica de cada serie observada cuantos elementes pertenecen a cada cluster:
(Fig) Cdigo para el agrupamiento jerrquico. (ClusteringJerarquico)
En otro caso podriamos cambiar la medida de distancia, usariamos DTW en lugar del
valor de la distancia eucldea. En la siguiente figura se muestra como podemos calcular el
valor de la distanci por el mtodo DTW:
(Fig) Distancia por Alineamiento Temporal Dinmico - DTW. (SimilitudDTW )

Por ltimo vamos a mostrar un ejemplo de clasificacin, implementaremos dos


clasificadores: un rbol de decisin basado en los datos obtenidos de la trasnformada de
Wavelet y un clasificador que trabaja con el algoritmo de los K-vecinos cercanos.
(Fig) Clasificacin rbol de decisin. (ArboldeDecisn)
(Fig) Clasificacin K-vecinos cercanos. (Kvecinos)

Los resultados para el rbol de decisin indican que el clasificador funciona bien un 86%

de los casos estudiados, mientras que para el algoritmo de los K-vecinos la clase 6 es la
que ms identifica al valor objetivo. Las capturas de pantalla de esta seccin se
encuentran todas en [45].

5.4 Conclusin.
Despus de la revisn de la herramienta R podemos decir que este entorno de
trabajo ha pasado de ser una calculadora para expertos a convertirse en una de las
herramientas ms potentes para el tratamiento de ejercicios estadsticos.En un principio
puede llegar a resultar agotador entender su funcionamiento y todas las posibilidades que
ofrece pero una vez nos hemos familiarizado con el pienso que es la mejor herramienta
para el tratamiento de series temporales que podemos encontrar en la actualidad.

Você também pode gostar