lunes, 17 de marzo de 2014

Análisis de Datos Funcionales



Se presenta un método que últimamente conoce gran interés en el área de la investigación estadística. Se trata del Análisis de Datos Funcionales, método que pretendemos aplicar a un conjunto de datos reales, datos que corresponden al número medio lunar de fallecimientos, por culpa de una enfermedad pulmonar, en UK, durante 1974-1979. Vamos a aplicar las técnicas de dicho método con la ayuda del software estadístico de licencia gratuita R, utilizando el paquete fda. El análisis de datos funcionales dispone de varias técnicas para su desarrollo, en función de las necesidades de cada caso en parte. Para nuestro conjunto de datos nos ha parecido adecuado utilizar el análisis de datos exploratorio funcional, descriptivo funcional y el análisis de componentes principales funcionales. El fallecimiento, por cualquier razón, es motivo suficiente como para intentar analizar, entender y explicar todo lo que sea posible sobre el tema. Nuestro objetivo es presentar los datos, calcular las medias funcionales, las desviaciones de la media y con la ayuda de los   componentes principales funcionales, intentar explicar la variabilidad que pueda existir en los datos. 


Palabras clave: Análisis de datos funcionales; Análisis de componentes principales funcionales; Enfermedades pulmonares; R y fda.

Introducción


Los datos que vamos a utilizar para nuestro análisis están representados en la Figura 1. Se trata del número medio lunar de fallecidos, por culpa de alguna enfermedad pulmonar,  registrados durante 1974-1979 en UK. De esta forma tenemos seis variables (N=6) representadas sobre el intervalo (T=1:12), intervalo que corresponde a los doce meses del año. Analizando el primer gráfico se observa que para los seis años, el mayor número de fallecidos se registra durante los meses del invierno y el menor número se      registra durante los meses de verano.

Figura 1. Fallecidos por enfermedades pulmonares en UK
El análisis de datos funcionales transforma los datos discretos en funciones, y a estas funciones se les aplica varias técnicas con el objetivo de descubrir estructuras intrínsecas que con una simple representación no sería posible evidenciar. Para la transformación de los datos vamos a utilizar el suavizado y para la representación de las funciones utilizaremos las  funciones bases B-spline. El sistema de funciones bases tiene ϕ_k (ϕ_1,…,ϕ_k) funciones independientes unas a otras y tienen la propiedad de que podemos aproximar bastante bien cualquiera función, tomando la suma de los coeficientes, o una combinación lineal de un número bastante grande de K de estas funciones. Una función spline está definida como:

S(t)=∑_(k=1→m+L-1)[c_k B_k (t,τ) ]


