Latex

miércoles, 29 de agosto de 2012

Gráficos de autocorrelación

Los gráficos de auto-correlación comenzaron a utilizarse por Box y Jenkins en análisis de series de tiempo.
Son comúnmente utilizados para chequear la aleatoriedad de los datos, que se comprueba analizando la relación entre pares de datos de la muestra, a diferentes rezagos (lags). Si existe una correlación significativa en algún nivel de rezago, se puede decir que los datos no son completamente aleatorios.
También se utilizan estos tipos de gráficos para comenzar a construir modelos auto-rregresivos y de medias móviles.
Hay tres tipos básicos de gráficos de auto-correlación:
  • Gráfico de auto-correlación puro
  • Gráfico de auto-correlación parcial
  • Gráfico de auto-correlación cruzada

Gráfico de auto-correlación puro

Mide el nivel de correlación entre una variable aleatoria $Yt$ y $Y(t+h)$, h períodos después. El rezago h se va variando en el gráfico para analizar un amplio espectro.

El siguiente gráfico de auto-correlación fue ejecutado con el comando acf (o plot.acf, es lo mismo) del lenguaje R. :

a<-acf(presidents, na.action = na.pass,lwd=3,col="red",main="")
title(main="Ranking Trimestral de Aprobación",font.main= 2, line=2)
title(main="Presidentes de Estados Unidos 1945-1974",font.main= 1, line=1)



Esta autocorrelación en la muestra de satisfacción de presidentes de EEUU  muestra que la serie de tiempo no es aleatoria debido a que los valores observados superan los umbrales de aleatoriedad.

Explicamos en más detalle los elementos del gráfico:

En el eje vertical se tiene la medida del coeficiente de auto-correlación.
$$R_h=C_h/C_0$$
donde $C_h$ es la función de auto-covarianzas.
$$C_h=\frac{1}{N}\sum\limits_{t=1}^{N-h}{(Y_t-\bar{Y})(Y_{t+h}-\bar{Y})}$$
donde $C_0$ es la función de varianza.
$$C_0=\frac{1}{N}\sum\limits_{t=1}^{N}{(Y_t-\bar{Y})^2}$$
Al ser la varianza por definición mayor al valor de la covarianza, $R_h$ se encuentar entre -1 y 1.
Hay que prestar atención que a veces la función de auto-covarianzas viene definida de forma insesgada:
$$C_h=\frac{1}{N-h}\sum\limits_{t=1}^{N-h}{(Y_t-\bar{Y})(Y_{t+h}-\bar{Y})}$$
Aunque esta variante cuenta con menos propiedades algebraicas que al dividir por N.

En el eje horizontal se detallan los valores del rezago o lag h (h=0,1,2,3,..).

La función acf maneja este límite con el argumento lag.max.

Las líneas punteadas en azul destacan un intervalo de confianza para $R_h$. En el gráfico se tomaron al 95% (valor predeterminado de la función R acf, que por lo que estuve averiguando no se puede modificar en el gráfico)

Hay dos formas distintas de generar las bandas de confianza:
  1. Si el gráfico de auto-correlación se está utilizando para detectar no-aleatoriedad (del tipo dependencia del tiempo), se recomienda la fórmula
    $$\pm\frac{z_{1-\alpha/2}}{\sqrt{N}}$$
    donde N es el tamaño de la muestra y z el percentil elegido de una distribución normal para un nivel de confianza $\alpha$.
  2. Los gráficos de auto-correlación, como ya hemos mencionado, sirven para estimar modelos de ajuste ARIMA.  En dicho caso, se asume un promedio móvil en la serie y los intervalos se calculan con la siguiente formula:
    $$\pm{z_{1-\alpha/2}}\sqrt{\frac{1}{N}({1+2\sum\limits_{i=1}^{h}R_i^2)}}$$
    donde h es el lag, N es el tamaño de la muestra y z el percentil elegido de una distribución normal para un nivel de confianza $\alpha$. En este caso, el intervalo de confianza crece cuando el lag h crece.
    Se trata de la curva verde en el gráfico. Puede lograrse en R escribiendo los siguientes comandos:
    z <- qnorm(0.975)
    y <- c(z*sqrt(1/a$n.used),z*sqrt(1/a$n.used*(1+2*cumsum(a$acf^2))))
    lines(a$lag,y[-length(y)],col="green")

