Як взяти похідне багатоваріантної нормальної щільності?


35

Скажімо, у мене багатофакторна нормальна щільність N(μ,Σ) . Я хочу отримати другу (часткову) похідну wrt . Не знаєте, як взяти похідне від матриці.μ

Wiki каже, що приймайте похідний елемент за елементом всередині матриці.

Я працюю з наближенням Лапласа Режим - .Θ = μ

log⁡PN(θ)=log⁡PN−12(θ−θ^)TΣ−1(θ−θ^).

θ^=μ

Мені дали як це сталося?

Σ−1=−∂2∂θ2log⁡p(θ^|y),

Що я зробив:

log⁡P(θ|y)=−k2log⁡2π−12log⁡|Σ|−12(θ−θ^)TΣ−1(θ−θ^)

Отже, я беру похідну wrt до , по-перше, є транспозиція, по-друге, це матриця. Отже, я застряг.θ

Примітка: Якщо мій професор натрапив на це, я маю на увазі лекцію.


1
Частина вашої проблеми може полягати в тому, що у вашому вираженні для ймовірності виникнення помилок є помилка - у вас |Σ|де ви повинні мати log⁡(|Σ|) . Також випадково ви мали на увазі ? Σ−1=−∂2∂θ2log⁡p(θ|y)
— Макро

Так, ти маєш рацію, вибач. Чому перед частковою похідною виникає негативний знак?
— користувач1061210

Я тільки роз'яснював про негативний знак, тому що, негативна друга похідна - це спостережувана інформація про рибалки, яка зазвичай представляє інтерес. Також за власним розрахунком я вважаю, що ∂2∂θ2log⁡p(θ|y)=−Σ−1
— Макрос

Отже, яка загальна процедура дискретної / безперервної функції? Візьміть журнал, запишіть у форму розширення Тейлора, диференціюйте двічі wrt . Інформація про Фішера, як правило, не відповідає більшості інших густин, правда? θ
— користувач1061210

3
@user Як я зазначив, друга похідна логарифму повинна мати непозитивні власні значення. Так, існують зв’язки між дисперсіями та негативними другими частковими похідними, як виявляє теорія максимальної ймовірності, інформація про Фішера тощо - Макрос згадував про це раніше в цих коментарях.
— whuber

Відповіді:


66

У главі 2 Матричної кулінарної книги» є хороший огляд матеріалів матричного обчислення, який дає безліч корисних ідентифікацій, які допомагають у вирішенні проблем, пов'язаних з можливістю і статистикою, включаючи правила, що допомагають диференціювати багатоваріантну ймовірність Гаусса.

Якщо у вас є випадковий вектор який є багатоваріантним нормальним із середнім вектором μ та матрицею коваріації Σ , то використовуйте рівняння (86) у матричній кулінарній книзі, щоб виявити, що градієнт вірогідності журналу L відносно μ дорівнюєyμΣLμ

∂L∂μ=−12(∂(y−μ)′Σ−1(y−μ)∂μ)=−12(−2Σ−1(y−μ))=Σ−1(y−μ)

Я залишу це вам ще раз розрізнити це питання і знайти відповідь .−Σ−1

В якості «додаткового кредиту», рівняння використання (57) і (61) , щоб знайти , що градієнт щодо єΣ

∂L∂Σ=−12(∂log⁡(|Σ|)∂Σ+∂(y−μ)′Σ−1(y−μ)∂Σ)=−12(Σ−1−Σ−1(y−μ)(y−μ)′Σ−1)

Я залишив безліч кроків, але я здійснив це виведення, використовуючи лише ідентичності, знайдені в кулінарній книзі матриці, тому я залишу це вам, щоб заповнити прогалини.

Я використовував ці рівняння балів для оцінки максимальної вірогідності, тому я знаю, що вони правильні :)


