Re: correlated random vector
- To: mathgroup at smc.vnet.net
- Subject: [mg63938] Re: correlated random vector
- From: "Valeri Astanoff" <astanoff at yahoo.fr>
- Date: Tue, 24 Jan 2006 01:30:23 -0500 (EST)
- References: <dqsp65$cbj$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
This is my way to do it (just an example) : In[1]:=<<Statistics` In[2]:= unif[data_List, corr_?NumericQ]:= Module[{n,data2,x,co,seq,fm}, n = Length[data]; data2 = data+Table[a*i+x[i],{i,1,n}]; co = Correlation[data,data2]; seq = Append[Table[{x[i],Random[]},{i,1,n}],{a,0}]; fm = Last@FindMinimum[(co-corr)^2,seq]; data2 /. fm ]; In[3]:=data=Table[5+Random[],{20}] Out[3]= {5.39226,5.36703,5.31962,5.16276,5.12001, 5.55116,5.20296,5.40329,5.09581,5.19278, 5.03282,5.04554,5.63755,5.71108,5.95834, 5.25023,5.30043,5.31474,5.54467,5.24328} In[4]:=data2=unif[data,0.6] Out[4]= {5.47602,5.99265,5.84691,5.46308,5.89896, 5.8935,5.49545,5.62488,5.83973,6.07133, 6.20991,5.95155,6.36889,6.47994,7.18477, 6.19511,6.48132,6.45963,6.89937,6.02256} In[5]:=Correlation[data,data2] Out[5]=0.6 Sure this doesn't work in all experimental cases, but it might inspire you for a better approach. v.a.