Как рассчитать производную многомерной нормальной функции плотности вероятности

Есть ли встроенная функция, вычисляющая значение градиента многомерной нормальной функции плотности вероятности для заданной точки?

Изменить: нашел это как оценить производную функции в Matlab?но это не то, что я ищу

Edit2: хорошо, это то, что я использую http://www.mathworks.co.uk/help/stats/mvnpdf.html случай 3, поиск значения производной по X


person Karusmeister    schedule 08.11.2012    source источник
comment
Я нашел эту страницу. Это то, что вы ищете?   -  person Yamaneko    schedule 09.11.2012
comment
Ваш заголовок и должность противоречат друг другу; вы ищете PDF или градиент PDF?   -  person Isaac    schedule 09.11.2012
comment
значение градиента PDF в точке X   -  person Karusmeister    schedule 09.11.2012
comment
Градиент относительно какой переменной/параметра? Он имеет более одного...   -  person Colin T Bowers    schedule 09.11.2012
comment
@Karusmeister Можете ли вы предоставить более подробную информацию о ваших входных данных? Ваш PDF представлен матрицей или функцией? И если это функция, принимает ли она вектор в качестве входных данных (т.е. f(X)) или она должна принимать явные компоненты (т.е. f(x1, x2, x3, ...))?   -  person Eitan T    schedule 09.11.2012
comment
@EitanT, OP уже сказал, что это многомерный нормальный PDF, поэтому производную можно рассчитать только из среднего значения, ковариационной матрицы и точки, в которой мы оцениваем градиент.   -  person Isaac    schedule 09.11.2012
comment
Это помогает? mathworks.com/ matlabcentral/файловый обмен/   -  person Bitwise    schedule 09.11.2012
comment
@Bitwise Я посмотрю. Выглядит интересно   -  person Karusmeister    schedule 09.11.2012


Ответы (1)


Могу ли я предложить вам проверить The Matrix Cookbook Петерсона и Педерсена (доступна бесплатно в Интернете — просто погуглите). Аналитическое решение вашей задачи находится на стр. 39, уравнение 325 (издание 2008 г.).

Для этого нам даже не понадобился Matlab!

EDIT: Как подразумевает YBE, возможно, мне следует включить решение в свой ответ. Итак, пусть p(x) обозначает многомерную гауссову PDF, характеризуемую средним вектором m и ковариационной матрицей S. Тогда:

dp(x) / dx = -p(x) * S^(-1) * (x - m)

и

d^2p / dx dx' = p(x) * (S^(-1) (x - m)(x - m)' S^(-1) - S^(-1))

Если вам нужна функция Matlab, то:

function Gradient = MultNormD1(x, Mu, Sigma)
Gradient = -1 * mvnpdf(x, Mu, Sigma) * (Sigma \ (x - Mu));
person Colin T Bowers    schedule 09.11.2012
comment
+1, просто для полноты здесь: d/dx x^T.\Sigma. x = 2\Sigma x (\Sigma hermitian и psd) и d/dx(a^T.x)= a - person jkt; 09.11.2012