#1230 closed doubt (fixed)
Error en AIA
Reported by: | 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)
Change History (17)
Changed 14 years ago by
Attachment: | ErrorEnAIA.oza added |
---|
comment:1 Changed 14 years ago by
comment:2 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Type: | defect → doubt |
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:
Changed 14 years ago by
Attachment: | ErrorEnAIA2.oza added |
---|
comment:4 Changed 14 years ago by
Cc: | lmperez@… added |
---|---|
Resolution: | fixed |
Status: | closed → reopened |
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
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:8 Changed 14 years ago by
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
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
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
comment:12 Changed 14 years ago by
Ya está disponible la versión oficial v2.0.1 b.5 con este problema resuelto.
comment:13 Changed 14 years ago by
También está ya disponible la versión de desarrollo v2.0.2 b.0.09.alpha con este problema resuelto.
Perdón, no lo había visto. Voy mirarlo.