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 ).Wj∼N(μ,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=D−1−D−1B(Iq+B′D−1B)−1B′D−1

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


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′+DBB′DBB′BD
— 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<pBB′BB′+Dσj2
— JMS

Jest to powiązane z tym pytaniem: stats.stackexchange.com/questions/6364/…
— Gilead

1
BB′σi2BB′BB′D

1
DIq+B′D−1Bq<p

Odpowiedzi:


3

Bqq<p

A−1bAx=b

DBB′DDBB′+DD

σi2D

BB′+D


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
BB′Dσi2∑qBiq2≈σi2
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.