close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 15 years ago

Closed 14 years ago

#788 closed doubt (fixed)

Residuals in ARIMA Models

Reported by: pgea@… Owned by: Víctor de Buen Remiro
Priority: high Milestone:
Component: Math Version:
Severity: normal Keywords:
Cc:

Description

En el desarrollo de la herramienta MMS para gestionar los modelos nos encontramos con unas dudas relativas a los residuos de los modelos ARIMA.

Tal y como estamos desarrollando el tratamiento de las estimaciones, toda la información de los resultados las recogemos como parámetros de modo que la evaluación de alguna serie resultante como son los residuos, se obtenga únicamente a partir de la definición del modelo y de los parámetros resultantes.

Para reconstruir los residuos, necesitamos un número de parámetros igual al grado de la parte de medias móviles (MA), así que introducimos ese número de parámetros en el modelo y tras capturarlos desde los resultados podemos obtener los residuos.

Pero nos surgen algunas dudas y dificultades:
¿Cuantos residuos debería devolver un modelo ARIMA?
A mi entender el primero de los residuos debería estar en:

First(output)+Degree(ARI)-Degree(MA)

sin embargo para Estimate está en:

Min( First(output), First(output)+Degree(ARI)-Degree(MA) )

y para BSR en:

First(output)+Degree(Dif)

¿Cual debería ser el criterio correcto?
¿A qué se deben estas diferencias?

Entiendo que conocidos el "noise", los parámetros del ARIMA y un número de residuos (de acuerdo a la parte MA) deberíamos poder encontrar todos los residuos.
Sin embargo, para BSR tendría que hacer como un "DifEq" completando hacia atrás, pues devuelve menos residuos de lo esperado.
¿Tiene sentido querer hace esto?

Finalmente otra cuestión relativa a estos parámetros de los residuos si es que se los puede considerar como tal (pues BSR no los considera como parámetros) ¿sabemos algo de la distribución que siguen?

Attachments (1)

EstConInt2.pdf (153.1 KB) - added by Víctor de Buen Remiro 15 years ago.
ESTIMACIÓN MÁXIMO-VEROSÍMIL DE MODELOS DE FUNCIÓN DE TRANSFERENCIA CON INTERRUPCIONES (José Almagro)

Download all attachments as: .zip

Change History (5)

comment:1 Changed 15 years ago by Víctor de Buen Remiro

Status: newaccepted

Hablar de los residuos de un modelo simulado bayesianamente como una serie de datos carece totalmente de sentido, pues lo que realmente hay es una distribución de probabilidad a posteriori para cada uno de los residuos. Lo mismo ocurre con los valores iniciales tanto los q=Degree(MA) de los residuos como los p=Degree(AR) del ruido ARMA, que son igualmente desconocidos.

Lo que devuelve BSR, a efectos únicamente de diagnosis visual por parte del analista, es una realización puntual de los residuos correspondientes a la media de todos los parámetros del modelo. Los residuos verdaderamente interesantes estan en el intervalo de existencia de la serie de ruido diferenciado y son los que devuelve BSR.

Estimate se entretiene en devolver residuos previos porque alguna vez alguien lo solicitó, a mi modo de ver por un criterio meramente decorativo ya que no aportan información de contraste real con los datos sino estimaciones secundarias, que en el caso del Estimate son muy fáciles de construir con el método aproximado de Levinson usado en la evaluación del modelo.

En el caso de BSR se utiliza otro método que es obra original de Pepe y que se limita a los q residuos iniciales y los p valores iniciales del ruido aunque prescindo de ellos por los motivos expuestos. Si por conveniencia se estima necesario que BSR haga lo mismo no veo inconveniente. Ya veré cómo los calculo. Desde luego lo que propones de hacer un DifEq para atrás no sirve, porque la ecuación diferencial se tiene que cumplir en el sentido del tiempo y no al revés. Además no hay que hacerlo sólo para los residuos sino también para el ruido y que sean coherentes con el modelo, para que todas las series comiencen en el mismo instante que la serie output.

La diferencia fundamental es que BSR no evalúa los residuos para filtrar el efecto ARIMA y por lo tanto no necesita la ecuación en diferencias. Lo que tiene que hacer BSR es simular multinormales para lo cual aplica la descomposición inversa de Cholesky Li de las covarianzas ARMA mediante un método sparse implícito tanto a la matriz de input X como a la de output Y, previamente diferenciadas, para luego descomponer

