[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