[R-SIG-Finance] Problem with garch (tseries)
Joe W. Byers
Joe-Byers at utulsa.edu
Fri Aug 18 16:18:59 CEST 2006
Micheal,
Physical natural daily prices are a problem with time series models
especially if the physical asset is storable. Storable assets means
that the prices are not an easy single model time series process but a
multi-variate model ie Supply and Demand. Another problem is the
returns of these prices are not normally distributed especially over
short times series. Other things to think about are how liquid are these
asset prices, the breath and depth of the markets, are is there a well
developed forward market?
These do not mean that your model is not going to work, it may just not
be robust next time you estimate it. I would suggest running some
outlier tests for spikes in the prices, looking at volatility clustering
around these outliers. Also consider using a GED GARCH model that is
normal distribution under restrictions on the parameters and a negative
exponential on others. My collegues and I and U Tulsa have found this
works well for some Power prices and Weather Temps. I am working on it
for other prices series as well.
Good Luck
Joe
michael mathews wrote:
> Hi folks,
> I have been playing with garch models to model the volatility in
> physical natural prices.
> Here is the issue I have a dataset of 801 daily returns (attached).
> If I run
>
> garchall<-garch(hsc)
>
> ***** ESTIMATION WITH ANALYTICAL GRADIENT *****
>
>
>> summary(garchall)
>
> Call:
> garch(x = hsc)
>
> Model:
> GARCH(1,1)
>
> Residuals:
> Min 1Q Median 3Q Max
> -4.3424 -0.5734 0.0000 0.6037 4.0501
>
> Coefficient(s):
> Estimate Std. Error t value Pr(>|t|)
> a0 2.507e-05 9.200e-06 2.726 0.00642 **
> a1 1.218e-01 2.085e-02 5.840 5.21e-09 ***
> b1 8.759e-01 1.937e-02 45.212 < 2e-16 ***
> ---
> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>
> Diagnostic Tests:
> Jarque Bera Test
>
> data: Residuals
> X-squared = 62.7291, df = 2, p-value = 2.387e-14
>
>
> Box-Ljung test
>
> data: Squared.Residuals
> X-squared = 0.0384, df = 1, p-value = 0.8447
>
> Now if we run the same model on a subset say the last 351 days we get
>> garch351<-garch(tail(hsc,351))
>
> ***** ESTIMATION WITH ANALYTICAL GRADIENT *****
>
>
>> summary(garch351)
>
> Call:
> garch(x = tail(hsc, 351))
>
> Model:
> GARCH(1,1)
>
> Residuals:
> Min 1Q Median 3Q Max
> -4.171521 -0.424628 0.008727 0.532158 3.962116
>
> Coefficient(s):
> Estimate Std. Error t value Pr(>|t|)
> a0 2.511e-05 1.589e-05 1.580 0.114167
> a1 1.043e-01 2.950e-02 3.536 0.000406 ***
> b1 8.957e-01 2.567e-02 34.896 < 2e-16 ***
> ---
> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>
> Diagnostic Tests:
> Jarque Bera Test
>
> data: Residuals
> X-squared = 76.3704, df = 2, p-value < 2.2e-16
>
>
> Box-Ljung test
>
> data: Squared.Residuals
> X-squared = 1.2806, df = 1, p-value = 0.2578
>
> still ok. Now finally we get t the point of this email lets look at 352
> days of data:
>
> garch352<-garch(tail(hsc,352))
>
> ***** ESTIMATION WITH ANALYTICAL GRADIENT *****
>
>
> Warning message:
> NaNs produced in: sqrt(pred$e)
>> summary(garch352)
>
> Call:
> garch(x = tail(hsc, 352))
>
> Model:
> GARCH(1,1)
>
> Residuals:
> Min 1Q Median 3Q Max
> -4.16377 -0.58155 0.01454 0.70886 12.41242
>
> Coefficient(s):
> Estimate Std. Error t value Pr(>|t|)
> a0 2.428e-05 1.556e-05 1.561 0.118632
> a1 1.043e-01 2.947e-02 3.540 0.000400 ***
> b1 8.962e-01 2.556e-02 35.058 < 2e-16 ***
> ---
> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>
> Diagnostic Tests:
> Jarque Bera Test
>
> data: Residuals
> X-squared = 10993.57, df = 2, p-value < 2.2e-16
>
>
> Box-Ljung test
>
> data: Squared.Residuals
> X-squared = 0.1831, df = 1, p-value = 0.6687
>
> whats up? Any Ideas.
> I have also tried using garchFit from the fSeries package but it locks
> up completely left it running last night and it was still spinning this
> morning when I got back to the office.
>
> thanks in advance
>
> michael
>
More information about the R-SIG-Finance
mailing list