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

Closed 19 years ago

Last modified 18 years ago

#341 closed defect (fixed)

ERROR Estimate

Reported by: Javier Gallardo Owned by: Víctor de Buen Remiro
Priority: normal Milestone:
Component: Math Version: head
Severity: blocker Keywords:
Cc:

Description

Date Ini = y2001m01d01;
Date Fin = y2002m01d01;

Se crea una tendencia a partir de la fecha inicial

Serie ser = SubSer(Trend(Ini, Diario), Ini, Fin);

Se crea la serie 'ser%7' para que tenga estructura semanal

Serie modulo_7 = ser - 7*Floor(ser/7);

Se crea un filtro

Serie filter = 10*CalInd(M(2), Diario);

Se multiplica la serie 'modulo_7' por 'ser' para que tenga tendencia
y se le suma el filtro

Serie output = ser*modulo_7 + filter;

Set modelDef = ModelDef(

output,
1,
0,
7,
0,
en lugar de dos diferencias estacionales
se le pasa una y se estima el parametro AR(7)
(1 - B7),
SetOfPolyn(1 + 0.1*B, 1),
no se le pasa MA
SetOfPolyn(1, 1),
se le pasa el filtro como input
SetOfSet(InputDef(0.99, filter)),
AllLinear

);

se estima el modelo
Set modelEst = Estimate(Set modelDef);

Se copia la serie filter estimada
Serie filter_est = Copy(modelEst[3][8]);

se crea una serie de ceros
Serie ceros = SubSer(CalInd(W, Diario), Ini, Fin);

se suma la serie nula al filter estimado
Serie filtro_new = modelEst[3][8] + ceros;

se reasigna
Serie (modelEst[3][8] := filtro_new);

las series del siguiente conjunto deberían ser iguales

Set seriesIguales = SetOfSerie(filter_est, filtro_new, modelEst[3][8]);

sin embargo las dos últimas están desfasadas 7 días hacia el futuro,
tantos como el grado del polinomio del AR

Change History (3)

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

Status: newassigned

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

Resolution: fixed
Status: assignedclosed

Problem has been fixed:

Internal C++ function that implements Copy user fucntion for Serie type
(BUserTimeSerieDo::PutContens) was not prepared to circular references as this
case.

Serie filtro_new = modelEst[3][8] + ceros;
Serie (modelEst[3][8] := filtro_new);

Serie modelEst[3][8] is redefined using itself, this means a circular reference.

Solving this bug implies duplicate data buffer to be safe of invalid access but time
used in duplication is not significative.

Thanks to report it.

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

bug_file_loc: http://cvs.tol-project.org/viewcvs.cgi/tol_tests/tol/Bugzilla/bug_000341
Note: See TracTickets for help on using tickets.