Dear Bernhard: Thanks very much. Unless you object, I shall add it to the 'FinTS' library as "ArchTest" (comparable to the S-PLUS Finmetrics 'archTest' function) -- with a worked example in '\scripts\ch03.R'.
Best Wishes, Spencer Pfaff, Bernhard Dr. 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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* <[EMAIL PROTECTED] >>>>>> <mailto:[EMAIL PROTECTED]>> 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@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. > ***************************************************************** > > > ______________________________________________ R-help@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.