Поверхностный график многомерной нормальной плотности - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть функция правдоподобия с Многомерная нормальная плотность , среднее значение которой mu=[3 5]' и covariance=9*I.Как я могу построить его 2D поверхность в Matlab?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Функция логарифмического правдоподобия может быть получена из PDF или по ссылке wiki .

Mu = [3 5]';
Sigma = 9*eye(2);
loglikeh=@(x) -0.5*log(det(Sigma)) + (x-Mu)'*inv(Sigma)*(x-Mu) + length(x)*log(2*pi);  % For single x

xMin = -2;
xMax = 7;
step = 0.1;
X1 = xMin:step:xMax;
X2 = xMin:step:xMax;
L = zeros(length(X1),length(X2));
for i = 1:length(X1)
    for j = 1:length(X2)
       x = [X1(i) X2(j)]';
       L(i,j) = loglikeh(x);
    end
end

Если я допустил ошибку, пожалуйста, прокомментируйте, чтобы я мог исправить.Надеюсь это поможет.

Печать

surf(X1,X2,L')      % Note L is transposed if done this way
xlabel('x_1')
ylabel('x_2')
zlabel('log-likelihood')

См. эти ответы для получения дополнительной визуализации и параметров.

0 голосов
/ 28 ноября 2018

Вы можете попробовать обратиться сюда: (используйте функцию mvnpdf в MATLAB) F = mvnpdf ([X1 (:) X2 (:)], mu, Sigma) Пожалуйста, проверьте здесь https://www.mathworks.com/help/stats/multivariate-normal-distribution.html

...