Spectrum analysis (see wiki entry) is a technical process to visualize a time series data in the frequency domain to find hidden periodicities. As I continue my struggle in data mining with R, I thought I might try looking at a year's worth of USDJPY 1-min exchange rate data in the frequency domain. This is what I got.
Certainly not one of those nice looking graphs in a textbook. Notice that:
- there is no distinct frequencies
- bandwidth is ridiculously small
What this means is that the USDJPY data is practically white noise. And that there's much work for me ahead before I can produce something useful in R. The source code to produce the graph is printed below. The USDJPY data isn't published as it's not small and you can get it at various places for free on your own. Update: Failed is a harsh word. I should call this a trivial experiment.
op \<- options(digits.secs=3) \# set option to show milliseconds cat("loading CSV file to 'data'\\n") print( system.time( data \<- read.csv( file="data/USDJPY\_20090630-13-27to20101130-22-19\_1Min.csv", head=TRUE, sep=",") ) ) \# convert long timestamp to POSIX rownames(data) \<- as.POSIXct(as.numeric(rownames(data))/1000, origin="1970-01-01", tz="GMT") data \<- data.matrix(data) library(xts) \# load xts library cat("converting to xts 'data.x'\\n") print(system.time(data.x \<- as.xts(data))) rm(data) \# remove data object cat("data.x object size: ") print(object.size(data.x), units = "auto") cat("spectral analysis\\n") spectrum(data.x\$close)