El segundo objetivo será el cálculo de las medias funcionales y la  representación de las varianzas funcionales que nos informará acerca de la distribución de variabilidad.
Nuestros primeros objetivos  van a ser: suavizar las funciones, analizar el ajuste, los coeficientes y los errores. El suavizado se realizará mediante  la reducción de rugosidad siguiendo el siguiente modelo:

 F(c)=∑_j[(y_j-x(t_j ))^2+λ∫(D^2 x(t))^2 dt


En esta ecuación el parámetro de suavizado es  lambda, más grande el valor de lambda más suave será la función, pero hay que tener cuidado porque si seleccionamos un valor demasiado grande entonces se llegaría a una línea recta, que no será muy descriptiva (para una información más detallada el lector debe consultar Ramsay (2005)) Los coeficientes de las funciones nos permiten buscar más  información acerca de la distribución de los datos, de igual modo que los errores resultantes tras realizar dicho ajuste.

El segundo objetivo será el cálculo de las medias funcionales y la  representación de las varianzas funcionales que nos informará acerca de la distribución de variabilidad.

-x(t)=N^(-1) ∑_(i=1→N) [x_i (t)]


var_X (t)=(N-1)^(-1) ∑_(i=1→N)[x_i (t)-x(t) ]^2 


Nuestro tercer objetivo será la exploración de la variabilidad mediante el análisis de componentes principales funcionales. Dado que las variaciones entra-funciones se analizan con el suavizado, en esta ocasión analizaremos las variaciones inter-funcionales. Queremos ver qué tipo de variaciones existen en los datos y cuantas de estas variaciones son substanciales. Como es el caso del análisis multivariante, los eigenvalues de la función de varianza-covarianza  bivariante ν(s,t) son indicadores de la importancia de estos componentes principales y la gráfica de los eigenvalues es un método para determinar cuantas componentes principales son necesarias para explicar los datos ( Peña, 2002). En el análisis de componentes principales funcionales es preferible una eigenfunction asociada a cada eigenvalue y no a cada eigenvector. Estos eigenfunctions describen la mayor variabilidad. Muchas veces, aplicando una rotación a los componentes, podemos obtener una representación más descriptiva (para mayor información se recomienda al lector el libro de M.J. Valderrama, A.M. Aguilera y F.A Ocaña, 2000). 

Notamos que en el análisis la variación se puede calcular con la ayuda de la matriz de covarianzas o con la matriz de correlaciones. En el análisis multivariante, normalmente se utiliza la matriz de correlación, porque la escala y la locación influyen de manera desinteresada. En cambio, en el caso funcional los valores x_j (t),x_s (t)  tienen las mismas escalas y orígenes. Entonces la función de covarianza estimada


ν(s,t)=(N-1)^(-1) ∑_(i=1→N) [x_i (s)-x(s)][x_j (s)-x(t)]

, o el producto cruzado funcional


ν(s,t)=N^(-1) ∑_(i=1→N) x_i (s) x_i (t)

tienden a ser más útiles que la correlación funcional. Más información sobre análisis de componentes principales funcionales también en  Ramsay (2005) y Horvath (2012).


Para el análisis de los datos se ha utilizado el software de licencia gratuita R, que es un lenguaje de alto nivel y un entorno para el análisis de datos y gráficos. Puede descargarse libremente del sitio llamado CRAN (Comprehensive R Archive Network) en la siguiente dirección: http://cran.r-project.org/

Entre otras características dispone de:
-          almacenamiento y manipulación efectiva de datos;
-          operadores para cálculo sobre variables indexadas (Arrays), en particular matrices;
-          una amplia, coherente e integrada colección de herramientas para análisis de datos;
-          posibilidades gráficas para análisis de datos, que funcionan directamente sobre pantalla o impresora;
-          un lenguaje de programación bien desarrollado, simple y efectivo, que incluye: condicionales, ciclos, funciones recursivas y posibilidad de entradas y salidas.

El término “entorno" lo caracteriza como un sistema completamente diseñado y coherente, antes que como una agregación incremental de herramientas muy específicas e inflexibles. R es en gran parte un vehículo para el desarrollo de nuevos métodos de análisis interactivo de datos.


 Aunque R puede entenderse como un lenguaje de programación, los programas escritos en R deben considerarse esencialmente efímeros. Para su uso se pone a la disposición del usuario un número bastante grande de librerías (paquetes), cada una diseñada para algún tipo de análisis especifico. Nosotros, para el análisis de datos funcionales, vamos a utilizar el paquete estadístico fda, paquete diseñado por  J.O. Ramsay, Hadley Wickham y Giles Hooker en 2012.

Metodología


Primero se definen las funciones bases ϕ_k, que en este caso van a ser 7 funciones B-spline elegidas en un intervalo T=1…12 . Se utilizarán splines de orden cuatro, consistiendo en polinomios cúbicos de grado tres y un solo nudo para cada punto de corte. Para ello hemos dividido nuestro intervalo T en sub-intervalos (1-4, 4-8 y 8-12). En cada sub-intervalo suponemos un  solo nudo interno, en total tres. Para el cálculo del K se utilizó la fórmula K=O+N, donde O(4) es el orden y N(3)) es el número de nudos internos, por lo cual K=4+3=7.
Figura 2. Siete funciones bases B-splines

 Basis object:
