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

#1283 closed defect (fixed)

Estimate y mms difieren en los residuos

Reported by: Jorge Owned by: Víctor de Buen Remiro
Priority: highest Milestone: Mantainance
Component: Math Version: 2.0.1
Severity: critical Keywords:
Cc: palmagro@…, libarra@…

Description

Véase el ticket #768 de MMS.

Change History (3)

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

Status: newaccepted

Lo he estado mirando y no hay problema en usar los resultados de MMS.

Estimate internamente usa el método de Levinson que no utiliza los valores iniciales para nada, sino que resuelve las ecuaciones de Yule-Walker asociadas al modelo ARMA que dan lugar a un sistema de Toeplitz que se resuelve de forma muy eficaz. He comprobado que genera los mismos residuos que el método de Almagro que sí que calcula la esperanza condicionada de los valores iniciales y que resulta más lento en general.

El error de Estimate está al final del todo, después de estimar y calcular estadísticos y todo eso, al rellenar la serie de residuos que se entrega al usuario, la cual se genera desde el principio de los tiempos resolviendo la ecuación en diferencias sin más; y ahí hay algo que falla porque no le llegan los valores iniciales correctos. O se traspapelan por el camino o se calculan mal o lo que sea, aún no he podido comprobarlo porque son cosas duras de depurar en C++ y es un código bastante viejo.

Mañana por la mañana veré cómo solucionarlo con Levinson pero a las bravas se puede arreglar llamando al final al método de Almagro sin más consideraciones, porque para una evaluación nada más no importa demasiado el tiempo de cálculo. Durante la estimación sí que se pueden hacer cientos o miles de evaluaciones por lo que sí es muy importante usar el método más rápido y que como digo da los mismos resultados.

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

Cc: palmagro@… libarra@… added
Keywords: palmagro@bayesinf.com libarra@bayesforecast.com removed

Ya he encontrado y resuelto el problema o mejor dicho problemas. He probado a usar el método de Almagro al final pero seguía pasando lo mismo.

  • Al final de la estimación se rehace el cálculo del jacobiano numérico de la parte ARMA con mayor exactitud para dar resultados más robustos en las covarianzas y derivados. Esto ocasiona perturbaciones que normalmente son inapreciables pero que en un modelo con raices casi unitarias de orden tan largo se tornan gigantescas. Si se alarga suficiente acaba por converger pero en este caso sería tras cientos de miles de iteraciones. Sólo hay que restaurar la evaluación al punto estimado tras el cálculo del jacobiano pero sn ose hacía correctamente.
  • Ya no es necesario resolver la ecucaión en diferencias al final, simplemente se convierte a serie el vector de residuos internos.
  • El método de Levinson, que no necesita de los valores iniciales, sí que permite calcularlos, y de hecho lo hacía y daba resultados exactos para el ruido ARMA, pero no así para los residuos. En otros modelos que yo había probado no se apreciaban diferencias importantes y lo achaqué a error de redondeo pero en este monstruo se aprecia notablemente y me ha permitido perseguir el error que ya ha sido subsanado.

En breves subiré los cambios y tras pasar los tests subiré las versiones binarias de la 2.0.1 y la 2.0.2

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

Resolution: fixed
Status: acceptedclosed

(In [3692]) Fixes #1283

Note: See TracTickets for help on using tickets.