El gráfico de auto-correlación puede brindar respuesta a las siguientes incógnitas:
  1. ¿son aleatorios los datos en el sentido del tiempo?
  2. ¿son los datos un ruido blanco?
  3. ¿son los datos una serie sinusoidal?
  4. ¿se observan auto-rregresiones significativas?
  5. ¿qué modelo parece seguir la serie de tiempo observada?
  6. ¿es el modelo Y = constante + error válido o insuficiente?
  7. ¿es válida la fórmula $s_\bar{Y}=s/\sqrt{N}$?

Gráfico de correlaciones parciales

Cuando se mide la auto-correlación de una variable aleatoria Y entre dos momentos t y t+h, pasa por momentos intermedios que condicionan el resultado final y estamos midiendo la resultante de varios lags $Y(t+1)$,$Y(t+2)$,....,$Y(t+h)$.
La auto-correlación parcial estima la relación entre $Y(t)$ y $Y(t+h)$, sin los efectos añadidos por los lags de 1h-1.
Los gráficos de auto-correlación parcial son útiles para identificar comportamientos auto-regresivos en los procesos. La auto-correlación parcial de un proceso AR(p) es cero a partir de un rezago igual o superior a p+1. Si el análisis de la muestra indica que un modelo auto-regresivo puede ser utilizado, entonces el se examina el gráfico de auto-correlación parcial para conocer el orden.
El gráfico se lee de la misma manera que el gráfico de auto-correlación: se busca el punto a partir del cual las auto-correlaciones parciales comienzan a no ser significativas respecto a la hipótesis nula (auto-correlación cero). Un intervalo de confianza cercano al 95% es tomar bandas de $2\sqrt{N}$.

Realicemos el gráfico de auto-correlación parcial del ejemplo anterior. El código es el mismo sólo que el comando de R cambia de acf a pacf.

pacf(presidents, na.action = na.pass,lwd=3,col="red",main="")
title(main="Ranking Trimestral de Aprobación",font.main= 2, line=2)
title(main="Presidentes de Estados Unidos 1945-1974",font.main= 1, line=1)
Como puede verse, el gráfico de auto-correlación puede resultar engañoso. La gran cantidad de rezagos afectados lo es debido únicamente al primer lag y la alta intensidad que tiene hizo que queden afectados varios niveles. Se trata entonces de un modelo de proceso auto-regresivo de orden 1 AR(1).

Dejo el siguiente link a una aplicación online muy interesante donde se muestra justamente le efecto contagio del primer coeficiente de un proceso AR(1) en un gráfico de auto-correlación.

Resumimos las preguntas que se pueden formular con este gráfico:
  1. ¿es un modelo auto-regresivo AR conveniente para el modelo?
  2. ¿de qué orden p es el modelo AR?

Gráfico de auto-correlación cruzada

Mide el nivel de correlación entre una variable aleatoria $Yt$ y otra variable $X(t+h)$, h períodos después. Desde el punto de vista gráfico, no hay diferencias respecto al gráfico de auto-correlación puro.


G. E. P., and Jenkins, G. (1976), Time Series Analysis: Forecasting and Control, Holden-Day

domingo, 19 de agosto de 2012

Cuando los supuestos subyacentes no se cumplen

En nuestra nota anterior hemos descripto los cuatro supuestos básicos que subyacen en una mayoría de modelos estadísticos. Ahora investigaremos qué sucede cuando alguno(s) de ello(s) no se cumple(n).

Los cuatro supuestos básicos eran:
  1. aleatoriedad
  2. posición fija
  3. dispersión fija
  4. distribución fija 

Consecuencias de no aleatoriedad

Si el supuesto aleatoriedad no se cumple, entonces:
  1. Todos los tests estadísticos quedan invalidados.
  2. Los rangos de variación pierden significado.
  3. El cálculo de muestra mínima o suficiente carece de sentido. En un escenario totalmente no aleatorio, tomar muestras carece de sentido.
  4. El modelo respuesta = constante + error pierde sentido.
  5. La estimación de sus parámetros a través de muestras se torna sospechoso.
