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

Closed 20 years ago

#292 closed defect (invalid)

Estimate produces huge residuals when RelativeTolerance=0.0001

Reported by: asalafranca Owned by: Víctor de Buen Remiro
Priority: highest Milestone:
Component: Math Version: head
Severity: critical Keywords:
Cc:

Description

Estimate produces huge residuals when RelativeTolerance is set to 0.0001 but it
doesn´t when RelativeTolerance is set to 0.001!
This has never happend on Daily Series it happens on 50 out of my 3000 Monthly
Series. It has something to do whith interrumptions and i belive with iterrumptions
close to the begining of the serie.
I attach a directory with the series an a .tol file that performs the estimate.
To get a nice estimation just set:

RelativeTolerance := 103

in estimate.tol

Attachments (1)

est02.rar (7.5 KB) - added by asalafranca 20 years ago.
performs an estimation

Download all attachments as: .zip

Change History (2)

Changed 20 years ago by asalafranca

Attachment: est02.rar added

performs an estimation

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

Resolution: invalid
Status: newclosed
Summary: Estimate produces huge residuals when RelativeTolerance=0.0001 Estimate produces huge residuals when RelativeTolerance=0.0001

Well Alfonso

I've analyzed your TOL code and I want notice you two points

1) Parameters as RelativeTolerance, Tolerance, MaxIter just were created to help
the user to control the convergency of non linear multivariate optimization
method. Value of parameters is not arbitrary but user would have to fill up them
carefully. Iterations 1...n will be stoped when minimization function norm(n)
matches any of these conditions:

a) (n == MaxIter) or
b) norm(n) is unknown or infinite due to any computation error or a bad model

design

c) (norm(n-1)-norm(n)) < Tolerance
d) (norm(n-1)-norm(n)) /norm(n-1) < RelativeTolerance

The value RelativeTolerance=0.0001 means that iterations will not be stoped until
model error relative (norm(n-1)-norm(n)) /norm(n-1) variation stay under 0.0001,
so, when norm(n-1) has small values as .01-norm(n)<.01*0.0001=.000001.
Really you need this high precision? RelativeTolerance should be restricted to
operate when norm has high values and Tolerance is not a good criterium.

2) Success is not warranted: there are no one of these non linear multivariate
optimization iterative methods that can ensure to find a local minimum, even less
a global minimum, due to many possible causes as

a) bad selection of initial point of iteration,
b) steep orography of function,
c) numerical unstability due to bad scaling of variables and output,
d) colinearity or high correlation between variables,
e) bad model design, ...

In this case you have an output time serie between -6.42 and 1.49, and an input
between 0 and 26134.5, and this is not a very good practice, although is not the
cause of your problem: the model is very bad designed because ARIMA strucure
has not periodicity 12, but it's a regular IMA(1).

When the model is really bad designed, optimizer seems to be drunk and can
return any set of values because objective function is pathological. When you sets
RelativeTolerance=0.0001 a new iteration is needed and the numerical problem
appears.

Note: See TracTickets for help on using tickets.