Так то да, но чего-то не так получается:
генерируем выборку, так чтобы не все корреляции были нулевыми
Код:
ClearAll[r]
seq = Join[Sequence @@ Table[Transpose[RandomReal[MultinormalDistribution[{0, 0}, {{1, r}, {r, 1}}],100]], {r, -0.8, 0.8, 0.4}]] // Transpose;
{n, m} = Dimensions[seq]
оцениваем по ней распределение, вектор средних и ковариационную матрицу:
Код:
ClearAll[a, s]
A = Array[a, m];
S = Array[s, {m, m}];
dist = EstimatedDistribution[seq, MultinormalDistribution[A, S]];
av = Mean[dist];
cov = Covariance[dist];
В качестве пределов интегрирования возьмем по три сигмы туда-сюда от среднего, и интегрируем:
Код:
fu = PDF[dist, A]
V = Table[{a[j], av[[j]] - 3 Sqrt[cov[[j, j]]], av[[j]] + 3 Sqrt[cov[[j, j]]]}, {j, m}]
NIntegrate[Evaluate[fu], Evaluate[Sequence @@ V], Method -> "MonteCarlo"]
NIntegrate[Evaluate[fu], Evaluate[Sequence @@ V], Method -> "AdaptiveMonteCarlo"]
Для MonteCarlo у меня стабильно получается цифра в районе 0.8-0.9, для AdaptiveMonteCarlo в районе 0.4, а должно быть примерно 1. Причем расширение пределов интегрирования только ухудшает ситуацию.