how to speed up lenghty formulas??
- To: mathgroup at smc.vnet.net
- Subject: [mg84104] how to speed up lenghty formulas??
- From: Arkadiusz.Majka at gmail.com
- Date: Mon, 10 Dec 2007 20:35:13 -0500 (EST)
DearAll,
I have a general problem with lenghty formula
E.g for a data set X
X=Table[Random[NormalDistribution[0,5],{100}]];
I define function h:
h[0] := Variance[X];
h[1] := a0+ h[0];
h[t_] := h[t] = a0 + a1*X[[t - 1]]^2 + b1*h[t - 1]
and H which is the collection of h in all times up to the length of
data set X
H = Table[h[i], {i, 2, Length[X]}];
Next I define a function:
logLike = Total[-Log[H] - (Drop[X, 1]^2/H)];
which I want to minimize in order to find a0,a1,b1
NMinimize[{-logLike, a0> 0 && 1 >a1 > 0 && 1 > b1> 0 && a1+ b1 <1},
{a0, a1, b1}]
It works but takes a lot of time and does not scale at all (i.e. when
I add an element to X the computational time increases very much)
The form of logLike and NMinimize function is only an example of how
to deal with very long function but with only a few arguments (here 3)
to obtain fast results. Instead of NMinimize you can try to
contourplot logLike function or do whatever you want - its time
consuming.
I know that there existing a solution ,i.e to speed up such
computation. The example above is a parameter estimation of GARCH
process which in TimeSeries packet runs very fast. But how did
developers do so???
Thanks for any help,
Arek