Approximation to Innovation Variance

Code

<< FGN.m

FastInnovationVarianceApproximation[r_] := 
      Module[{n1 = Length[r] - 1, GI}, 
GI = 
          TrenchInverse[toe[Take[r, n1]]]; 
FIVA[r, 
          GI]
]

FIVA = 
        Compile[{{r, _Real, 1}, {GI, _Real, 
              2}}, 
r[[1]] - 
            With[{gk = Take[Drop[r, 1], Length[r] - 1]}, 
              Total[gk*(GI . gk)]]
];

Testing

H=0.95

r = Table[FGNAcf[k, 0.95], {k, 0, 1000}];

FastInnovationVarianceApproximation[r]

r = Table[FGNAcf[k, 0.95], {k, 0, 200}];

FastInnovationVarianceApproximation[r]

H=0.75

r = Table[FGNAcf[k, 0.75], {k, 0, 1000}];

FastInnovationVarianceApproximation[r]

r = Table[FGNAcf[k, 0.75], {k, 0, 200}];

FastInnovationVarianceApproximation[r]

H=0.05

r = Table[FGNAcf[k, 0.05], {k, 0, 1000}];

FastInnovationVarianceApproximation[r]

r = Table[FGNAcf[k, 0.05], {k, 0, 200}];

FastInnovationVarianceApproximation[r]

H=0.5

r = Table[FGNAcf[k, 0.5], {k, 0, 100}];

FastInnovationVarianceApproximation[r]

Conclusion

n = 200 provides an adequate approximation for H < 0.95 and H > 0.05.

Save Package

DeleteFile["d:/math/2006/Trench/code/FastInnovation.m"]

\(Save["d:/math/2006/Trench/code/FastInnovation.m", {FastInnovationVarianceApproximation}]\)