4
Great reference - was going to recommend it myself. Not a good pedagogical reference for someone who doesn't know matrix algebra though. The real challenge comes from actually working out Σ. A real pain.
— probabilityislogic

3
Another good source on matrix calculus is Magnus & Neudecker, amazon.com/…
— StasK

2
The equation's reference number has been changed (maybe due to a new edition). The new reference equation is 86.
— goelakash

2
I could be off-base here but I don't think this formula is correct. I've been using this with real examples and looking at their finite differences. It seems that the formula for ∂L∂Σ gives the correct values for the diagonal entries. However, the off-diagonal entries are half of what they should be.
— jjet

5

You need to make sure you properly take care of the repeated elements in Σ, otherwise you're derivatives will be incorrect. For example, (141) the Matrix Cookbook gives for a symmetric Σ the following derivatives

∂log⁡|Σ|∂Σ=2Σ−1−(Σ−1∘I)

And (14) of Differentiation of functions of covariance matrices gives

∂trace(Σ−1xx⊤)∂Σ=−2Σ−1xx⊤Σ−1+(Σ−1xx⊤Σ−1∘I)

where ∘ denotes the Hadmard product and for convenience we have defined x:=y−μ.

Note in particular this is not the same as when symmetricity of Σ is not imposed. As a result we have that

∂L∂Σ=−∂∂Σ12(Dlog⁡|2π|+log⁡|Σ|+x⊤Σ−1x))=−∂∂Σ12(log⁡|Σ|+trace(Σ−1xx⊤))=−12(2Σ−1−(Σ−1∘I)−2Σ−1xx⊤Σ−1+(Σ−1xx⊤Σ−1∘I))

where D denotes the dimension of x, y and μ and the derivative of Dlog⁡|2π| is 0

This ensures the i,jth element of ∂L∂Σ corresponds to ∂L∂Σij.


0

I tried to computationally verify @Macro's answer but found what appears to be a minor error in the covariance solution. He obtained

∂L∂Σ=−12(Σ−1−Σ−1(y−μ)(y−μ)′Σ−1)=A
However, it appears that the correct solution is actually
B=2A−diag(A)
The following R script provides a simple example in which the finite difference is calculated for each element of Σ. It demonstrates that A provides the correct answer only for diagonal elements while B is correct for every entry.
library(mvtnorm)

set.seed(1)

# Generate some parameters
p <- 4
mu <- rnorm(p)
Sigma <- rWishart(1, p, diag(p))[, , 1]

# Generate an observation from the distribution as a reference point
x <- rmvnorm(1, mu, Sigma)[1, ]

# Calculate the density at x
f <- dmvnorm(x, mu, Sigma)

# Choose a sufficiently small step-size
h <- .00001

# Calculate the density at x at each shifted Sigma_ij
f.shift <- matrix(NA, p, p)
for(i in 1:p) {
  for(j in 1:p) {
    zero.one.mat <- matrix(0, p, p)
    zero.one.mat[i, j] <- 1
    zero.one.mat[j, i] <- 1

    Sigma.shift <- Sigma + h * zero.one.mat
    f.shift[i, j] <- dmvnorm(x, mu, Sigma.shift)
  }
}

# Caluclate the finite difference at each shifted Sigma_ij
fin.diff <- (f.shift - f) / h

# Calculate the solution proposed by @Macro and the true solution
A <- -1/2 * (solve(Sigma) - solve(Sigma) %*% (x - mu) %*% t(x - mu) %*% solve(Sigma))
B <- 2 * A - diag(diag(A))

# Verify that the true solution is approximately equal to the finite difference
fin.diff
A * f
B * f

Thank you for your comment. I believe you interpret the notation differently than everyone else has, because you simultaneously change pairs of matching off-diagonal elements of Σ, thereby doubling the effect of the change. In effect you are computing a multiple of a directional derivative. There does appear to be a small problem with Macro's solution insofar as a transpose ought to be taken--but that would change nothing in the application to symmetric matrices.
— whuber
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.