Jak zdefiniować macierz jako dodatnią?

10

Próbuję zaimplementować algorytm EM dla następującego modelu analizy czynnikowej;

Wj=μ+Baj+ejforj=1,,n

gdzie oznacza p-wymiarowy wektor losowej, J jest P-wymiarowy wektor zmiennych utajonych i B jest macierzą PxQ parametrów.WjajB

W wyniku innych założeń zastosowanych w modelu wiem, że gdzie D jest macierzą wariancji kowariancji macierzy składników błędów e j , D = diag ( σ 2 1 , σ 2 2 , ..., σ 2 p ).WjN(μ,BB+D)DejDσ12σ22σp2

Dla algorytmu EM do pracy, robię iteracji kopułkowych obejmujące ocenę i D matryc i podczas tych iteracji jestem obliczania odwrotności B B ' + D w każdej iteracji przy użyciu nowych oszacowań B i D . Niestety w trakcie iteracji B B + D traci swoją pozytywną definitywność (ale nie powinno tak być, ponieważ jest to macierz wariancji-kowariancji) i ta sytuacja rujnuje zbieżność algorytmu. Moje pytania to:BDBB+DBDBB+D

  1. Czy ta sytuacja pokazuje, że coś jest nie tak z moim algorytmem, ponieważ prawdopodobieństwo powinno wzrosnąć na każdym etapie EM?

  2. Jakie są praktyczne sposoby na zdefiniowanie dodatniej macierzy?

Edycja: Obliczam odwrotność za pomocą lematu inwersji macierzy, który stwierdza, że:

(BB+D)1=D1D1B(Iq+BD1B)1BD1

gdzie prawa strona obejmuje tylko odwrotności macierzy .q×q

Andy Amos
źródło
1
Może to pomóc w lepszym zrozumieniu, w jaki sposób „traci” swoją pozytywną definitywność. To implikuje, że albo B B ' albo D (albo oba) stają się nie dodatnie. Trudno to zrobić, gdy B B ' jest obliczane bezpośrednio z B, a jeszcze trudniejsze, gdy D jest obliczane jako macierz diagonalna z kwadratami na przekątnej! BB+DBBDBBBD
whuber
@ whuber Zazwyczaj w FA , więc B B nigdy nie jest dodatnio określony. Ale (teoretycznie) B B + D powinno być, zakładając, że wszystkie σ 2 j są większe od zera. q<pBBBB+Dσj2
JMS
Jest to powiązane z tym pytaniem: stats.stackexchange.com/questions/6364/…
Gilead
1
BBσi2BBBBD
1
DIq+BD1Bq<p

Odpowiedzi:

3

Bqq<p

A1bAx=b

DBBDDBB+DD

σi2D

BB+D

JMS
źródło
Po drugie, w głównej części algorytmów nigdy nie chcesz faktycznie odwracać macierzy. Może być jednak konieczne na samym końcu, aby uzyskać standardowe szacunki. Zobacz ten post na blogu johndcook.com/blog/2010/01/19/dont-invert-that-matrix
Samsdram
Wartości macierzy D stają się coraz mniejsze wraz ze wzrostem liczby iteracji. Być może jest to problem, jak wskazałeś.
Andy Amos,
1
BBDσi2qBiq2σi2