Un caso específico de no aleatoriedad es la existencia de autocorrelación. La autocorrelación es la relación que existe entre la variable aleatoria $Y_t$ y la misma variable k períodos antes $Y_{t-k}$. La autocorrelación sería una no-aleatoriedad en base al tiempo de observación. La autocorrelación se detecta con el gráfico de lags que hemos visto o con un correlograma.
Si los datos están afectados por autocorrelación, entonces:
  1. Los datos adyacentes están relacionados.
  2. No se tienen n muestras independientes.
  3. Los outliers son más difíciles de detectar.

Consecuencias de no existir un parámetro de posición fijo

La estimación usual de posición es la media muestral:
$${\bar{Y} = \frac{1}{N}}{\sum\limits_{j=1}^{N} Y_i}$$
Si el supuesto de posición fija no se cumple,
  1. La posición estimada puede tener tendencia.
  2. La fórmula usual de incertidumbre de la media:  $${s(\bar{Y}) = \frac{1}{\sqrt{N(N-1)}}}\sqrt{\sum\limits_{j=1}^{N} {(Y_i - \bar{Y})}^2}$$ puede ser inválida y su valor numérico sería menor.
  3. La estimación de otra medida de posición simple sería pobre y sesgada. 

Consecuencias de no existir un parámetro de dispersión fijo

La estimación usual de dispersión es el desvío estándar:
$${s(Y) = \frac{1}{\sqrt{N-1}}}\sqrt{\sum\limits_{j=1}^{N} {(Y_i - \bar{Y})}^2}$$
Si el supuesto de dispersión fija no se cumple,
  1. La varianza puede tener tendencia.
  2. La estimación simple de la varianza pierde significado y puede estar sesgada.

Consecuencias de no conocer la distribución subyacente

Rutinariamente se utiliza la media (promedio) para estimar el "medio" de una distribución de probabilidad. Así también se utiliza la fórmula de desvío estándar para estimarle un rango de variación:
$${s(\bar{Y}) = \frac{1}{\sqrt{N(N-1)}}}\sqrt{\sum\limits_{j=1}^{N} {(Y_i - \bar{Y})}^2}$$
No es muy conocido que dicha fórmula tiene supuestos de una distribución normal subyacente (aparte de un buen tamaño de muestra), y si no se cumple, estos márgenes quedan invalidados.
Para algunos tipos de distribuciones, sobre todo las distribuciones con una distribución asimétrica importante, la media como medida de posición resumen es una elección pobre. Cada distribución tiene una medida de posición óptima para elegir; se recomienda elegir aquella que menos variabilidad y ruido tenga. Esta elección óptima podría ser, por ejemplo, la mediana, el rango medio, la moda, etc... Esto implica tener que estimar la distribución subyacente, y una vez conocida la distribución de probabilidad, elegir el estimador de posición.
Trataremos estas técnicas de estimación en una nota futura. lo importante es estar conscientes que si el histograma y gráfico p-p Plot no muestran la distribución esperada (habiendo ya afirmado la componente determinística del modelo), es mejor dedicar tiempo a estimar la distribución subyacente.

Otras consecuencias de subestimar la distribución subyacente son:

 En la distribución

  1. La  distribución subyacente puede ir cambiando.
  2. Si sucede lo del punto 1, una estimación por única vez de la distribución subyacente es insuficiente y quedará obsoleta.
  3. La distribución subyacente puede ser marcadamente no normal
  4. La verdadera distribución de probabilidad para el error puede mantenerse desconocida y deberemos conformarnos con una aproximación. 

 En el modelo

  1. El modelo puede ir cambiando.
  2. Si sucede lo del punto 1, una estimación por única vez de la distribución subyacente es insuficiente y quedará obsoleta.
  3. El modelo respuesta = constante + error puede quedar inválido.
  4. Si no se tiene identificada la distribución correcta, una mejora necesaria al modelo puede quedar oculta.

 En el proceso

  1. El proceso puede estar fuera de control y no detectarse.
  2. El proceso puede ser impredecible y no ser consciente de ello. 
  3. El proceso puede ser no modelable.

