mineria de datos para series temporales

Download Mineria de datos para series temporales

If you can't read please download the document

Upload: olioliole

Post on 11-Dec-2015

29 views

Category:

Documents


13 download

DESCRIPTION

Revisión bibliográfica sobre recursos de minería de datos para series temporales

TRANSCRIPT

ResumenLa 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 IntroduccinEn 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 problemaEl 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 CarreraEl 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 TemporalesEn 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 TemporalesA 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 TemporalLas 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 temporalesLos 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 temporalTradicionalmente 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'ovilUna 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'onLlamaremos 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 temporalesBuscan 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 DatosComo 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 indexadoEsta 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 FourierEn 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 SAX3.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 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 KEl 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 AgrupamientoEsta 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 j-simo, 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 : Weka4.1 IntroduccinEn 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 CaractersticasComenzaremos 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 Attribute-Relation 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-07-04".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((prediccin-real)^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) Output1En 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". OutputGraph14.4 ConclusionesWeka 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 R5.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. RstudioSobre 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 Holt-Winters.-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- DemoUna 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.Des