[R] How to interpret the phase spectrum?

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Nov 24 09:48:20 CET 2009


On Tue, 24 Nov 2009, David Scott wrote:

> Peter Dalgaard wrote:
>> sdlywjl666 wrote:
>>> Dear all, I would like to know whether positive or negative values of the 
>>> phase spectrum indicate that the time series leads or lags.
>>>     In my work, x and y have peak nearly at the same 
>>> frequency,(eg:f=1/56);and the coherency is peak where f=1/56,the phase is 
>>> 0.5 where f=1/56.
>>>     Can I get the conclusion that x lead y 0.5*56=28 at the frquency 
>>> f=1/56?
>>> if not,how can I compute the lag/lead by phase and frequency.
>> 
>> Are you referring to a particular piece of software?

I had presumed he might be referring to R and in particular 
spectrum(), whilst ignoring the footer of this and every other R-help 
message.  I didn't see it in any other time-series package in R (and I 
had expected it to be in timsac).

>> As far as I know, this is completely dependent on choice of notation, so
>> the question really only makes sense in a specified context. In the
>> cases I remember seeing (I'm no time series expert, though), the phase
>> is an _angle_ between 0 and 2*pi or between -pi and +pi, or sometimes in
>> degrees, but I suppose it could be scaled to (-1 , 1) or (0, 1) as well.
>> Also lead/lag for cyclic functions is a matter of convention; in
>> particular, there's no difference between leading and lagging by half a
>> cycle.
>> 
> Following up on Peter's comment. Different authors define the 
> cross-covariance and hence cross-spectrum differently. Time series seems to 
> me to be plagued by inconsistencies in definitions.

That's why help pages have references, and ?spectrum points you to 
the definitions used.  See also the MASS online complements at
http://www.stats.ox.ac.uk/pub/MASS4/VR4stat.pdf which has an example 
of interpreting the phase spectrum.

> There is a way out though, and when faced with different software, it is a 
> step which should always be undertaken before any interpretation is 
> attempted. Generate a series, a simple sinusoid will do, change the phase to 
> generate a leading or lagged series, and see how the cospectrum looks. That 
> is really the only infallible way of determining what the software is doing.

I'd say the best way was to read the code, but both reading the code 
and interpreting the output would need an 'infallible' human 
interpreter.

>
> David Scott

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list