Я имитирую доходность двух взаимосвязанных активов как простой пример оценки худшего / лучшего варианта. Я включил код ниже.
ret1 = 0.25
ret2 = 0.3
vol1 = 0.11
vol2 = 0.16
rho = 0.5
obs = 252*5
means = [(ret1 - 0.5*vol1**2)/252,(ret2 - 0.5*vol2**2)/252] #[0.0009680555555555556, 0.0011396825396825397]
cov = [[(vol1**2)/252,vol1*vol2*rho/252],[vol1*vol2*rho/252,(vol2**2)/252]]
res = np.random.multivariate_normal(means,cov,obs)
mat = pd.DataFrame(res, columns = df.columns)
mat.mean()
Я включил целевые средства. Однако, когда я проверяю средние и матрицу корреляции сгенерированных рядов, они не равны целевым средним значениям, и корреляция немного отличается, то есть они не одинаковы.
Когда я использовал «mvrnorm» в R, есть параметр «эмпирический», который при значении True означает, что средние значения и стандартные отклонения сгенерированного ряда точно равны целям.
Я не расщепляю волосы или что-то еще, я просто хочу sh, чтобы лучше понять функцию multivariate_normal. Любой вклад с благодарностью.
Спасибо.