Як зробити матрицю позитивною?


10

Я намагаюся реалізувати алгоритм ЕМ для наступної моделі аналізу факторів;

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

де - р-розмірний випадковий вектор, - q-мірний вектор прихованих змінних і - матриця pxq параметрів.а j БWjajB

У результаті інших припущень, використаних для моделі, я знаю, що де - матриця дисперсії помилок термінів , = diag ( σ 2 1 , , ..., ).D e j DWjN(μ,BB+D)DejDσ12 σ 2 pσ22σp2

Для алгоритму EM до роботи, я роблю ітерації купольні з участю оцінки і матриць і в протягом цих ітерацій я обчислення зворотної на кожній ітерації , використовуючи нові оцінки і . На жаль, під час ітерацій втрачає свою позитивну визначеність (але це не повинно, оскільки це матриця дисперсії-коваріації), і ця ситуація руйнує конвергенцію алгоритму. Мої запитання:D B B + D B D B B + DBDBB+DBDBB+D

  1. Чи показує ця ситуація, що в моєму алгоритмі щось не так, оскільки ймовірність повинна збільшуватися на кожному кроці ЕМ?

  2. Які практичні способи зробити матрицю позитивною?

Редагувати: Обчислюю інверсію, використовуючи матричну інверсійну лему, яка говорить, що:

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

де права сторона включає лише обертання матриць .q×q


1
Це може допомогти зрозуміти, якBB+D "втрачає" свою позитивну визначеність. Це означає, що або або D (або обидва) стають непозитивними. Це важко зробити, коли B B ' обчислюється безпосередньо з B, а ще важче, коли D обчислюється як діагональна матриця з квадратами на її діагоналі! BBDBBBD
whuber

@whuber Зазвичай у FA , тому B B ' ніколи не є позитивним певним. Але (теоретично) B B + D повинно бути, якщо вважати, що σ 2 j 's всі більше нуля. q<pBBBB+Dσj2
JMS

Це пов’язано з цим питанням: stats.stackexchange.com/questions/6364/…
Gilead

1
@JMS Дякую Я думаю, що мій коментар досі актуальний: може бути невизначеним, але все ж не повинно мати жодних негативних власних значень. Проблеми виникнуть, коли найменша з σ 2 i порівнянна з числовою помилкою в алгоритмі інверсії. Якщо це так, то одне рішення застосувати СВД для B B ' і нулю поза дійсно малих (або негативних) власних значень, то перераховувати B B ' і додати D . BBσi2BBBBD
whuber

1
Це повинні бути маленькі елементи в ; I q + B D - 1 B має бути добре обумовлений інакше, оскільки q < pDIq+BD1Bq<p
JMS

Відповіді:


3

Гаразд, оскільки ви робите FA, я припускаю, що повна колона q і q < p . Нам потрібно ще кілька деталей. Це може бути числова проблема; це також може бути проблемою з вашими даними.Bqq<p

Як ви обчислюєте зворотне? Вам потрібен зворотній явний вигляд, чи можете повторно виразити обчислення як рішення лінійної системи? (тобто, щоб отримати вирішити A x = b для x, що, як правило, швидше і стабільніше)A1bAx=b

Що відбувається з ? Чи справді оцінки незначні / 0 / негативні? У певному сенсі це є критичною ланкою, оскільки B B ' , звичайно, не вистачає рангу і визначає сингулярну матрицю коваріації перед додаванням D , тому ви не можете її інвертувати. Додавання позитивної діагональної матриці D технічно робить її повноцінною, але B B + D все ще може бути жахливо поганим, якщо D малий.DBBDDBB+DD

Часто оцінка ідіосинкратичних варіацій (ваш , діагональні елементи D ) майже до нуля або навіть негативні; це називаються випадками Хейвуда. Див., Наприклад, http://www.technion.ac.il/docs/sas/stat/chap26/sect21.htm (будь-який текст FA повинен також обговорювати це, це дуже стара і відома проблема). Це може бути наслідком неправильної специфікації моделі, невдалої удачі, невдачі, спалахів сонячної енергії ... MLE особливо схильний до цієї проблеми, тому якщо ваш алгоритм ЕМ призначений для виходу з MLE на вигляд.σi2D

Якщо ваш алгоритм ЕМ наближається до режиму з такими оцінками , я думаю, що втратить свою позитивну визначеність. Є різні рішення; особисто я вважаю за краще байєсівський підхід, але навіть тоді вам потрібно бути обережними зі своїми пріорами (неналежні пріорі або навіть власні пріори із занадто великою масою близько 0 можуть мати ту ж проблему з тієї самої причини)BB+D


Дозвольте зазначити, що в основній частині алгоритмів ви ніколи не хочете фактично інвертувати матрицю. Можливо, вам знадобиться в самому кінці, щоб отримати стандартні оцінки. Дивіться це повідомлення в блозі johndcook.com/blog/2010/01/19/dont-invert-that-matrix
Samsdram

Значення матриці D стають меншими, оскільки кількість ітерацій збільшується. Можливо, це проблема, як ви вказали.
Енді Амос

1
@Andy Amos: Я б став на це гроші. Як @whuber зазначає, що майже неможливо, щоб мав негативні власні значення, якщо ви його обчислюєте безпосередньо, а нулі (від дефіциту за рангом) слід подбати про це, додаючи D з моменту його позитивної діагоналі - якщо тільки деякі з них елементів справді мало. Спробуйте згенерувати деякі дані з моделі , де σ 2 я досить великий і Σ д B 2 я дσ 2 я . Чим більше даних, тим краще, щоб оцінки були точними та стабільними. Це принаймні скаже вам, чи є проблема у вашій реалізації. BBDσi2qBiq2σi2
JMS
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.