I am a new user to R and try to calculate weekly auto correlation between 2 financial time series with ccf function.
Here is my code:
SPX_ImpliedVola_ts<-ts(SPX_ImpliedVola$x, start=c(2005), end=c(2014), freq=52)
SPX_GSV_ts<-ts(SPX_GSV$x, start=c(2005), end=c(2014), freq=52)
plot(ccf(SPX_ImpliedVola_ts,SPX_GSV_ts, type= "correlation"))
The results of ccf function make sense, but the labelling of x-axis is wrong. My lags should be weeks. The plot function uses years instead and therefore on lag is =1/52. I do not have enough reputation points to post the plot
Is there an easy way to format the x axis, so that 1 lag = 1 week?
Here is my data for the year 2013:
SPX_GSV_ts
structure(c(-0.172545978, -0.085914629, -0.051152522, -0.191885526,
0.10720997, 0.120573931, 0.123062732, -0.073231914, 0.122783425,
-0.073231914, -0.091330136, -0.108595771, -0.149988456, -0.077412223,
0.017728767, -0.057991947, -0.04522754, 0.098925304, 0.019744058,
-0.042403849, 0.097955247, 0.060480747, -0.096910013, 0.04275198,
-0.111150452, -0.123384909, 0.020203386, 0.02540458, 0.046743404,
0.046743404, 0.096910013, -0.029289376, -0.020203386, 0.019305155,
0.124938737, 0.071494417, 0.080655932, 0.032184683, -0.072195125,
0.08058446, 0.109144469, -0.116215168, -0.003792989, -0.011685758,
0.033281387, -0.011685758, 0.044203662, -0.137383556, -0.023912157,
0.023065304, 0.037141808, -0.128799157, -0.036045104), .Tsp = c(2013,
2014, 52), class = "ts")
SPX_ImpliedVola_ts:
structure(c(0.1551244, 0.1764986, 0.169477, 0.1509566, 0.14180975,
0.1455916, 0.1320918, 0.150884, 0.1519094, 0.1670364, 0.1769658,
0.1491722, 0.14883, 0.13545475, 0.134158, 0.1292596, 0.13465,
0.14380075, 0.136281, 0.1350982, 0.1384192, 0.1467728, 0.161534,
0.14764, 0.1332734, 0.1353106, 0.126313, 0.1268324, 0.1200864,
0.1242202, 0.127857, 0.1382412, 0.1319932, 0.1441192, 0.1316964,
0.1217246, 0.1262966, 0.11574475, 0.1166192, 0.1231602, 0.119756,
0.10622025, 0.1133376, 0.1245488, 0.1124368, 0.11566475, 0.1196388,
0.1003482, 0.0994486, 0.0972232, 0.10798775, 0.1115012, 0.1148464
), .Tsp = c(2013, 2014, 52), class = "ts")
It seems that
ccf
does not plot the number of lags properly forts
class. You need to change the class of your data todata.frame
to get the proper number of lags on the x-axis. You can use the following code:You can remove
type= "correlation"
and you will still get the same results as the defaulttype
forccf
iscorrelation
Also the plot you have from last code does not give access to the specific value of each lag. To check the value of each lag you need to assign the
ccf
results variable name and thin print it as follow:You will get:
Note that
0
in the results above means thecorrelation
without any lags.