On May 10, 2010, at 2:55 PM, Sergio Andrés Estay Cabrera wrote:

Dear R users and specially Albyn and Giovanni,

thanks for your answers, but in fact I supposed the same at the beginning of my problem. However, when I generate the data seldom I obtain the expected correlation. For example using this code:

fz<-function(n,t,rho){
f<-NULL
for(i in 1:n){
s<-rmvnorm(n=t,mean=c(0,0),sigma=matrix(c(1,rho,rho, 1),ncol=2),method='svd')
paso<-cor(cumsum(s[,1]),cumsum(s[,2]))
f<-c(f,paso)}
f<-f
}

I believe you may want to search on the term "quantos model". If you have two independent Brownian processes W_1(t) and W_2(t) then W_3 = rho*W_1(t) +sqrt(1-rho^2)*W_2(t) will theoretically have correlation rho with W_1. Sampling will of course giving varying instantiation values.


--
David
citation: "Financial Calculus", Baxter M; Rennie A (1996)

and then plot the histogram of the results, it is possible to observe that the distribution of the values is asymmetric with most of the simulations close to 1 when the value of rho is higher than 0.3 and looks like a uniform distribution with values below 0.3.

I suspect than the only possibility is using a brute force algorithm.


Any advice would be helpful

Sergio A. Estay
*CASEB *
Departamento de Ecología
Universidad Catolica de Chile




Albyn Jones wrote:
Sums of correlated increments have the same correlation as the original
variables...

library(mvtnorm)
X<- matrix(0,nrow=1000,ncol=2)
for(i in 1:1000){
Y <- rmvnorm(1000,mean=mu,sigma=S)
X[i,] <- apply(Y,2,sum)
}
cor(Y)
         [,1]      [,2]
[1,] 1.0000000 0.4909281
[2,] 0.4909281 1.0000000

So, unless you meant that you want the _sample_ correlation to be
pre-specified, you are all set.

albyn

On Sun, May 09, 2010 at 09:20:25PM -0400, Sergio Andrés Estay Cabrera wrote:

Hi everybody,


I am trying to generate two random walks with an specific correlation, for example, two random walks of 200 time steps with a correlation 0.7.

I built the random walks with:

x<-cumsum(rnorm(200, mean=0,sd=1))
y<-cumsum(rnorm(200, mean=0,sd=1))

but I don't know how to fix the correlation between them.

With white noise is easy to fix the correlation using the function rmvnorm in the package mvtnorm

I surfed in the web in the searchable mail archives in the R web site but no references appears.

If you have some advices to solve this problems I would be very thankful.

Thanks in advance.

Sergio A. Estay
*CASEB *
Departamento de Ecología
Universidad Catolica de Chile

--
“La disciplina no tiene ningún mérito en circunstancias ideales. ” – Habor Mallow

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.







--
“La disciplina no tiene ningún mérito en circunstancias ideales. ” – Habor Mallow

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to