Escolar Documentos
Profissional Documentos
Cultura Documentos
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
1.1 Preliminares.
Los primeros estudios sobre las series temporales y su predicin datan del ao 1950,
donde se encuentran los inicios de estudios sobre varias aplicaciones.
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.
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.
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.
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
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
Libreta formula 1.
expresiones algebraicas desarrolladas por Goley calcular la correlaci'on de dos series del
tiempo :
F'ormula 2 libreta.
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
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.
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
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.
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.
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.
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:
-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.
-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
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
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.
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
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 )
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.