From: Pfaff, Bernhard Dr. <Bernhard_Pfaff_at_fra.invesco.com>

Date: Mon, 4 Feb 2008 09:05:35 -0000

PVAL <- 1 - pchisq(STATISTIC, df = PARAMETER) METHOD <- "ARCH LM-test"

result <- list(statistic = STATISTIC, parameter = PARAMETER,

Confidentiality Note: The information contained in this ...{{dropped:10}}

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 - 09:08:43 GMT

Date: Mon, 4 Feb 2008 09:05:35 -0000

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 ...{{dropped:10}}

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 - 09:08:43 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 Wed 06 Feb 2008 - 04: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.
*