(X'*Li)'*(Li*X)

y usarla como transformación lineal de un vector multinormal estandarizado que se suma a la media obtenida como la solución de mínimos cuadrados del sistema lineal

Min e'e
Li*Y/s = Li*X*b/s + e 

BSR simula los valores iniciales de las ecuaciones en diferencias ARMA con el único objetico de poder simular los parámetros ARMA, y lo hace como un bloque de Gibs oculto que no se almacena pues se trata de una cadena de Markov de la que sólo nos interesa la última realización, ya que es unainformación que no tienen ningún interés una vez acabada la simulación y podría aumentar la necesidad de recusrsos. A veces se tienen modelos de grados tan altos como 365 o más, por lo que podrías arrastar miles de parámetros por nodo totalmente ociosos.

En muy raras ocasiones, cuando tenemos series realmente muy cortas, podría ser necesario contar con esos valores iniciales para hacer alguna inferencia sobre ellos para lo cual habría que habilitar su guardado mediante la opción de configuración

  Real bsr.arimaStoreInitialValues = True;

que por defecto está definida como False.

Sólo en estas condiciones se puede acceder a la cadena de Markov de los valores iniciales y a los nombres de los parámetrospara hacer un informe al estilodel que devuelve BSR por defecto para el resto de parámetros. Sería algo del estilo de este código:

Matrix U0.mcmc = cycler::_.sampler::_.arm.blk::_.U0.mcmc;
Set U0.names = cycler::_.sampler::_.arm.blk::_.U0.names;
Set U.report = BysMcmc::Inference::report(
  "InitialValues", 
  U0.names,
  bsr.config::GetReportConfig(0),
  U0.mcmc);

comment:2 Changed 15 years ago by pgea@…

Me parece que si hablamos de modelos simulados tiene tan poco sentido hablar de residuos (como si fueran series) como de hablar de parámetros (como si fueran reales) sino, como dices, de distribuciones a posteriori de cada uno de los residuos o de los parámetros.
Pero entiendo que podemos abusar del lenguaje y referirnos a ellos como tal aunque no se trate de un real o una serie sino una distribución y una serie de distribuciones.

La cuestión la planteé así porque hemos de tratar de la manera más homogénea posible tanto los modelos simulados con BSR como los estimados con Estimate.

Sobre los residuos y el ruido ARMA creo que hay algo que aún no soy capaz de comprender, pues no encuentro donde están esos 'p' valores iniciales del ruido.

Tal y como yo lo veo en un modelo sencillo como:

ARI:Output = MA:Residuals

donde:

'n' es el número de datos de Output
'r' el grado de las diferencias
'p' el grado de la parte AR
'q' el grado de la parte MA

entonces:

  • el número de datos de ARI:Output es n-p-r y son conocidos si es conocido el output y los parámetros de la parte AR
  • el número de datos de MA:Residuals también es n-p-r
  • y así el número de datos de Residuals es n-p-r+q, es decir 'q' datos más que han de ser determinados en la estimación/simulación.

No sé donde están los 'p' valores iniciales desconocidos.

Si el modelo lo tratamos diferenciado la cosa es como sigue:

AR:(Dif:Output) = MA:Residuals

donde:

'm' es el número de datos de Dif:Output

así:

  • el número de datos de AR:(Dif:Output) y de MA:Residuals es m-p
  • y el número de datos de Residuals sería m-p+q

Estoy de acuerdo que buscar más residuos es una cuestión decorativa y no entiendo muy bien porqué se solicitó en su momento, pero me parece más un ejercicio de previsión o postvisión que otra cosa.

Lo que no entiendo es cual es el interés de conocer los residuos desde el mismo punto que comienza el output tal y como dices, pues no parece procedente.

Entiendo que el error del modelo, que a mi entender es lo que se llama

noise = (MA/ARI):Residuals

tuviera los mismos datos que el output.
Pero con la estructura ARIMA se está diciendo que ese error tiene estructura y que procede de unos residuos que no la tienen.
¿no es eso?

Sobre la forma en que BSR hace para simular, he de reconocer que, así de un vistazo, no soy capaz de entenderlo. No sé si es por eso que lo que escribo puede que parezcan tonterias.

Sobre los miles de parámetros ociosos, llevas razón, no parece que sea la manera más práctica de tratar el asunto, sobre todo cuando pueden ser tantos.
Sin embargo, tal y como se está planteando, los residuos son el pilar para obtener previsiones, así que no sé muy bien cual es la manera correcta de atacar el problema.
Entiendo que la manera BSR de afrontarlo sería simularlos como omitidos en el futuro de las series, aunque no sé si es eso lo que se está pensando hacer en MMS y desde luego no es lo que se está haciendo ahora en algunos proyectos que usan BSR.
Tampoco sé si hay alguna alternativa.

Sobre el modo de obtener los valores iniciales de los residuos y del ruido no consigo hacerlo, la clase BysMcmc::@Config no tiene un atributo bsr.arimaStoreInitialValues. Creo que debe ser una versión más moderna de la que hay en actualmente para su descarga.
Por eso, aún no he podido mirarlo, ya que lamentablemente desde hace un tiempo no consigo compilar TOLBase yo mismo.

Changed 15 years ago by Víctor de Buen Remiro

Attachment: EstConInt2.pdf added

ESTIMACIÓN MÁXIMO-VEROSÍMIL DE MODELOS DE FUNCIÓN DE TRANSFERENCIA CON INTERRUPCIONES (José Almagro)

comment:3 Changed 15 years ago by Víctor de Buen Remiro

El ruido sin diferenciar tiene una distribución multinormal degenerada por definición. Por eso lo razonable es que los residuos tengan datos en el intervalo de existencia del ruido diferenciado, que es lo que hace BSR, pues ese es el único ámbito de contraste con los datos conocidos para el que se tiene una matriz de covarianzas invertible y por lo tanto una distribución no degenerada.

Es posible como dices sacrificar los p primeros valores del ruido, pero entonces se pierde información de contraste y no se gana nada porque el coste de calcular los valores iniciales es prácticamente el mismo si hay que calcular el ruido como si no. Cuando las series son muy largas muchos programas de estimación máximo-verosímil ARIMA simplifican haciendo eso y tomando residuos cero pero eso es una cutrería, especialmente cuando no hay tantos datos, y genera residuos falsos al principio de la serie que pueden tardar en amortiguarse.

Si Estimate devuelve más residuos es más facil hacerle un SubSer que hacer crecer los de BSR. Tampoco sé porqué tienen que devolver los residuos en el mismo intervalo. Eso es una cuestión de la mecánica interna del estimador en cuestión.

Dar un valor estimado máximo-verosímil, o la media o lo que sea, de los valores futuros no es a mi modo de ver hacer previsión, al menos no en el sentido bayesiano. Montar todo el sistema de simulación para luego, en lugar de hacer inferencia bayesiana, dar sólo previsiones puntuales, es sencillamente una majadería. La única razón por la que no se está usando ya es por desconocimiento de la herramienta BSR y porque el BSRLayer no lo permite y es lo único que conoce el personal. Lo que hay que hacer es que MMS dé interfaz a la previsión bayesiana de BSR mediante simulación de omitidos para que los usuarios lo empleen.

Si lo que se pretende es unificar las salidas de MMS entonces habría que limitar a Estimate no a BSR que esla herramienta potente. Esto es como si te compras un ferrari y le pones un limitador a 80 Kmh. En todo caso me parecería mucho más razonable "bayesianizar" lo que devuelve Estimate en lugar de "puntualizar" el BSR. Es perfectamente posible generar una cadena MCMC a partir de la distribución asintótica de los parámetros de un modelo máximo-verosímil, pues siguen una multinormal de la cual se conoce todo en la salida del Estimate. A partir de esa cadena se pueden simular también valores futuros con lo que la salida sería la misma para Estimate y BSR.

Aún así, para evaluar previsiones puntuales no es necesario contar con los valores iniciales de la estimación, te basta con los q últimos residuos y los p+d últimos valores de ruido sin diferenciar para evaluar puntualmente la ecuación en diferencias ARIMA. Por eso no entiendo muy bien a qué viene todo esto, supongo que se me escapa algo.

Con respecto a lo que hace BSR no sé qué más puedo decir. Está todo en el manual creo yo. También puedes ver en el documento que he adjuntado el documento EstConInt2.pdf original de Pepe donde cuenta cómo hacer la estimación máximo verosímil. Lo que hace BSR es simular los valores iniciales condicionados por los parámetros ARMA siguiendo la densidad multinormal de la fórmula 2.4.2 Pág 6. Los parámetros ARMA se simulan siguiendo un método escalar (ARMS o SLICE) que evalúa la densidad de los residuos condicionados por los valores inciales y la sigma que por hipótesis del modelo es una multinormal incorrelada.

comment:4 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.