Take the 2-minute tour ×
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

I'd like to generate more than two (i.e 3) correlated series, take an example when the series follows an IMA(1,1) process, at first I want to generate three correlated random errors e[i] and then I use the following equation to build the series: d[i,] <- mu + d[i-1,] - theta*(e[i-1,])+e[i,] this is what we need to do for two series, how can we develop it for more than two series?

library(mvtnorm)
rho <- 0.5
mu <- c(10,10)
phi <- c(0.2,0.8)
theta <- c(0.3,-0.7)
d <- ts(matrix(0,ncol=2,nrow=50))
e <- ts(rmvnorm(50,sigma=cbind(c(1,rho),c(rho,1))))
for(i in 2:50)
  d[i,] <- mu + phi*d[i-1,] - theta*(e[i-1,]+e[i,])
plot(d)
share|improve this question
    
What did you try –  Elvis Dec 23 '12 at 21:44
add comment

1 Answer 1

What about this?

library(mvtnorm)
rho1 <- 0.5
rho2 <- 0.3
rho3 <- -0.1
mu <- c(10,10,10)
phi <- c(0.2,0.8,0.6)
theta <- c(0.3,-0.7,0.1)
d <- ts(matrix(0,ncol=3,nrow=50))
e <- ts(rmvnorm(50,sigma=cbind(c(1,rho1,rho2),c(rho1,1,rho3),c(rho2,rho3,1))))
for(i in 2:50)
  d[i,] <- mu + phi*d[i-1,] - theta*(e[i-1,]+e[i,])
plot(d)

Frankly, judging by the questions you’ve been asking lately, you need to take some time to review some basic probability theory, and learn R, before addressing time series, which is not easy stuff.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.