MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Large control loops

On Oct 25, 3:24 am, Arthur <shuk... at> wrote:
> The vector in the first column is the common vector. It is the
> independent variable in the subsequent regressions - I am
> regressing first to find the correlation between it and each of
> the other vectors. It's all numbers.
> OLS regressions.
> I am estimating the parameters through a secondary regression on
> the residuals of the first and then some basic algebra. It's an
> Ornstein-Uhlenbeck process, I am using the first procedure outlined
> here
> I am not so much worried about the time (although that too is a
> concern) but the actual structure. Should it just be a long while
> loop?

par[r] expects r to be a vector of residuals. It uses van den Berg's
first procedure and returns {a,b,sd,lambda,mu,sigma}. Since the
residuals sum to zero, the formulas simplify a little.

par[r_] := Block[{n = Length@r - 1, delta = 1 (* ?? *),
                  Sx,Sy, Sxx,Syy, Sxy, a,b,sd},
  {Sx , Sy } = -r[[{-1,1}]];
  {Sxx, Syy} = n(#.#&@Take[r,{2,-2}] + {Sy,Sx}^2) - {Sx,Sy}^2
  Sxy = n Most at r.Rest@r - Sx*Sy;
  {       a = Sxy/Sxx,
          b = (Sy - a*Sx)/n,
         sd = Sqrt[(Syy - a*Sxy)/(n(n-2))],
  (* lambda = *) -Log[a]/delta,
  (*     mu = *) b/(1-a),
  (*  sigma = *) sd*Sqrt[-2 Log[a]/(delta(1-a^2))]} ]

I would get all the residuals simultaneously,
and then map par over them.

{x,y} = {First@#,Last@#}&[Transpose@A - Mean@A];
p = par /@ (y + Transpose[{y.x/-x.x}].{x}])

Those two lines would be followed by a loop that scans p looking for
the best parameters, and all that would be nested within a loop that
puts different values into A. (Note: rows 1,2,... of p correspond to
column 2,3,... of A.)

  • Prev by Date: Re: bug ?
  • Next by Date: Re: Integral points on elliptic curves
  • Previous by thread: Re: Large control loops
  • Next by thread: Creating Objects