Я пытаюсь реализовать алгоритм EM для следующей модели факторного анализа;
где - p-мерный случайный вектор, a j - это q-мерный вектор скрытых переменных, а - матрица параметров pxq.
В результате других предположений, использованных для модели, я знаю, что где D - ковариационная матрица дисперсии ошибочных членов e j , D = diag ( σ 2 1 , σ 2 2 , ..., σ 2 р ).
Для алгоритма EM к работе, я делаю итерации купольные с участием оценки и D матриц и в течение этих итераций я вычисляя обратное B B ' + D на каждой итерации , используя новые оценки B и D . К сожалению, в ходе итераций B B ′ + D теряет свою положительную определенность (но не должно, потому что это матрица дисперсии-ковариации), и эта ситуация разрушает сходимость алгоритма. Мои вопросы:
Показывает ли эта ситуация, что с моим алгоритмом что-то не так, поскольку вероятность должна увеличиваться на каждом шаге ЭМ?
Каковы практические способы сделать матрицу положительно определенной?
Редактировать: я вычисляю обратное с помощью леммы обращения матрицы, которая утверждает, что:
где правая часть включает в себя только обратные матрицы .