[R] ARCH LM test for univariant time series
Spencer Graves
spencer.graves at pdf.com
Sat Feb 2 18:26:27 CET 2008
tom soyer wrote:
> Spencer,
>
> The warning message is sent from VAR, it basically lets you know that the
> data it used had no column names and it had to supply them using y1, y2, y3,
> etc. It can be suppressed by including options(warn=-1) in the function.
>
> Anyway, it seems that the p value from my function does not match
> FinMetrics'. I guess the function doesn't work... hmm...
>
Before I concluded "the function doesn't work", I'd want to get key
references like Engle (1982) Autoregressive Conditional
Heteroscedasticity with estimates of the variance of the United Kingdom
inflations", Econometrica 50: 987-1007, cited by Tsay (p. 101).
However, that's not on my critical path for today. SG
>
> On 2/2/08, Spencer Graves <spencer.graves at pdf.com> wrote:
>
>> Dear Tom:
>>
>> Your revised function eliminates the discrepancy in the degrees of
>> freedom but is still very different from the numbers reports on Tsay, p.
>> 102:
>>
>> archTest(log(1+as.numeric(m.intc7303)), lag=12)
>>
>> ARCH test (univariate)
>>
>> data: Residual of y1 equation
>> Chi-squared = 13.1483, df = 12, p-value = 0.3584
>>
>> Warning message:
>> In VAR(s, p = 1, type = "const") :
>> No column names supplied in y, using: y1, y2, y3, y4, y5, y6, y7, y8,
>> y9, y10, y11, y12 , instead.
>>
>>
>> TOM: What can you tell me about the warning message?
>>
>> Thanks for your help with this.
>> Spencer Graves
>>
>> tom soyer wrote:
>>
>>> Spencer,
>>>
>>> Sorry, I forgot that the default lag in arch is 16. Here is the fix. Can
>>>
>> you
>>
>>> try it again and see if it gives the correct (or at least similar
>>>
>> compared
>>
>>> to a true LM test) result?
>>>
>>> archTest=function(x, lags=12){
>>> #x is a vector
>>> require(vars)
>>> s=embed(x,lags)
>>> y=VAR(s,p=1,type="const")
>>> result=arch(y,lags.single=lags,multi=F)$arch.uni[[1]]
>>> return(result)
>>> }
>>>
>>> Thanks and sorry about the bug.
>>>
>>>
>>> On 2/2/08, Spencer Graves <spencer.graves at pdf.com> wrote:
>>>
>>>
>>>> Dear Tom, Bernhard, Ruey:
>>>>
>>>> I can't get that to match Tsay's example, but I have other
>>>> questions about that.
>>>>
>>>> 1. I got the following using Tom's 'archTest' function (below):
>>>>
>>>>
>>>>
>>>>> archTest(log(1+as.numeric(m.intc7303)), lags=12)
>>>>>
>>>>>
>>>> ARCH test (univariate)
>>>>
>>>> data: Residual of y1 equation
>>>> Chi-squared = 10.8562, df = 16, p-value = 0.8183
>>>>
>>>> Warning message:
>>>> In VAR(s, p = 1, type = "const") :
>>>> No column names supplied in y, using: y1, y2, y3, y4, y5, y6, y7, y8,
>>>> y9, y10, y11, y12 , instead.
>>>>
>>>>
>>>> ** First note that the answer has df = 16, even though I
>>>> supplied lags = 12.
>>>>
>>>> 2. For (apparently) this example, S-Plus FinMetrics 'archTest'
>>>> function returned "Test for ARCH Effects: LM Test. Null Hypothesis:
>>>> no ARCH effects. Test Stat 43.5041, p.value 0.0000. Dist. under Null:
>>>> chi-square with 12 degrees of freedom".
>>>>
>>>> 3. Starting on p. 101, Ruey mentioned "the Lagrange multiplier
>>>> test of Engle (1982)", saying "This test is equivalent to the usual F
>>>> test for" no regression, but refers it to a chi-square, not an F
>>>> distribution. Clearly, there is a gap here, because the expected value
>>>> of the F distribution is close to 1 [d2/(d2-2), where d2 = denominator
>>>> degrees of freedom; http://en.wikipedia.org/wiki/F-distribution],
>>>>
>> while
>>
>>>> the expected value for a chi-square is the number of degrees of freedom
>>>>
>>>> Unfortunately, I don't feel I can afford the time to dig into this
>>>> further right now.
>>>>
>>>> Thanks for your help.
>>>> Spencer Graves
>>>>
>>>> tom soyer wrote:
>>>>
>>>>
>>>>> Spencer, how about something like this:
>>>>>
>>>>> archTest=function (x, lags= 16){
>>>>> #x is a vector
>>>>> require(vars)
>>>>> s=embed(x,lags)
>>>>> y=VAR(s,p=1,type="const")
>>>>> result=arch(y,multi=F)$arch.uni[[1]]
>>>>> return(result)
>>>>> }
>>>>>
>>>>> can you, or maybe Bernhard, check and see whether this function gives
>>>>> the correct result?
>>>>>
>>>>> thanks,
>>>>>
>>>>> On 2/1/08, *Spencer Graves* <spencer.graves at pdf.com
>>>>> <mailto:spencer.graves at pdf.com>> wrote:
>>>>>
>>>>> Hi, Tom:
>>>>>
>>>>> The 'arch' function in the 'vars' package is supposed to be
>>>>>
>>>>>
>>>> able
>>>>
>>>>
>>>>> to do that. Unfortunately, I was unable to make it work for a
>>>>> univariate series. Bernhard Pfaff, the author of 'vars', said
>>>>> that if I
>>>>> read the code for 'arch', I could easily retrieve the necessary
>>>>>
>>>>>
>>>> lines
>>>>
>>>>
>>>>> and put them in my own function; I have not so far found the time
>>>>>
>>>>>
>>>> to
>>>>
>>>>
>>>>> try that. If you do, or if you get a better answer than this,
>>>>> would you
>>>>> please let me know? I would like to have this capability for the
>>>>> 'FinTS' package, and I would happily write a help page if someone
>>>>> would
>>>>> contribute the function -- or use a function in another
>>>>>
>>>>>
>>>> package. Tsay
>>>>
>>>>
>>>>> (2005) Analysis of Financial Time Series, 2nd ed. (Wiley) includes
>>>>>
>>>>>
>>>> an
>>>>
>>>>
>>>>> example on p. 103 that could be used for a reference.
>>>>>
>>>>> Hope this helps.
>>>>> Spencer Graves
>>>>>
>>>>> tom soyer wrote:
>>>>> > Hi,
>>>>> >
>>>>> > Does anyone know if R has a Lagrange multiplier (LM) test for
>>>>>
>> ARCH
>>
>>>>> > effects for univariant time series?
>>>>> >
>>>>> > Thanks!
>>>>> >
>>>>> >
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Tom
>>>>>
>>>>>
>>>
>>>
>>>
>
>
>
>
More information about the R-help
mailing list