Re: [R] ARCH LM test for univariant time series

From: tom soyer <tom.soyer_at_gmail.com>
Date: Mon, 4 Feb 2008 06:18:08 -0600

Thanks Bernhard for the beautiful code!!

On 2/4/08, Pfaff, Bernhard Dr. <Bernhard_Pfaff_at_fra.invesco.com> wrote:
>
> Dear All,
>
>
> one can visually inspect ARCH-effects by plotting acf/pacf of the
> squared residuals from an OLS-estimation. This can be as simple as a
> demeaned series. Further one can run an auxiliary regression by
> regressing q lagged squared values and a constant on the squared series
> itself. This test statistic (N-q)*R^2 is distributed as chisq with q
> degrees of freedom.
>
> Something along the lines:
>
> archlmtest <- function (x, lags, demean = FALSE)
> {
> x <- as.vector(x)
> if(demean) x <- scale(x, center = TRUE, scale = FALSE)
> lags <- lags + 1
> mat <- embed(x^2, lags)
> arch.lm <- summary(lm(mat[, 1] ~ mat[, -1]))
> STATISTIC <- arch.lm$r.squared * length(resid(arch.lm))
> names(STATISTIC) <- "Chi-squared"
> PARAMETER <- lags - 1
> names(PARAMETER) <- "df"
> PVAL <- 1 - pchisq(STATISTIC, df = PARAMETER)
> METHOD <- "ARCH LM-test"
> result <- list(statistic = STATISTIC, parameter = PARAMETER,
> p.value = PVAL, method = METHOD, data.name =
> deparse(substitute(x)))
> class(result) <- "htest"
> return(result)
> }
>
> should work and yield equal results as mentioned earlier in this thread.
>
> Best,
> Bernhard
>
>
> >
> >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...
> >
> >
> >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
> >> >>>
> >> >
> >> >
> >> >
> >> >
> >>
> >
> >
> >
> >--
> >Tom
> >
> > [[alternative HTML version deleted]]
> >
> >______________________________________________
> >R-help_at_r-project.org mailing list
> >https://stat.ethz.ch/mailman/listinfo/r-help
> >PLEASE do read the posting guide
> >http://www.R-project.org/posting-guide.html
> >and provide commented, minimal, self-contained, reproducible code.
> >
> *****************************************************************
> Confidentiality Note: The information contained in this message,
> and any attachments, may contain confidential and/or privileged
> material. It is intended solely for the person(s) or entity to
> which it is addressed. Any review, retransmission, dissemination,
> or taking of any action in reliance upon this information by
> persons or entities other than the intended recipient(s) is
> prohibited. If you received this in error, please contact the
> sender and delete the material from any computer.
> *****************************************************************
>
>

-- 
Tom

	[[alternative HTML version deleted]]

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Mon 04 Feb 2008 - 12:21:11 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Mon 04 Feb 2008 - 12:30:11 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive