Если у меня есть две отдельные многомерные нормальные случайные величины:
from scipy.stats import multivariate_normal
import numpy as np
cov0=np.array([
[1,0,0],
[0,1,0],
[0,0,1]
])
mean0 = np.array([1,1,1])
rv3d_0 = multivariate_normal(mean=mean0, cov=cov0)
cov1=np.array([
[1,0,0],
[0,1,0],
[0,0,1]
])
mean1 = np.array([4,4,4])
rv3d_1 = multivariate_normal(mean=mean1, cov=cov1)
Тогда я заинтересован в создании новой случайной величины, которая находится между этими двумя:
mean_avg = (mean0+mean1)/2
cov_avg = (cov0+cov1)/2
rv3d_avg = multivariate_normal(mean=mean_avg, cov=cov_avg)
# I can then plot the points generated by:
rv3d_0.rvs(1000)
rv3d_1.rvs(1000)
rv3d_avg.rvs(1000)
Однако при поискев сгенерированных точках ковариация предсказуемо совпадает с двумя компонентами.Однако я хотел бы, чтобы ковариация была больше вдоль вектора (mean1-mean0) по сравнению с ковариацией вдоль ортогональных векторов.Я думаю, может быть, взятие среднего значения ковариации не является правильной техникой?Любые предложения приветствуются, спасибо!