[R] GARCH

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Jun 21 09:59:28 CEST 2006


Why do you think

> help.search("garch-methods", package="tseries")

finds accessor functions?  That is notation for S4 methods, and "garch" is 
an S3 class so there will be none.  Here there _is_ an accessor, coef(), 
and you can find that there is by

> methods(class="garch")
[1] coef.garch*      fitted.garch*    logLik.garch*    plot.garch*
[5] predict.garch*   print.garch*     residuals.garch* summary.garch*

    Non-visible functions are asterisked

Note though that inherited methods might be relevant too (e.g. default 
methods) and indeed it seems that here the default method for coef would 
work just as well.


On Tue, 20 Jun 2006, Jeff Newmiller wrote:

> Arun Kumar Saha wrote:
>> Dear all R-users,
>>
>> I have a GARCH related query. Suppose I fit a GARCH(1,1) model on a
>> dataframe dat
>>
>>
>>> garch1 = garch(dat)
>>> summary(garch1)
>>
>> Call:
>> garch(x = dat)
>>
>> Model:
>> GARCH(1,1)
>>
>> Residuals:
>>     Min      1Q  Median      3Q     Max
>> -4.7278 -0.3240  0.0000  0.3107 12.3981
>>
>> Coefficient(s):
>>     Estimate  Std. Error  t value Pr(>|t|)
>> a0 1.212e-04   2.053e-06    59.05   <2e-16 ***
>> a1 1.001e+00   4.165e-02    24.04   <2e-16 ***
>> b1 2.435e-15   1.086e-02 2.24e-13        1
>> ---
>> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>>
>> Diagnostic Tests:
>>         Jarque Bera Test
>>
>> data:  Residuals
>> X-squared = 54480.76, df = 2, p-value < 2.2e-16
>>
>> Now I want to store the value of Pr(>|t|) for coefficient a0, a1, and b1,
>> and also values of these coefficients, so that I can use them in future
>> separately. I know that I can do it for coefficients by using the command:
>> coef(garch1)["a0"] etc, but not for Pr(>|t|). Can anyone please tell me how
>> to do this?
>
> This is less a question about GARCH and more a question about how R works
> (which I know is true because I didn't know what GARCH was when I read the
> question and I still don't but I can provide you a usable answer).
>
> You can use the str() function to see the structure of an object in R:
>
> > garch1.summary <- summary(garch1)
> > str(garch1.summary)
> List of 6
>  $ residuals: Time-Series [1:999] from 2 to 1000:  0.206  0.709  0.476
>
>                                                    -0.291 -1.676 ...
>   ..- attr(*, "na.removed")= int 1
>  $ coef     : num [1:3, 1:4] 0.0799 0.6287 0.2118 0.0110 0.0755 ...
>   ..- attr(*, "dimnames")=List of 2
>   .. ..$ : chr [1:3] "a0" "a1" "b1"
>   .. ..$ : chr [1:4] " Estimate" " Std. Error" " t value" "Pr(>|t|)"
>  $ call     : language garch(x = x, order = c(1, 1))
>  $ order    : Named num [1:2] 1 1
>   ..- attr(*, "names")= chr [1:2] "p" "q"
>  $ j.b.test :List of 5
>   ..$ statistic: Named num 0.468
>   .. ..- attr(*, "names")= chr "X-squared"
>   ..$ parameter: Named num 2
>   .. ..- attr(*, "names")= chr "df"
>   ..$ p.value  : Named num 0.791
>   .. ..- attr(*, "names")= chr "X-squared"
>   ..$ method   : chr "Jarque Bera Test"
>   ..$ data.name: chr "Residuals"
>   ..- attr(*, "class")= chr "htest"
>  $ l.b.test :List of 5
>   ..$ statistic: Named num 1.01
>   .. ..- attr(*, "names")= chr "X-squared"
>   ..$ parameter: Named num 1
>   .. ..- attr(*, "names")= chr "df"
>   ..$ p.value  : num 0.316
>   ..$ method   : chr "Box-Ljung test"
>   ..$ data.name: chr "Squared.Residuals"
>   ..- attr(*, "class")= chr "htest"
>  - attr(*, "class")= chr "summary.garch"
>
> From this you can see that there is a "coef" list member
> that contains the information you are after:
>
> > garch1.summary$coef
>      Estimate  Std. Error  t value     Pr(>|t|)
> a0 0.07989234  0.01104719 7.231912 4.762857e-13
> a1 0.62870916  0.07551333 8.325804 0.000000e+00
> b1 0.21184013  0.05384033 3.934599 8.333558e-05
>
> this is apparently a matrix, so try matrix notation:
>
> > garch1.summary$coef[,4]
>           a0           a1           b1
> 4.762857e-13 0.000000e+00 8.333558e-05
>
> or
>
> > garch1.summary$coef[1,4]
> [1] 4.762857e-13
>
> Having said all that, this solution depends on implementation details
> of the innards of the relevant objects, and in general if accessor
> functions are available they should be used instead... but in this
> case such accessors don't seem to be available.
>
> > help.search("garch-methods", package="tseries")
>
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list