sábado, 18 de agosto de 2012

Los 4 supuestos subyacentes básicos

Existe una base de supuestos estadísticos generales sobre los que mas o menos se posan gran parte de los fenómenos aleatorios que queremos analizar.
En esta nota trataremos de conceptualizarlos y propondremos un set de herramientas para una primer mirada exploratoria.

Supuestos subyacentes

Existen cuatro supuestos muy típicos en los análisis estadísticos, es decir, que los los datos "se comportan como...". Y son los siguientes:
  1. Aleatoriedad, o ruido blanco para series de tiempo
  2. Proveniencia de una distribución dada
  3. La distribución tiene una medida de posición fija dada
  4. La distribución tiene una medida de dispersión fija dada
La posición fija mencionada en el punto 3 puede diferir según se trate del tipo de proceso analizado, pero para problemas univariados, utilizar este supuesto implica convertir un problema típico

respuesta = componente determinístico + componente aleatorio

a lo siguiente

respuesta = constante + error

la constante sería nuestra medida de posición fija a determinar. Así pues, podemos imaginar el proceso a la mano de estar operando bajo condiciones constantes que producen una sola columna de datos con las propiedades que:
  • los datos no están correlacionados entre sí;
  • la componente aleatoria tiene una distribución fija;
  • el componente deterministico consiste en sólo una constante, y
  • el componente aleatorio tiene una variación fija.
El poder universal y la importancia de este modelo univariado es que puede ser fácilmente extendido a problemas más generales donde el componente determinístico no es una constante, sino en efecto una función de varias variables.

El punto clave es que, independientemente de cuántos factores haya, e independientemente de lo complicado que sea la función, y si el analista tiene éxito en la elección del modelo, entonces las diferencias (residuos) entre los datos de respuesta y los valores pronosticados por el modelo deben comportarse como un proceso univariado, el cual tendrá:
  • Aleatoriedad, o ruido blanco para series de tiempo
  • una distribución dada
  • una medida de posición fija dada (cero en este caso)
  • una medida de dispersión fija dada
Así, los residuos se comportan de acuerdo al modelo ideal que se asumió. Entonces las pruebas de los supuestos subyacentes sobre los residuos se convierten en una herramienta para la validación y la calidad de ajuste del modelo elegido.
Por otro lado, si los residuos del modelo escogido violan uno o más de los supuestos univariantes anteriores, entonces el modelo escogido es insuficiente y existe una oportunidad de hallar un modelo mejor.


Importancia

La predictibilidad es por lejos el objetivo más importante de un análisis estadístico. Pero para que se cumpla dicho objetivo debemos tener el proceso "bajo control estadístico", condición que se cumple cuando las cuatro condiciones mencionadas se comprueban y tenemos suficientes seguridades de que se seguirán cumpliendo en el futuro.

Técnicas gráficas para comprobar los cuatro supuestos básicos

Existe un innumerable conjunto de herramientas numéricas y gráficas para testear los cuatro supuestos. Nosotros nos centraremos en un conjunto reducido de técnicas gráficas, que aprenderemos a desarrollar con lenguaje R. Considero que las mismas cumplirán de manera simple y eficiente el análisis EDA de cualquier serie univariada. Utilizaremos el siguiente set de gráficos que pasaremos a llamar "4-plot":
  • gráfico de secuencias
  • gráfico de rezagos o diagrama de fase
  • histograma
  • gráfico de probabilidad normal o P-P Plot
Ya he tratado el histograma y otras no mencionadas (diagrama de hojas, densigrama, cajas) en una de mis primeras notas de EDA. El conjunto elegido es simple de entender y se presta muy bien a comprobar los 4 supuestos mencionados.

Construcción de los gráficos con R

A continuación detallo el código necesario para construir los gráficos. Dejé el código comentado y muy simple para que pueda ser reutilizado facilmente:

## 4-Plot
## Generando los gráficos de 4-plot para los datos.
## La variable con datos es y. Es un array univariado. No funciona con data.frame  
## El data.frame se puede convertor a array con el comando y <- as.array(y)  
 