Type:   bspline
Range:  1  to  12
Number of basis functions:  7
Order of spline:  4
[1] "  Interior knots"
[1] 3.75 6.50 9.25                                                       

Observamos que los nudos internos están calculados automáticamente en los puntos 3,75; 6,50 y 9,25.Tenidas ya las funciones bases ϕ_k podemos ocuparnos del cálculo de los coeficientes c_k ,y después podemos construir el objeto funcional y representarlo mediante una gráfica. Los coeficientes se pueden calcular mediante la ecuación que se utiliza para el cálculo de los coeficientes en regresión: b=(X’X)^(-1) X'y.

La posibilidad de utilizar derivadas  de una función es quizá la tarea más distintiva de los datos funcionales. Proponiendo una combinación lineal de derivadas llegaremos a operadores lineales diferenciales. Nosotros utilizaremos para el suavizado la segunda derivada y un valor mínimo para el lambda 0,01.
Figura 3. Reducción de rugosidad utilizando la segunda derivada y el lambda de 0.01

Podemos dibujar las segundas derivadas en busca de puntos de inflexión. En la Figura 4 se observa que para 1979 e incluso para el 1975  no hay puntos de inflexión  (la segunda derivada se mantiene a cero por todo el recorrido), pero no es el caso de los otros años donde se observa un punto de inflexión importante en el cuarto mes (Abril). Remarcamos también que el cambio de las funciones no es para los cuatro años en el mismo sentido, dos cambia a concavidad y dos a convexidad.
Figura 4. Las segundas derivadas de las funciones

Antes de pasar al análisis descriptivo funcional podemos analizar la calidad del ajuste mediante las 7 funciones bases B-splines. Para ello se compara cada curva con los datos de donde provienen. En R se puede hacer con la ayuda de la función plotfit. fd(), que nos devuelve también la varianza de dicho ajuste.


Figura 5. El ajuste de las curvas y la deviación estándar de sus variaciones

En la Figura 5 se observa que el ajuste de los datos mediante las funciones bases utilizadas es bastante bueno, con una varianza residual baja, la más grande 102, 08 para el año 1977.


A continuación realizaremos el análisis descriptivo funcional, donde calcularemos la media funcional y la matriz de varianza-covarianza funcional, y para entender mejor la variabilidad funcional, lo que podemos hacer es dibujar las varianzas mediante un gráfico de superficie.


Observamos que la mayor variabilidad esta en los primeros meses del año y en los últimos, es decir en los meses de invierno. Entendemos que el número de fallecimientos sea mayor en los meses de invierno, pero la variabilidad es un dato bastante interesante dado que tenemos que entender porque en un año la tasa de fallecimiento por culpa de una enfermedad pulmonar es mayor que en otro, en las mismas fechas. Quizá sería interesante analizar las variaciones climáticas en esas fechas.     
Figura 6. Covarianza funcional

Más información acerca de la variabilidad podemos encontrar analizando los componentes principales funcionales (ACPF). Los componentes principales representan variaciones alrededor de la media. Los más y menos indican las consecuencias de añadir o sustraer una pequeña parte de cada componente principal. Es usual que las CPF no rotados  representen la misma secuencia de variación, indiferente de lo que se analiza. La primera componente será un movimiento constante, la segunda tendrá un contraste  entre la primera y la segunda mitad cruzando cero sólo una vez, la tercera tendrá un patrón cuadrático, etc. Se vendrán las secuencias de un polinomio ortogonal. Por lo cual surge la necesidad de rotar los componentes principales, descubriéndose de esta forma más variaciones. Para este objetivo el algoritmo Varimax es bastante utilizado.  


Figura 7.  La varianza explicada con los CPF rotados con Varimax 


