# How to combine several time series into a useful average time series?

Let's assume we have four time series a, b, c and d with 10 measurments.

a(1), ..., a(10)
b(1), ..., b(10)
c(1), ..., c(10)

d(1), ..., d(10)

a, b and c are assumed to show the same trend and periodicity.

The question is how can I compare d to a combination of a, b and c in order to test whether d is differing from the assumed trend and periodicity.

The problem is that a, b and c have different ranges, so an average

X(i) := ( a(i) + b(i) + c(i) ) / 3

is not useful.

My question is what would be a good way to reach a meaningful combination?

Would it make sense to normalize the mean of all series a, b, c, d to 1 and then compare d to the average of a, b and c? Or would I also have to normalize the standard deviation of all four series to 1 first?

• give an example – user603 Jul 12 '12 at 16:10
• I'm assuming that "trend" covers phase/delay differences. Your factors are essentially complicated ways of saying "normalize each series by its sum before comparing." For instance, let a'(i) = a(i)/sum(a), etc. You're essentially comparing the average of a', b', and c' to d. I'd compare it to d'. – Josephine Moeller Jul 12 '12 at 18:29
• I edited the question. Basically I want to combine the information of a, b and c in a way that causes as little distortian to the original information as possible and then compare it. Basically I should normalize the mean of all series, I guess. What I have been wondering is if I would have to normalize the std dev as well ... I am pretty unsure. – Raffael Jul 12 '12 at 20:58

I am not particularly familiar with them, but it seems to me that this would be a reasonable case to use a VAR (vector autoregression) model for.

In particular, a VAR with a linear time trend or period-specific deterministic component would give you a nice summary statistic for the overall trend in a given period. See for example equation (11.4) here:

http://faculty.washington.edu/ezivot/econ584/notes/varModels.pdf

You could then consider your series d as analagous to the exogenous variable in impulse response modeling (or the X in the equation listed above) and see its joint effect on the vector of Y's (your series a-c). The F-test seems to be the standard way to do this.

Example

Here's an example that (I think) shows what you are looking to test:

set.seed(1)
n <- 10
dat <- data.frame( a = runif(n), b = runif(n), c = runif(n) )
dat$d <- apply( dat[ c(1,1:9), ], 1, function(x) x[1] + x[2]*3 + x[3]*4 + runif(1) ) mdl <- VAR( dat, p=1, type="const" ) causality(mdl,cause="d")$Granger

Granger causality H0: d do not Granger-cause a b c

data:  VAR object mdl
F-Test = 3.8527, df1 = 3, df2 = 16, p-value = 0.02994

\$Instant

H0: No instantaneous causality between: d and a b c

data:  VAR object mdl
Chi-squared = 2.6609, df = 3, p-value = 0.4469

The null Granger hypothesis is rejected at p<.05. So a shock in d is useful in predicting future values of (a,b,c).