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)
Change History (2)
Changed 20 years ago by
comment:1 Changed 20 years ago by
Resolution: | → invalid |
---|---|
Status: | new → closed |
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.
performs an estimation