Abortos otoñales: Análisis de series temporales (II)

En el número anterior dijimos que íbamos a introducir las series temporales. Para recordar diremos que una serie temporal es una secuencia de datos medidos en determinados momentos y ordenados cronológicamente.
Estos datos pueden haber sido recogidos (o suceder) a intervalos iguales o desiguales (sin una cadencia regular). Veamos un ejemplo de cada caso:
■ Datos temporales recogidos a intervalos regulares: el número de abortos en una granja o el número total de lechones nacidos muertos medidos cada semana.
■ Datos temporales recogidos a intervalos desiguales: la cantidad de un producto usado contra la diarrea neonatal (los datos se recogerán cuando haya casos de diarreas, no semanalmente, ni mensualmente, ni con una cadencia determinada).
También en el número anterior hacíamos desde RCommander un gráfico que reproducimos aquí para ponernos en situación. Puede realizarse descargando el archivo “abortions.csv”. Una vez descargado, cargamos R, ejecutamos la instrucción library (Rcmdr) cargaremos los datos del número anterior “abortions.csv” . Posteriormentes, y en la pantalla de comandos de Rcmdr, ejecutamos el siguiente código (los símbolos # delante de cada línea son comentarios y no serán ejecutados por R).

#Ahora creamos dos nuevas variables a partir de las variables “week” y #“year”, que son numéricas y tendremos “week2” y “year2” que serán factores #(alfanuméricas)
Abortions$week2 <- as.factor(Abortions$week)
Abortions$year2 <- as.factor(Abortions$year)
#Y con ésta generamos el gráfico de la figura 1
xyplot(numabort ~ week, groups=year2, type=”l”, pch=16, auto.key=list(border=TRUE), par.settings=simpleTheme(pch=16), scales=list(x=list(relation=’same’), y=list(relation=’same’)), data=Abortions)


EL MODELO GENERAL DE LAS SERIES TEMPORALES
En este artículo damos un paso más y empezamos a analizar el modelo.
Una serie temporal de datos es la suma (modelo aditivo) de varias componentes que podemos presentar como:

Xt = Tt + St + It o Valor observado =
Tendencia + Estacionalidad + Irregular

donde,
■ Xt es el valor observado en el momento t.
■ Tt es el valor de la tendencia (comportamiento de la serie a lo largo plazo) en el momento t.
■ St es el valor de la estacionalidad (movimientos de oscilación dentro de un año) en el momento t.
■ It es el valor de la irregularidad (o valor aleatorio, es decir, movimientos oscilatorios de la serie alrededor de los componentes anteriores, no controlados por el modelo) en el momento t.
Igual que con otros modelos, queremos estudiar las variables que influyen en él, con lo que en estos casos nos conviene aislar estos componentes de la serie. Una forma de estudiar la estacionalidad de una serie de datos es considerar cómo varía la media del periodo (del mes) respecto al periodo global. Con la tabla 1 nos daremos una idea de cómo se hacen los cálculos.
Donde:
■ x12 1 es el valor observado en el mes de diciembre del primer año (media mensual de ese mes).
■ x¯2. es la media de todos los “febreros” de la serie temporal.
■ x¯. n es la media del año “n”.
■ x¯. . es la media global, la de todos los datos del estudio.



SACAMOS JUGO A LAS SERIES TEMPORALES CON R
Vamos a intentar ver si nuestros datos tienen una tendencia estacional y lo vamos a hacer con R. Para ello, como ya tenemos cargado R, lo primero que haremos será cargar un paquete nuevo llamado “timeSeries”. Para ello iremos a la consola de R (donde cargamos habitualmente RCommander) y en Paquetes/Instalar paquete(s)… elegiremos un país que nos sirva de servidor (o espejo) y buscaremos cuando nos aparezca la pantalla de los paquetes, el paquete “timeSeries”, como en la figura 2.
Una vez instalado, cargaremos el archivo “abortionsmes.csv”. A estos nuevos datos les llamaremos, cuando los importemos, “abortionsmes” para diferenciarlos de los que teníamos cargados antes (abortions). Verificaremos que los datos están cargados viendo que en RCommander, en la esquina superior izquierda, aparece la etiqueta “abortionsmes”. Estos datos son los mismos del archivo “abortions.csv” pero agrupados mensualmente.


La función “descompose”
Para estimar las componentes de la tendencia y de la estacionalidad de un grupo de datos que pueden ser descritos usando un modelo aditivo (como el que tenemos), usaremos la función “decompose” del paquete “timeSeries”. Esta función estima la tendencia, la estacionalidad y la componente aleatoria de una serie temporal.
La función “decompose” devuelve un objeto de tipo lista donde las estimas de la componente de la tendencia, de estacionalidad y la aleatoriedad están almacenadas en unos elementos denominados “trend” para la tendencia, “seasonal” para la estacionalidad y “random” para la componente aleatoria.
Para poder llevar a cabo la función “decompose” primero cambiaremos el tipo de datos que tenemos cargados a un objeto “timeSeries” mediante la siguiente instrucción:

abortionsmesseries <- ts(abortionsmes, frequency=12, start=c(2012,1))


donde le decimos a R que nuestros datos “abortionsmes” son mensuales (frequency=12) y que comienzan en el año 2012, correspondiendo el primer dato a enero de 2012 [start=c(2012, 1)].
Después escribiremos en la pantalla de comandos de RCommander la siguiente instrucción:

abortimeseriescomponents <- decompose(abortionsmesseries)


Si ahora escribimos:

abortimeseriescomponents$seasonal,


R nos devolverá el grupo de datos de la tabla 2.
Como vemos en la tabla 2, las estimaciones para cada mes son las mismas para cada año. Podemos ver que el mayor factor estacional se da para los meses de septiembre y octubre de cada año.

Seguimos con R, pero en gráficos
Podemos verlo con un gráfico si escribimos:

Plot(abortimeseriescomponents)


con lo que obtenemos el siguiente gráfico (figura 3):



donde vemos un efecto estacional (ver la parte “seasonal” de la figura 3) en los meses de septiembre y octubre y también una tendencia a aumentar desde mediado del 2012 hasta el 2014, una tendencia a disminuir en casi todo el 2014 para volver a incrementarse hacia el final del 2014 y el inicio del 2015 (ver la parte “trend” de la figura 3).
Volveremos sobre estas funciones y sobre más utilidades de la estacionalidad de datos en el siguiente número.


Documento para descargar: abortions.csv  abortionsmes.csv

Comentarios

  1. Muy interesante, creo que ganaría mucho en valor si se realizase un análisis adicional de consecuencias prácticas en base al conocimiento que hay detrás de esos datos. Es decir, el análisis estadístico nos da una salida que hemos de interpretar o poner en valor. P.e. la estacionalidad estaría ligada a abortos estacionales que se producen de forma repetitiva, pero en la granja, a la vista de las gráficas aportadas ha habido un aumento a finales de 2014 que podría estar provocado por algún proceso patológico. Algo así. Gracias.

    ResponderEliminar

Publicar un comentario

Entradas populares