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

#1243 closed defect (fixed)

Estimate and transfer functions with forward operators: F

Reported by: Pedro Gea Owned by: Víctor de Buen Remiro
Priority: high Milestone: Mantainance
Component: Kernel Version: head
Severity: blocker Keywords:
Cc:

Description

¿Se puede (o debería poder) utilizar Estimate con inputs (@InputDef) cuya función de transferencia contenga monomios en F?

Estoy casi convencido de haber visto funcionar a Estimate con estos polinomios, pero he intentado probar con un ejemplo y TOL cae:

Real PutRandomSeed(2143);
Serie noise = SubSer(Gaussian(0, 1, C), y2001, y2002);
Serie input = SubSer(Rand(0, 1, C), y2000, y2003);
Serie output = noise + ((0.3*F):input);
Set model = @ModelDef(
  output, 1, 0, 1, 0,
  Polyn 1, SetOfPolyn(1), SetOfPolyn(1), [[
    @InputDef(0.1*F, input)
  ]], Copy(Empty)
);
Set estimation = Estimate(model);

Attachments (1)

Estimate_F.oza (8.8 KB) - added by Pedro Gea 14 years ago.

Download all attachments as: .zip

Change History (9)

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

Status: newaccepted

No es posible ni lo ha sido nunca.
Donde se pueden poner las F es en la definición de la serie input, pero los omega son siempre B. En el caso del ejemplo sería esto:

 @InputDef(0.1, F:input)

En cualquier caso no debería caerse e intentaré que no lo haga

comment:2 Changed 14 years ago by Pedro Gea

Pues entonces subo como bug un caso en el que sí funciona, por si sirve para delatar alguna cosa que no debería estar ocurriendo.

Basta con ejecutar:

Set arguments = Include("Estimate_F.oza");
// Se vuelven a hacer los inputs semi-infinitos porq no se pueden guardar así en un OZA
Set arguments::modelDef::Input := EvalSet(arguments::modelDef::Input, Set (Set iDef) {
  @InputDef(iDef->Omega, CalInd(W,C)<<iDef->X)
});
Set Estimate(arguments::modelDef, arguments::begin, arguments::end);

En el ejemplo las series inputs son semi-infinitas y como no pueden almacenarse así, se rehacen tras cargar el OZA.

Changed 14 years ago by Pedro Gea

Attachment: Estimate_F.oza added

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

No entiendo el problema del último código.

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

El objetivo de un modelo ARIMA es hacer predicciones del futuro para lo cual sólo se pueden usar datos del presente o el pasado, pues los efectos no pueden preceder a las causas.

Es cierto que si un input es determinista es factible usar datos referidos al futuro y puede que operacionalmente funcione, pero no tiene sentido, filosóficamente hablando, asignarlos a una fecha futura, lo que hay que hacer es adelantar la serie input con el F^n que haga falta y luego en la función de transferencia usar sólo omegas con grados no negativos.

No se hace nada para comprobar si se pasan o no grados negativos (F) porque nunca se me pasó por la cabeza que alguien fuera a hacerlo. La definición del modelo ARIMA con función de transferencia de Box-Cox sólo hace referencia a polinomios en B, y en la mini-doc de Estimate sólo se habla de B. Lo único que se me ocurre es dar un mensaje de error si se encuentra grados negativos, ¿es eso es lo que querías?

comment:5 Changed 14 years ago by Pedro Gea

Aunque parezca raro una cosa que ocurrirá puede tener efecto hoy si se sabe con seguridad que ocurrirá, como ejemplo pueden imaginarse comportamientos ante días festivos que llegarán, principios de un mes, días de facturación, etc.

Con el anti-bug ése me pregunto: si "no es posible ni lo ha sido nunca", ¿por qué no falla y parece que es posible?

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

Voy a poner un ejemplo para ilustrar lo que comentaba antes.

Pongamos que mañana empieza un puente y debido a eso hoy hay más tráfico de lo normal. En el lenguaje coloquial es correcto decir que el puente de mañana es la causa del efecto de hoy, pero científica y filosóficamente es absurdo que algo que ocurre mañana pueda tener consecuencias hoy. La verdadera causa no es la fiesta que ocurrirá mañana sino el hecho de que la gente lo sabe ya hoy y coje el coche para desplazarse a su lugar de descanso. Es decir el suceso mañana empieza un puente en realidad ocurre hoy lo cual resuelve el absurdo. Esta noche podría haber un golpe de estado y prohibir los puentes y el efecto ya estaría causado. ¿Tendría sentido pensarque algo que ni siquiera ha ocurrido puede ser causa de efecto alguno?

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

Resolution: fixed
Status: acceptedclosed

(In [3646]) Fixes #1243

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

(In [3661]) Fixes #1243
Fixes #1265

Note: See TracTickets for help on using tickets.