##variable de conteo
n <- length(y)
t <- 1:n
## parámetros de gráfico
## mfrow: nro de gráficos c(nr,nc) 2x2=4, al ser mfrow y no mfcol, se enumeran por fila
## oma: márgenes externos entre gráfico y texto c(bottom, left, top, right)
## mar: márgenes internos entre área de trazado y gráfico c(bottom, left, top, right)
par(mfrow = c(2, 2),                 #2 filas por 2 columnas#
      oma = c(0, 0, 2, 0),           #márgenes externos# 
      mar = c(5.1, 4.1, 2.1, 2.1))   #márgenes internos#
 
##gráfico de secuencias
plot(t,y,ylab="Y",xlab="orden",type="l")
abline(h=mean(y), add=TRUE, col="blue")
abline(h=-2*sd(y), add=TRUE, col="blue", lty="dashed")
abline(h=2*sd(y), add=TRUE, col="blue", lty="dashed")
##gráfico de fases o lags
plot(y[-1],y[-n],xlab="Y[i-1]",ylab="Y[i]")
##gráfico de histograma
hist(y,main="",xlab="Y",ylab="f(Y)",freq=FALSE)
curve(dnorm(x,mean=mean(y),sd=sd(y)), add=TRUE, col="blue")
##gráfico QQPlot normal
qqnorm(y,main="",xlab="teórico",ylab="muestra")
qqline(y,col="blue")
mtext("4-Plot", line = 0.5, outer = TRUE) ##gráfico QQPlot normal
 
Veamos cómo funciona a través de ejemplos:
 

Ejemplo 1: números aleatorios distribuidos normalmente

Sería este el caso ideal donde se cumplen los 4 supuestos básicos. Nos servirá para presentar los gráfico en un estado "ideal".
Generamos primero una sucesión de 200 números distribuidos normalmente
 
y <- rnorm(200,0,1)
Luego ejecutamos el código R provisto en la sección anterior. El resultado debe ser similar a este:
Veamos  qué podemos aprender. Primero vayamos investigando cada uno de los 4 supuestos básicos:


  • una medida de posición fija: si la hipótesis de cumple, el gráfico de secuencias (esquina superior izquierda) debe ser uniforme y sin tendencia. Puede apreciarse ello en el gráfico.
  • una medida de dispersión fija: si la hipótesis de cumple, el gráfico de secuencias debe tener la misma amplitud sobre todo el eje x.
  • aleatoriedad o ruido blanco: en caso de no haber un comportamiento correlacionado o determinista entre los datos. El gráfico de lags no debe mostrara patrones identificables, tal como se muestra en segundo gráfico arriba a la derecha.
  • una distribución dada: en dicho caso, el histograma (esq inf izq) debe ajustar a la curva supuesta y el P-P Plot (esq inf derecha) mostrarse en línea recta. En este caso (y en el código R) la distribución subyacente es la Normal y se aprecia en los gráficos un buen ajuste a los datos.

Ejemplo 2: reflexiones de un láser

El siguiente ejemplo toma una muestra del año 1969 de 200 disparos de láser, computando su desvío en cada uno de ellos
  [1] -213 -564  -35  -15  141  115 -420 -360  203 -338 -431  194 -220 -513  154
 [16] -125 -559   92  -21 -579  -52   99 -543 -175  162 -457 -346  204 -300 -474
 [31]  164 -107 -572   -8   83 -541 -224  180 -420 -374  201 -236 -531   83   27
 [46] -564 -112  131 -507 -254  199 -311 -495  143  -46 -579  -90  136 -472 -338
 [61]  202 -287 -477  169 -124 -568   17   48 -568 -135  162 -430 -422  172  -74
 [76] -577  -13   92 -534 -243  194 -355 -465  156  -81 -578  -64  139 -449 -384
 [91]  193 -198 -538  110  -44 -577   -6   66 -552 -164  161 -460 -344  205 -281
[106] -504  134  -28 -576 -118  156 -437 -381  200 -220 -540   83   11 -568 -160
[121]  172 -414 -408  188 -125 -572  -32  139 -492 -321  205 -262 -504  142  -83
[136] -574    0   48 -571 -106  137 -501 -266  190 -391 -406  194 -186 -553   83
[151]  -13 -577  -49  103 -515 -280  201  300 -506  131  -45 -578  -80  138 -462
[166] -361  201 -211 -554   32   74 -533 -235  187 -372 -442  182 -147 -566   25
[181]   68 -535 -244  194 -351 -463  174 -125 -570   15   72 -550 -190  172 -424
[196] -385  198 -218 -536   96
  En este caso, los gráficos resultaron ser:

