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 14 years ago

Closed 14 years ago

Last modified 13 years ago

#1230 closed doubt (fixed)

Error en AIA

Reported by: lmperez@… Owned by: Víctor de Buen Remiro
Priority: high Milestone: Mantainance
Component: Various Version: 2.0.1
Severity: major Keywords: AIA
Cc: lmperez@…

Description

Hola tol, os paso adjunto un oza con los argumentos de entrada de la función AIA y un set con su salida.
No entiendo porqué pero me devuelve varias intervenciones para los mismos días con la misma estructura una y otra vez y con unos efectos bajísimos del orden de 10-19.
¿Podéis ayudarme?

Gracias de antemano

Attachments (2)

ErrorEnAIA.oza (8.5 KB) - added by lmperez@… 14 years ago.
ErrorEnAIA2.oza (10.4 KB) - added by lmperez@… 14 years ago.

Download all attachments as: .zip

Change History (17)

Changed 14 years ago by lmperez@…

Attachment: ErrorEnAIA.oza added

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

Perdón, no lo había visto. Voy mirarlo.

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

Resolution: fixed
Status: newclosed
Type: defectdoubt

Lo que pasa es que no le das el cuarto argumento optMaxOrder

Set AIA(
  Serie ser, 
  Ratio rat [, 
  Set outliers, 
  Real optMaxOrder=2, 
  Real optMaxCrossNum=100, 
  Real optMinNonZeroParamProb=0.99, 
  Real optMaxEigenValueRelativeRange=100])

Entonces, por razones de compatibilidad hacia atrás, se utiliza el sistema viejo de análisis de intervención que da problemas cuando los outliers no están aislados, como es el caso. Esto está explicado en la descripción de la función pero es normal no darse cuenta.

Poniendo simplemente optMaxOrder=2 ya se utiliza el nuevo

Set example = { Include("ErrorEnAIA.oza") };
Set aia = { AIA(example::residuals,example::piw, example::outliers, optMaxOrder=2) }; 

Los valores por defecto suelen ser suficientes pero en casos complicados hay que saber modificarlos.
La función AIA es bastante compleja porque lo que hace es complejo, pero está bastante documentada, tanto la API como su desarrollo

También puede que os sean útiles comentarios sobre el AIA en otros tickets:

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

(In [3584]) Refs #1230

Changed 14 years ago by lmperez@…

Attachment: ErrorEnAIA2.oza added

comment:4 Changed 14 years ago by lmperez@…

Cc: lmperez@… added
Resolution: fixed
Status: closedreopened

Hola, he probado a pasarle más argumentos a la función AIA y ahora sucede que sólo a veces deuelve intervenciones gigantescas que se anulan mutuamente:

Set aia1 = AIA(serie,piw,outliers);
Set aia2 = AIA(serie,piw,outliers,2,100);
Set aia3 = AIA(serie,piw,outliers,2,100,0.99,100);

Set errorAIA = [[
  Serie serie,
  Ratio piw,
  Set outliers,
  Set aia1,
  Set aia2,
  Set aia3
]];

En el archivo oza adjunto (ErrorEnAIA2.oza) podéis ver el código de arriba ya compilado

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

Pues yo lo he probado con diferentes máquinas y versiones de TOL y siempre obtengo los mismos resultados, lo cual es lógico pues los argumentos los añades con los valores por defecto lo cual no cambia nada. Sólo la aparición del cuarto argumento marca un cambio cualitativo, al usar el método bayesiano si se especifica.

Tendría que entrar en tú máquina y verlo porque no soy capaz de reproducir lo que dices.

Hay una cosa que no entiendo: la serie de residuos vale 0 en todos los puntos salvo unos pocos, lo cual es absurdo. El AIA busca outliers en una serie de residuos normales independientes resultado de un modelo ARIMA. En la descripción de la función lo dice en las primeras líneas. Desde luego esto no es el caso así que tampoco tendría porqué funcionar aunque como ya te digo sí que lo hace bien de todas las formas que se me ha ocurrido probarlo.

comment:6 Changed 14 years ago by lmperez@…

Victor, mira el otro oza, el que se llma ErrorEnAIA2.oza

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

Que no hago nada con mirarlo, tengo que reproducirlo.

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

Vale, es que en el nuevo ya no le llamáis residuals si no serie y se quedaba con el de antes.

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

Ya lo tengo reproducido. Esos pulsos gigantes que se anulan tengo que ver porqué salen y evitarlo o bien filtrarlos a la salida, pero no es en absoluto sencillo.

De momento, aumentando optMinNonZeroParamProb a 0.999 se evita que salgan

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

Resolution: fixed
Status: reopenedclosed

(In [3604]) Fixes #1230 in version 2.0.2

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

(In [3605]) Fixes #1230 in version 2.0.1

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

Ya está disponible la versión oficial v2.0.1 b.5 con este problema resuelto.

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

También está ya disponible la versión de desarrollo v2.0.2 b.0.09.alpha con este problema resuelto.

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

(In [3614]) Refs #1230

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

(In [4184]) Refs #1230

Note: See TracTickets for help on using tickets.