Wie wird eine Ableitung der multivariaten Normaldichte genommen?

35

Angenommen, ich habe eine multivariate normale Dichte . Ich möchte die zweite (teilweise) Ableitung von . Ich bin mir nicht sicher, wie ich eine Ableitung einer Matrix nehmen soll.N(μ,Σ)μ

Wiki sagt, nimm das Derivat Element für Element in die Matrix.

Ich arbeite mit der Laplace-Approximation Der Modus ist .Θ = μ

logPN(θ)=logPN12(θθ^)TΣ1(θθ^).

θ^=μ

Mir wurde wie kam es dazu?

Σ1=2θ2logp(θ^|y),

Was ich getan habe:

logP(θ|y)=k2log2π12log|Σ|12(θθ^)TΣ1(θθ^)

Also nehme ich die Ableitung für , erstens gibt es eine Transponierung, zweitens ist es eine Matrix. Also stecke ich fest.θ

Hinweis: Wenn mein Professor darauf stößt, beziehe ich mich auf die Vorlesung.

user1061210
quelle
1
Teil Ihres Problems kann sein, dass Ihr Ausdruck für die Log-Wahrscheinlichkeit einen Fehler enthält - Sie habenwo solltest du haben . Meinten Sie zufällig auch ? log ( | Σ | ) Σ - 1 = - 2|Σ|log(|Σ|)Σ1=2θ2logp(θ|y)
Makro
Ja, Sie haben recht, tut mir leid. Warum steht vor der partiellen Ableitung ein negatives Vorzeichen?
user1061210
Ich habe nur das negative Vorzeichen klargestellt, weil die negative zweite Ableitung die beobachteten Fischerinformationen sind, die normalerweise von Interesse sind. Nach meiner eigenen Berechnung stelle ich außerdem fest, dass 2θ2logp(θ|y)=Σ1
Makro
Wie ist also die allgemeine Vorgehensweise für diskrete / kontinuierliche Funktionen? Nehmen Sie ein Protokoll, schreiben Sie in Taylor-Expansionsform, differenzieren Sie zweimal mit . Fisher Info ist in der Regel nicht wahr, die meisten anderen Dichten, oder? θ
user1061210
3
@user Als ich darauf hinwies, die zweite Ableitung des Logarithmus muss nicht-positive Eigenwerte. Ja, es gibt Zusammenhänge zwischen Varianzen und negativen zweiten partiellen Ableitungen, wie die Theorie der Maximum-Likelihood-Schätzung, Fisher-Informationen usw. zeigt - Macro hat in diesen Kommentaren bereits darauf hingewiesen.
whuber

Antworten:

66

In Kapitel 2 des Matrix-Kochbuchs finden Sie eine schöne Übersicht über Matrix-Kalkül-Inhalte, die eine Menge nützlicher Identitäten enthält, die bei Problemen mit Wahrscheinlichkeits- und Statistikmessungen hilfreich sind, einschließlich Regeln zur Unterscheidung der multivariaten Gaußschen Wahrscheinlichkeit.

Wenn Sie einen Zufallsvektor , der multivariate Normalen mit dem mittleren Vektor und der Kovarianzmatrix , verwenden Sie Gleichung (86) im Matrixkochbuch, um herauszufinden, dass der Gradient der logarithmischen Wahrscheinlichkeit in Bezug auf istyΣ L μμΣLμ

Lμ=12((yμ)Σ1(yμ)μ)=12(2Σ1(yμ))=Σ1(yμ)

Ich überlasse es Ihnen, dies noch einmal zu differenzieren und die Antwort zu finden: .Σ1

Verwenden Sie als "extra credit" die Gleichungen (57) und (61), um herauszufinden, dass der Gradient in Bezug auf istΣ

LΣ=12(log(|Σ|)Σ+(yμ)Σ1(yμ)Σ)=12(Σ1Σ1(yμ)(yμ)Σ1)

Ich habe viele der Schritte ausgelassen, aber ich habe diese Ableitung nur unter Verwendung der im Matrix-Kochbuch gefundenen Identitäten vorgenommen, sodass ich es Ihnen überlassen werde, die Lücken auszufüllen.

Ich habe diese Bewertungsgleichungen für die Schätzung der maximalen Wahrscheinlichkeit verwendet, daher weiß ich, dass sie korrekt sind :)

Makro
quelle
4
Tolle Referenz - würde es mir empfehlen. Keine gute pädagogische Referenz für jemanden, der die Matrixalgebra nicht kennt. Die eigentliche Herausforderung besteht darin, tatsächlich . Ein echter Schmerz. Σ
Wahrscheinlichkeitsrechnung
3
Eine weitere gute Quelle für Matrixrechnung ist Magnus & Neudecker, amazon.com/…
StasK
2
Die Referenznummer der Gleichung wurde geändert (möglicherweise aufgrund einer neuen Ausgabe). Die neue Referenzgleichung lautet 86.
goelakash
2
Ich könnte hier off-base sein, aber ich denke nicht, dass diese Formel richtig ist. Ich habe dies mit realen Beispielen verwendet und mir ihre endlichen Unterschiede angesehen. Es scheint, dass die Formel für gibt die richtigen Werte für die Diagonaleinträge. Die nicht diagonalen Einträge sind jedoch die Hälfte dessen, was sie sein sollten. LΣ
Jjet
5

Sie müssen sicherstellen, dass Sie sich ordnungsgemäß um die wiederholten Elemente in. , andernfalls sind Ihre Ableitungen falsch. Zum Beispiel, (141) , das Matrix - Kochbuch gibt für eine symmetrische Σ der folgenden DerivateΣΣ

log|Σ|Σ=2Σ1(Σ1I)

Und (14) der Differenzierung der Funktionen von Kovarianzmatrizen gibt

trace(Σ1xx)Σ=2Σ1xxΣ1+(Σ1xxΣ1I)

wobei das Hadmard-Produkt bezeichnet und wir der Einfachheit halber x : = y - μ definiert haben .x:=yμ

Man beachte insbesondere, dass dies nicht dasselbe ist, als wenn keine Symmetrie von auferlegt wird. Als Ergebnis haben wir dasΣ

LΣ=Σ12(Dlog|2π|+log|Σ|+xΣ1x))=Σ12(log|Σ|+trace(Σ1xx))=12(2Σ1(Σ1I)2Σ1xxΣ1+(Σ1xxΣ1I))

wobei die Dimension von x , y und μ und die Ableitung von D log | bezeichnet 2 π | ist 0DxyμDlog|2π|

Damit wird die Element Li,jth entsprichtLLΣ .LΣij

Lawrence Middleton
quelle
0

Ich habe versucht, die Antwort von @ Macro rechnerisch zu überprüfen, habe aber festgestellt, dass die Kovarianzlösung einen geringfügigen Fehler enthält. Er erhielt

LΣ=12(Σ1Σ1(yμ)(yμ)Σ1)=A
B=2Adiag(A)
ΣAB ist für jeden Eintrag korrekt.
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
jjet
quelle
Σ