This is an R Markdown document. It’s helpful for running our codes and keeping results in the same document.

Reference: Grinsted, A., Moore, J.C., Jevrejeva, S., (2004). Application of the cross wavelet transform and wavelet coherence to geophysical time series. Nonlinear Processes Geophys. 11 (5/6), 561–566.

# Turning the package on for wavelet coherence.  If you haven't installed
# yet, then go to Packages --> Click on Install --> Search for 'biwavelet'
# --> Ok
library(biwavelet)
# Import your data
Data <- read.csv("https://dl.dropboxusercontent.com/u/18255955/Tutorials/Commodities.csv")
# Attach your data so that you can access variables directly using their
# names
attach(Data)

Our two variables are A=ISLX and B=GOLD.

# Define two sets of variables with time stamps
t1 = cbind(DATE, ISLX)
t2 = cbind(DATE, GOLD)
# Specify the number of iterations. The more, the better (>1000).  For the
# purpose of this tutorial, we just set it = 10
nrands = 10
wtc.AB = wtc(t1, t2, nrands = nrands)
# Plotting a graph
par(oma = c(0, 0, 0, 1), mar = c(5, 4, 5, 5) + 0.1)
plot(wtc.AB, plot.phase = TRUE, lty.coi = 1, col.coi = "grey", lwd.coi = 2, 
    lwd.sig = 2, arrow.lwd = 0.03, arrow.len = 0.12, ylab = "Scale", xlab = "Period", 
    plot.cb = TRUE, main = "Wavelet Coherence: A vs B")

# Adding grid lines
n = length(t1[, 1])
abline(v = seq(260, n, 260), h = 1:16, col = "brown", lty = 1, lwd = 1)

# Defining x labels
axis(side = 3, at = c(seq(0, n, 260)), labels = c(seq(1999, 2015, 1)))