Jak pobrać pochodną wielowymiarowej gęstości normalnej?


35

Powiedzmy, że mam wielowymiarową normalną gęstość . Chcę uzyskać drugą (częściową) pochodną wrt . Nie wiem, jak pobrać pochodną macierzy.N(μ,Σ)μ

Wiki mówi, że weź pochodną element po elemencie do matrycy.

Pracuję z aproksymacją Laplace'a Tryb to .Θ = μ

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

θ^=μ

Dostałem jak do tego doszło?

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

Co zrobiłem:

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

Więc biorę pochodną wrt do , po pierwsze, jest transpozycja, po drugie, jest to macierz. Więc utknąłem.θ

Uwaga: jeśli mój profesor się z tym spotka, mam na myśli wykład.


1
częścią problemu może być to, że wyrażenie prawdopodobieństwa dziennika zawiera błąd - maszgdzie powinieneś mieć . Czy przez przypadek miałeś na myśli ? log ( | Σ | ) Σ - 1 = - ∂ 2|Σ|log⁡(|Σ|)Σ−1=−∂2∂θ2log⁡p(θ|y)
— Makro

Tak, masz rację, przepraszam. Dlaczego przed częściową pochodną jest znak ujemny?
— user1061210

Właśnie wyjaśniałem znak ujemny, ponieważ ujemną drugą pochodną jest obserwowana informacja o rybaku, która zwykle jest interesująca. Ponadto, według moich własnych obliczeń, stwierdzam, że∂2∂θ2log⁡p(θ|y)=−Σ−1
— Makro

Więc jaka jest ogólna procedura dla funkcji dyskretnej / ciągłej? Weź dziennik, napisz w formie rozszerzenia Taylora, różnicuj dwa razy wrt . Informacje Fishera ogólnie nie są prawdziwe w przypadku większości innych gęstości, prawda? θ
— użytkownik1061210

3
@ użytkownik Jak wskazałem, druga pochodna logarytmu musi mieć nie dodatnie wartości własne. Tak, istnieją powiązania między wariancjami a ujemnymi drugimi pochodnymi cząstkowymi, jak pokazuje teoria szacowania maksymalnego prawdopodobieństwa, informacje Fishera itp. - Makro wspomniał o tym wcześniej w tych komentarzach.
— whuber

Odpowiedzi:


66

W rozdziale 2 Matrix Cookbook znajduje się niezły przegląd rachunku macierzy, który daje wiele przydatnych tożsamości, które pomagają w rozwiązywaniu problemów związanych z prawdopodobieństwem i statystykami, w tym regułami, które pomagają rozróżnić wielowymiarowe prawdopodobieństwo Gaussa.

Jeśli masz losowy wektor który jest wielowymiarowy normalny ze średnim wektorem i macierzą kowariancji , użyj równania (86) w książce kucharskiej macierzy, aby ustalić, że gradient prawdopodobieństwo dziennika w odniesieniu do wynosiμ Σ L μyμΣLμ

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

Pozostawiam tobie, abyś to ponownie rozróżniał i znalazł odpowiedź na: .−Σ−1

Jako „dodatkowy kredyt” użyj równań (57) i (61), aby stwierdzić, że gradient względem wynosiΣ

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

Pominąłem wiele kroków, ale wykonałem to wyprowadzenie, używając tylko tożsamości znalezionych w macierzowej książce kucharskiej, więc zostawię to tobie, aby wypełnić luki.

Użyłem tych równań punktowych do oszacowania maksymalnego prawdopodobieństwa, więc wiem, że są poprawne :)


4
Świetne referencje - sam go polecę. Nie jest to dobre odniesienie pedagogiczne dla kogoś, kto nie zna algebry macierzy. Prawdziwe wyzwanie wiąże się z faktycznym opracowaniem . Prawdziwy ból. Σ
— probabilislogiczny

3
Innym dobrym źródłem na rachunku macierzowym jest Magnus i Neudecker, amazon.com/…
— StasK

2
Numer referencyjny równania został zmieniony (być może z powodu nowej edycji). Nowe równanie referencyjne to 86.
— Goelakash

2
Mógłbym tu być poza bazą, ale nie sądzę, aby ta formuła była poprawna. Używam tego z prawdziwymi przykładami i przyglądam się ich skończonym różnicom. Wygląda na to, że formuła dla podaje poprawne wartości dla wpisów po przekątnej. Jednak wpisy o przekątnej stanowią połowę tego, czym powinny być. ∂L∂Σ
— jjet

5

Musisz upewnić się, że odpowiednio zajmujesz się powtarzającymi się elementami w , w przeciwnym razie twoje pochodne będą niepoprawne. Na przykład (141) Matrix Cookbook podaje dla symetrycznego następujące pochodneΣΣΣ

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

I (14) Zróżnicowanie funkcji macierzy kowariancji daje

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

gdzie oznacza produkt Hadmarda i dla wygody zdefiniowaliśmy .∘x:=y−μ

Zwróć uwagę, że nie jest to to samo, co gdy nie jest narzucona symetryczność . W rezultacie mamy toΣ

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

gdzie oznacza wymiar , i oraz pochodnąwynosi 0DxyμDlog⁡|2π|

Zapewnia to, że element elementu odpowiada .i,jth∂L∂Σ∂L∂Σij


0

Próbowałem komputerowo zweryfikować odpowiedź @ Macro, ale znalazłem drobny błąd w rozwiązaniu kowariancji. Uzyskał Jednak wydaje się, że poprawne rozwiązanie to w rzeczywistości Poniższy skrypt R stanowi prosty przykład, w którym różnicę skończoną oblicza się dla każdego elementu . To pokazuje, żeB=2A-diag(A)ΣAB

∂L∂Σ=−12(Σ−1−Σ−1(y−μ)(y−μ)′Σ−1)=A
B=2A−diag(A)
ΣAzapewnia poprawną odpowiedź tylko dla elementów ukośnych, podczas gdy jest poprawny dla każdego wpisu.B
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

Dziękuję za Twój komentarz. Sądzę, że interpretujesz notację inaczej niż wszyscy inni, ponieważ jednocześnie zmieniasz pary pasujących elementów o przekątnej , podwajając w ten sposób efekt zmiany. W efekcie obliczasz wielokrotność pochodnej kierunkowej. Wydaje się, że istnieje mały problem z rozwiązaniem Macro, o ile należy podjąć transpozycję - ale to nie zmieni niczego w aplikacji na matryce symetryczne. Σ
— whuber
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.