[英]Construct 2 time series random variables with fixed correlation
是否有一種簡單的方法來生成具有固定相關性的兩個時間序列? 例如0.5。
有人知道R或Python中的解決方案嗎? 謝謝!
我認為這個問題很籠統。 它不僅限於時間序列。 您要問的是生成具有已知協方差的2d隨機變量。 r==0.5, std1=1 and std2=2
將轉換為[[1,1],[1,4]]
的協方差矩陣。 因此,如果我們假設數據是多維正態分布的,則可以生成這樣的隨機變量:
In [42]:
import numpy as np
val=np.random.multivariate_normal((0,0),[[1,1],[1,4]],1000)
In [43]:
np.corrcoef(val.T)
Out[43]:
array([[ 1. , 0.488883],
[ 0.488883, 1. ]])
In [44]:
np.cov(val.T)
Out[44]:
array([[ 1.03693888, 0.96490767],
[ 0.96490767, 3.75671707]])
In [45]:
val=np.random.multivariate_normal((0,0),[[1,1],[1,4]],10)
In [46]:
np.corrcoef(val.T)
Out[46]:
array([[ 1. , 0.56807297],
[ 0.56807297, 1. ]])
In [48]:
val[:,0]
Out[48]:
array([-0.77425116, 0.35758601, -1.21668939, -0.95127533, -0.5714381 ,
0.87530824, 0.9594394 , 1.30123373, 1.92511929, 0.98070711])
In [49]:
val[:,1]
Out[49]:
array([-1.75698285, 2.24011423, -3.5129411 , -1.33889305, 2.32720257,
0.53750133, 3.23935645, 2.96819425, -0.72551024, 3.0743096 ])
如本例所示,如果樣本量較小,則所得的隨機變量可能會偏離r=0.5
很大。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.