Verifiquemos las hipótesis:


  • una medida de posición fija: el gráfico de secuencias no presenta tendencias
  • una medida de dispersión fija: el gráfico de secuencias presenta aproximadamente la misma variación a través de todo su recorrido.
  • aleatoriedad o ruido blanco: El gráfico de lags muestra un patrón muy específico, confirmando que la serie no es aleatoria.
  • una distribución dada: siendo que se comprobó que no existe aleatoriedad, los gráficos de histograma y P-P plot no tienen un significado útil.
 Entonces concluimos que el modelo respuesta = constante + error no es aplicable para este problema y debemos buscar un mejor modelo.

Daré a continuación un modelo al cual ajustan mejor los datos, sin explicar en detalle cómo se llegó a esta nueva propuesta. Sólo diré que El gráfico de lags sugiere una función sinuidal u oscilante

siendo C una constante de nivel, alfa la amplitud, omega la frecuencia y tita la fase de la función seno.
Analizaremos los errores de medición y - y modelado para ver si el muevo modelo pudo capturar la parte determinista con éxito

t <- 1:length(y)
 
C <- -178.786
AMP <- -361.766 
FREC <- 0.302596 
PHASE <- 1.46536 
 
e <- C + AMP*sin(2*pi*FREC*t+PHASE) - y

En la última línea hemos restado la parte determinista a los datos reales. Los gráficos de residuales e son:


Verifiquemos nuevamente las hipótesis sobre los residuos o parte aleatoria:

  • una medida de posición fija: el gráfico de secuencias no presenta tendencias
  • una medida de dispersión fija: el gráfico de secuencias presenta saltos durante su recorrido, indicando que aún es mejorable el modelo en este aspecto.
  • aleatoriedad o ruido blanco: El gráfico de lags no muestra patrones.
  • una distribución dada: los gráficos de histograma y p-p Plot muestran una distribución aproximadamente normal centrada en cero (insesgado). Quizás haya una leve asimetría hacia la derecha por la caída izquierda del p-p Plot.
El nuevo modelo cumple bastante bien con los cuatro supuestos subyacentes. Aunque aún puede mejorarse. por ejemplo,
  • los gráficos muestran la existencia de 4 o 5 valores extraños, 
  • hay una asimetría muy leve que se puede tratar,
  • también hay oscilaciones en la amplitud vistas en el diagrama de secuencias que se podrían capturar volviendo a cambiar la constante C por un modelo más complejo.
Así y todo, los resultados son lo suficientemente satisfactorios para realizar inferencias. Así, adoptamos el nuevo modelo.

Conclusiones

La herramienta 4-plot desarrollada es muy efectiva para validar los cuatro supuestos subyacentes. Incluso nos aporta más información para resolver los hipótesis no cumplidas y pensar en un nuevo modelo.

 Este es el listado de preguntas que se pueden responder con este set de gráficos:
  1. Está el proceso en control; es estable y predecible?
  2. El proceso muestra tendencias en su posición?
  3. El proceso muestra tendencias en su variación?
  4. Los datos son aleatorios?
  5. Las observaciones están relacionadas con las observaciones adyacentes?
  6. Si los datos son una serie de tiempo, se trata de un ruido blanco?
  7. Si los datos son una serie de tiempo y no se trata de un ruido blanco, es un modelo autoregresivo o sinusoidal?
  8. Los datos o residuos siguen una distribución normal?
  9. Si no es normal, qué forma tiene la distribución?
  10. Es el modelo  Y = C + e  válido y suficiente?
  11. Si el modelo básico es insuficiente, hay posibilidad de mejorarlo?
  12. Es la varianza muestra un buen estimador de variación?
  13. Es la media muestral un buen estimador de posición?
  14. Si no lo fuera, cuál sería mejor?
  15. Existen valores extraños (outliers)?