Como en el caso del análisis multivariante estudiar los residuos nos puede ayudar a descubrir nuevas informaciones. En este caso vamos a calcular  los residuos funcionales como  diferencia entre los valores funciones ajustadas  y los valores funcionales sin error (para poder obtener las funciones sin error hemos considerado unas funciones bases Bspline con K=n) y vamos a dibujar dichos residuos tras aplicarles un suavizado lineal. El resultado se puede ver en la figura 8, donde remarcamos que lo que más influye en la variabilidad de los primeros 6 meses es el año 1976 y lo que más influye en la variabilidad de los últimos 6 meses es el año 1977.
Figura 8. Residuos suavizados

Conclusiones


Recordamos que en este trabajo nuestro objetivo ha sido la presentación de algunas de las técnicas del ADF con la ayuda de unos datos reales. Nuestros datos corresponden a los fallecimientos medios lunares, registrados durante seis años, por culpa de alguna enfermedad pulmonar, en UK.

Se ha empezado con la presentación gráfica de los datos (véase la Figura 1) donde se observa, en general, que los datos siguen una distribución descendente empezando con  Enero hasta  Agosto-Septiembre y luego otra vez empiezan a ascender de nuevo, con una mayor variabilidad inter-funcional en los primeros tres meses.

Se ha procedido a la transformación de datos discretos en funciones, mediante siete funciones bases Bspline, utilizándose también la reducción de rugosidad. Esta reducción se realiza con la ayuda del cuadrado de la segunda derivada, nivel de suavizado controlado con el parámetro de   suavizado lambda.

Una vez obtenidas las funciones y calculados los coeficientes de ajuste se ha podido calcular y representar la segunda derivada de las funciones (véase Figura 4), descubriéndose un importante punto de inflexión existente en el mes de abril, donde los años 1976 y 1978 cambian de la concavidad la convexidad y los años 1977 y 1974 cambian de convexidad a concavidad. También se ha podido comprobar (Figura 5) que los ajustes mediante las siete funciones bases Bspline han sido bastante buenos, con valores de las desviaciones menores de 100,03.

Representando la gráfica de las varianzas-covarianzas funcionales (Figura 5) se ha podido demonstrar que la variabilidad existe no solamente en los primeros cuatro meses sino también en los últimos dos. Algo de variabilidad existe también en el mes de Agosto, aunque pequeña.

Gracias al análisis de componentes principales funcionales se ha podido ver  que más de 64 % de la variabilidad total está en los primeros tres meses, y 32 % de la variabilidad está en los últimos 4 meses y en primavera.

Después de observar las fechas con mayor variabilidad, nos interesa saber cual son los años, las funciones, las variables que más influyen en la variabilidad. Para ello hemos calculado y representado los residuos funcionales suavizados (Figura 8), donde remarcamos que la variabilidad de los primeros meses está en principal explicada por la función que representa el año 1976 y la variabilidad de los últimos meses está explicada, en su mayor parte, por el año 1977.


Bibliografía

1.       Daniel Peña; Análisis de Datos Multivariantes, 2002.
2.       J.O. Ramsay, B.W. Silverman;  Functional Data Analysis, Editorial Springer, 2005.
3.   J.O. Ramsay, Giles Hooker, Spencer Graver; Functional Data Analysis with R and Matlab, Editorial Springer, 2009.
4.   Lajos Horvath, Piotr Kokoszka; Inference for Functional Data with Applications, Editorial Springer, 2012.


5.     M.J. Valderrama, A.M. Aguilera y F.A Ocaña, Predicción Dinámica mediante Análisis de Datos  Funcionales, Editorial La Muralla, Madrid, 2000.

3 comentarios:

  1. muy bueno el material que se presenta. Agradeceré si a este material se insertase alguna bibliografía complementaria.

    ResponderEliminar
  2. ...o si podrías poner los códigos,por favor y muchas gracias

    ResponderEliminar
  3. The casino has a no deposit bonus: play now with a bonus
    Play Now! The Casino 파주 출장마사지 has a no deposit bonus 제주도 출장안마 available for new players. 의정부 출장마사지 It will automatically fill out a form to 창원 출장안마 enter it. Players can opt-in 파주 출장마사지 to

    ResponderEliminar