[R-SIG-Finance] Problem with garch (tseries)

Patrick Burns patrick at burns-stat.com
Fri Aug 18 17:22:39 CEST 2006


These are good points.  But probably a key aspect
is that garch thinks 800 data points is a small sample,
and 400 points (at least for daily data) is likely to yield
parameter estimates that are exceptionally variable.

Patrick Burns
patrick at burns-stat.com
+44 (0)20 8525 0696
http://www.burns-stat.com
(home of S Poetry and "A Guide for the Unwilling S User")

Joe W. Byers wrote:

>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
>>
>>    
>>
>
>_______________________________________________
>R-SIG-Finance at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>
>
>  
>



More information about the R-SIG-Finance mailing list