[Rd] partial correlation function for multivariate time series

Paul Gilbert pgilbert at bank-banque-canada.ca
Fri Sep 14 17:50:35 CEST 2007


Simone Giannerini wrote:
> Dear Paul,
> 
> there is no mention to the pacf in the multivariate setting in the book 
> you suggested.

My apologies, I should have looked more carefully and realized the pacf 
discussion in Granger and Newbold is all univariate.

> As I mentioned in private I suspect that pacf() in the multivariate case 
> computes the
> partial autoregression matrix (in the terminology of Reinsel) rather 
> than the partial autocorrelation matrix

It looks like pacf() uses the calculation in stats:::ar.yw.default , so 
roughly sounds consistent with what you say. I do think parts of this 
code pre-date Reisel's book, so inconsistency with his book would 
probably be imperfect foresight.

BTW, I think bug reports with suggested fixes are usually more useful. 
And, at the very least, it seems the references in the documentation 
could be improved.

Paul Gilbert

> as the two coincide in the univariate case but are different in the 
> multivariate case as stated explicitly
> in Reisel (Sec. 3.3).
> This would explain the coefficients well above 1 (in modulus) in the 
> example I have given.
> To support my statement you can fit A VAR model to the data and compare 
> the coefficients with the results
> from pacf():
> 
> set.seed(10)
> x <- rnorm(1000,sd=10000)
> y <- rnorm(1000,sd=1)
> 
> library(vars);
> mod1 <- VAR(ts(cbind(x,y)),p=4,type="none"); # fit a VAR (OLS)
> 
> ## Have a look at estimated coefficients
> 
>>  noquote(formatC(mod1$varresult$x$coefficients,format="f"))
> ## Edited by me, compare with the first column of the results below from 
> the pacf (pacf(....)$acf[,1,])
>      x.l1     x.l2    x.l3    x.l4   
>      0.047    0.013   0.004   0.014
>      y.l1     y.l2    y.l3    y.l4  
>      374.117  72.758 -526.452 126.610
>>  noquote(formatC(mod1$varresult$y$coefficients,format="f"))
> ## Edited by me, compare with the second column of the results below 
> from the pacf (pacf(....)$acf[,2,])
>      x.l1    x.l2     x.l3    x.l4 
>      0.000   -0.000   0.000   0.000 
>      y.l1    y.l2     y.l3    y.l4
>     -0.046   -0.025  -0.033  -0.020
> 
> pacf(ts(cbind(x,y)),plot=FALSE,lag.max=4)
> 
> Partial autocorrelations of series 'ts(cbind(x, y))', by lag
> 
> , , x
> 
>  x             y           
>     0.047 ( 1)    0.000 (-1)
>     0.011 ( 2)    0.000 (-2)
>     0.005 ( 3)    0.000 (-3)
>     0.013 ( 4)    0.000 (-4)
> 
> , , y
> 
>  x             y           
>   374.052 ( 1)   -0.045 ( 1)
>    66.717 ( 2)   -0.024 ( 2)
>  -535.810 ( 3)   -0.031 ( 3)
>   120.802 ( 4)   -0.020 ( 4)
>  
> As you can see the coefficients fairly agree.
> I might file a bug report in some days unless someone will prove me 
> wrong before.
> 
> Regards,
> 
> Simone
> 
> 
> 
> On 11/09/2007, *Paul Gilbert* <pgilbert at bank-banque-canada.ca 
> <mailto:pgilbert at bank-banque-canada.ca>> wrote:
> 
>     I think the reference for pacf is
> 
>     @BOOK{GraNew77,
>        author =    {Granger, C. W. J. and Newbold, Paul},
>        title =     {Forecasting Economic Time Series},
>        publisher = {Academic Press},
>        year =      1977
>        }
> 
>     It certainly would not be Reisel's book, as parts of the code predate
>     that by many years.
> 
>     Paul Gilbert
> 
>     Simone Giannerini wrote:
>      > Dear all,
>      >
>      > I found the following behaviour with pacf() in the multivariate
>     case,
>      >
>      > set.seed(10)
>      > x <- rnorm(1000,sd=10000)
>      > y <- rnorm(1000,sd=1)
>      > pacf(ts(cbind(x,y)),plot=FALSE,lag.max=10)
>      >
>      > Partial autocorrelations of series 'cbind(x, y)', by lag
>      >
>      > , , x
>      >
>      >  x              y
>      >     0.047 (  1)    0.000 ( -1)
>      >     0.011 (  2)    0.000 ( -2)
>      >     0.005 (  3)    0.000 ( -3)
>      >     0.013 (  4)    0.000 ( -4)
>      >     0.050 (  5)    0.000 ( -5)
>      >     0.034 (  6)    0.000 ( -6)
>      >     0.026 (  7)    0.000 ( -7)
>      >    -0.029 (  8)    0.000 ( -8)
>      >    -0.010 (  9)    0.000 ( -9)
>      >    -0.013 ( 10)    0.000 (-10)
>      >
>      > , , y
>      >
>      >  x              y
>      >   374.052 (  1)   -0.045 (  1)
>      >    66.717 (  2)   -0.024 (  2)
>      >  -535.810 (  3)   -0.031 (  3)
>      >   120.802 (  4)   -0.020 (  4)
>      >   142.824 (  5)    0.004 (  5)
>      >  -211.711 (  6)   -0.010 (  6)
>      >   201.856 (  7)    0.058 (  7)
>      >   286.079 (  8)   -0.035 (  8)
>      >  -134.057 (  9)    0.032 (  9)
>      >   -18.200 ( 10)    0.019 ( 10)
>      >
>      > Since there are multiple ways of defining the pacf for
>     multivariate time
>      > series
>      > (see e.g. G.C. Reinsel, Elements of multivariate time series
>     analysis, II
>      > edition, Springer, section 3.3) and given that
>      > in ?pacf there is no reference to articles or books regarding its
>      > computation
>      > I do not know whether this behaviour is expected or it is a bug
>     instead.
>      > In the first case could you provide a reference for it? In the
>     second case I
>      > might file a bug report.
>      > Thank you for the great work you are doing for the scientific
>     community.
>      >
>      > kind regards,
>      >
>      > Simone Giannerini
>      >
>      > WINDOWS
>      >
>      > platform       i386-pc-mingw32
>      > arch           i386
>      > os             mingw32
>      > system         i386, mingw32
>      > status
>      > major          2
>      > minor          5.1
>      > year           2007
>      > month          06
>      > day            27
>      > svn rev        42083
>      > language       R
>      > version.string R version 2.5.1 (2007-06-27)
>      >
>      > LINUX
>      >
>      >
>      >>R.Version()
>      >
>      > $platform
>      > [1] "x86_64-unknown-linux-gnu"
>      >
>      > $arch
>      > [1] "x86_64"
>      >
>      > $os
>      > [1] "linux-gnu"
>      >
>      > $system
>      > [1] "x86_64, linux-gnu"
>      >
>      > $status
>      > [1] ""
>      >
>      > $major
>      > [1] "2"
>      >
>      > $minor
>      > [1] "5.1"
>      >
>      > $year
>      > [1] "2007"
>      >
>      > $month
>      > [1] "06"
>      >
>      > $day
>      > [1] "27"
>      >
>      > $`svn rev`
>      > [1] "42083"
>      >
>      > $language
>      > [1] "R"
>      >
>      > $version.string
>      > [1] "R version 2.5.1 (2007-06-27)"
>     ====================================================================================
> 
>     La version française suit le texte anglais.
> 
>     ------------------------------------------------------------------------------------
> 
> 
>     This email may contain privileged and/or confidential information,
>     and the Bank of
>     Canada does not waive any related rights. Any distribution, use, or
>     copying of this
>     email or the information it contains by other than the intended
>     recipient is
>     unauthorized. If you received this email in error please delete it
>     immediately from
>     your system and notify the sender promptly by email that you have
>     done so.
> 
>     ------------------------------------------------------------------------------------
> 
> 
>     Le présent courriel peut contenir de l'information privilégiée ou
>     confidentielle.
>     La Banque du Canada ne renonce pas aux droits qui s'y rapportent.
>     Toute diffusion,
>     utilisation ou copie de ce courriel ou des renseignements qu'il
>     contient par une
>     personne autre que le ou les destinataires désignés est interdite.
>     Si vous recevez
>     ce courriel par erreur, veuillez le supprimer immédiatement et
>     envoyer sans délai à
>     l'expéditeur un message électronique pour l'aviser que vous avez
>     éliminé de votre
>     ordinateur toute copie du courriel reçu.
> 
> 
> 
> 
> -- 
> ______________________________________________________
> 
> Simone Giannerini
> Dipartimento di Scienze Statistiche "Paolo Fortunati"
> Universita' di Bologna
> Via delle belle arti 41 - 40126  Bologna,  ITALY
> Tel: +39 051 2098262  Fax: +39 051 232153
> http://www2.stat.unibo.it/giannerini/
> ______________________________________________________
====================================================================================

La version française suit le texte anglais.

------------------------------------------------------------------------------------

This email may contain privileged and/or confidential inform...{{dropped}}



More information about the R-devel mailing list