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

2008-02-05 Thread Spencer Graves
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..  
   
 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)
  

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

2008-02-04 Thread Pfaff, Bernhard Dr.
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..  
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 

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

2008-02-04 Thread tom soyer
Thanks Bernhard for the beautiful code!!

On 2/4/08, Pfaff, Bernhard Dr. [EMAIL PROTECTED] 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..
 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.  

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

2008-02-02 Thread Spencer Graves
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..  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

__
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.


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

2008-02-02 Thread tom soyer
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..  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.


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

2008-02-02 Thread tom soyer
OK, it's no good. Here is the result:


 data(m.intc7303)
 archTest(log(1+as.numeric(m.intc7303)), lags=12)

ARCH test (univariate)

data:  Residual of y1 equation
Chi-squared = 13.1483, df = 12, p-value = 0.3584



On 2/2/08, tom soyer [EMAIL PROTECTED] 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..  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




-- 
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.


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

2008-02-02 Thread Spencer Graves
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..  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
   





__
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.


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

2008-02-02 Thread tom soyer
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..  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.


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

2008-02-02 Thread Spencer Graves
 

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 [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..  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
   

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

2008-02-01 Thread Spencer Graves
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!



__
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.


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

2008-02-01 Thread tom soyer
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] 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

[[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.