Computation of the cross-wavelet power and wavelet coherence of two time series
Computation of the cross-wavelet power and wavelet coherence of two time series
Given two time series x and y having the same length and timestamp, this function computes the cross-wavelet power and wavelet coherence applying the Morlet wavelet, subject to criteria concerning: the time and frequency resolution, an (optional) lower and/or upper Fourier period, and filtering method for the coherence computation.
The output is further processed by the higher-order function wc
and can be retrieved from analyze.coherency.
The name and layout were inspired by a similar function developed by Huidong Tian and Bernard Cazelles (archived R package WaveletCo). The implementation of a choice of filtering windows for the computation of the wavelet coherence was inspired by Luis Aguiar-Conraria and Maria Joana Soares (GWPackage).
WaveletCoherency(x, y, dt =1, dj =1/20, lowerPeriod =2*dt, upperPeriod = floor(length(x)*dt/3), window.type.t =1, window.type.s =1, window.size.t =5, window.size.s =1/4)
Arguments
x: the time series x to be analyzed
y: the time series y to be analyzed (of the same length as x
dt: time resolution, i.e. sampling resolution in the time domain, 1/dt = number of observations per time unit. For example: a natural choice of dt in case of hourly data is dt = 1/24, resulting in one time unit equaling one day. This is also the time unit in which periods are measured. If dt = 1, the time interval between two consecutive observations will equal one time unit.
Default: 1.
dj: frequency resolution, i.e. sampling resolution in the frequency domain, 1/dj = number of suboctaves (voices per octave).
Default: 1/20.
lowerPeriod: lower Fourier period (measured in time units determined by dt, see the explanations concerning dt) for wavelet decomposition. If dt = 1, the minimum admissible value is 2.
Default: 2*dt.
upperPeriod: upper Fourier period (measured in time units determined by dt, see the explanations concerning dt) for wavelet decomposition.
Default: (floor of one third of time series length)*dt.
window.type.t: type of window for smoothing in time direction; select from:
0
( "none" )
:
no smoothing in time direction
1
( "bar" )
:
Bartlett
2
( "tri" )
:
Triangular (Non-Bartlett)
3
( "box" )
:
Boxcar (Rectangular, Dirichlet)
4
( "han" )
:
Hanning
5
( "ham" )
:
Hamming
6
( "bla" )
:
Blackman
Default: 1 = "bar".
window.type.s: type of window for smoothing in scale (period) direction; select from:
0
( "none" )
:
no smoothing in scale (period)
direction
1
( "bar" )
:
Bartlett
2
( "tri" )
:
Triangular (Non-Bartlett)
3
( "box" )
:
Boxcar (Rectangular, Dirichlet)
4
( "han" )
:
Hanning
5
( "ham" )
:
Hamming
6
( "bla" )
:
Blackman
Default: 1 = "bar".
window.size.t: size of the window used for smoothing in time direction, measured in time units determined by dt, see the explanations concerning dt. Default: 5, which together with dt = 1 defines a window of length 5*(1/dt) = 5, equaling 5 observations (observation epochs). Windows of even-numbered sizes are extended by 1.
window.size.s: size of the window used for smoothing in scale (period) direction in units of 1/dj. Default: 1/4, which together with dj = 1/20 defines a window of length (1/4)*(1/dj) = 5. Windows of even-numbered sizes are extended by 1.
Returns
A list with the following elements: - Wave.xy: (complex-valued) cross-wavelet transform (analogous to Fourier cross-frequency spectrum, and to the covariance in statistics)
Power.xy: cross-wavelet power (analogous to Fourier cross-frequency power spectrum)
Coherency: (complex-valued) wavelet coherency of series x over series y in the time/frequency domain, affected by smoothing (analogous to Fourier coherency, and to the coefficient of correlation in statistics)
Coherence: wavelet coherence (analogous to Fourier coherence, and to the coefficient of determination in statistics (affected by smoothing)
Wave.x, Wave.y: (complex-valued) wavelet transforms of series x and y
Phase.x, Phase.y: phases of series x and y
Ampl.x, Ampl.y: amplitudes of series x and y
Power.x, Power.y: wavelet power of series x and y
sPower.x, sPower.y: smoothed wavelet power of series x and y
Period: the Fourier periods (measured in time units determined by dt, see the explanations concerning dt)
Scale: the scales (the Fourier periods divided by the Fourier factor)
nc: number of columns = number of observations = number of observation epochs; "epoch" meaning point in time
nr: number of rows = number of scales (Fourier periods)
References
Aguiar-Conraria L., and Soares M.J., 2011. Business cycle synchronization and the Euro: A wavelet analysis. Journal of Macroeconomics 33 (3), 477--489.
Aguiar-Conraria L., and Soares M.J., 2011. The Continuous Wavelet Transform: A Primer. NIPE Working Paper Series 16/2011.
Cazelles B., Chavez M., Berteaux, D., Menard F., Vik J.O., Jenouvrier S., and Stenseth N.C., 2008. Wavelet analysis of ecological time series. Oecologia 156, 287--304.
Liu P.C., 1994. Wavelet spectrum analysis and ocean wind waves. In: Foufoula-Georgiou E., and Kumar P., (eds.), Wavelets in Geophysics, Academic Press, San Diego, 151--166.
Torrence C., and Compo G.P., 1998. A practical guide to wavelet analysis. Bulletin of the American Meteorological Society 79 (1), 61--78.
Veleda D., Montagne R., and Araujo M., 2012. Cross-Wavelet Bias Corrected by Normalizing Scales. Journal of Atmospheric and Oceanic Technology 29, 1401--1408.
Author(s)
Angi Roesch and Harald Schmidbauer; credits are also due to Huidong Tian, Bernard Cazelles, Luis Aguiar-Conraria, and Maria Joana Soares.