Що означає непозитивна визначена матриця коваріації про мої дані?


21

Я маю ряд багатоваріантних спостережень і хотів би оцінити щільність ймовірності для всіх змінних. Передбачається, що дані зазвичай розподіляються. При малій кількості змінних все працює так, як я очікував, але переміщення до більшої кількості призводить до того, що матриця коваріації стає не позитивно визначеною.

Я звів проблему в Matlab до:

load raw_data.mat; % matrix number-of-values x number of variables
Sigma = cov(data);
[R,err] = cholcov(Sigma, 0); % Test for pos-def done in mvnpdf.

Якщо помилка> 0, то Sigma не є позитивно визначеною.

Чи можу я щось зробити для того, щоб оцінити свої експериментальні дані за більш високими розмірами? Чи розповідає це мені щось корисне щодо моїх даних?

Я дещо новачок у цій галузі, тому вибачаюся, якщо пропустив щось очевидне.


Це здається, що ваші дані занадто рідкісні для представлення високих розмірів. Ви плануєте використовувати регресійні моделі з цими даними?
Джонатан Тіле

Відповіді:


30

Коваріаційна матриця не є позитивно визначеною, оскільки є сингулярною. Це означає, що принаймні одна з ваших змінних може бути виражена як лінійна комбінація інших. Вам не потрібні всі змінні, оскільки значення принаймні однієї можна визначити з підмножини інших. Я б запропонував додавати змінні послідовно і перевіряти матрицю коваріації на кожному кроці. Якщо нова змінна створює особливість, скиньте її та перейдіть до наступної. Врешті-решт, у вас має бути підмножина змінних із визначеною коваріаційною матрицею.


19
+1. Варто також зазначити, що всі матриці коваріації є певними позитивними, а всі позитивні певні матриці - матрицею коваріації деякого багатоваріантного розподілу. Тому, сказати "непозитивна певна коваріаційна матриця" - це трохи оксиморон. Здається, ОП насправді просто говорив про те, що зразок коваріаційної матриці був сингулярним, що може відбуватися саме з колінеарності (як ви вже сказали) або коли кількість спостережень менша за кількість змінних .
Макрос

3
Деякі програмні засоби статистики можуть бути спонукані автоматично виправляти цю проблему. Наприклад, regressкоманда Stata автоматично скидає зайві змінні, коли деякі є колінеарними (і її вихід може бути збережений у формі, яка ідентифікує ці змінні та позначає неколінеарний підмножина для подальшого використання). Однак, ймовірним ускладненням є те, що змінні можуть необов'язково бути колінеарними, але вони можуть бути досить близькими, що поширення помилки з плаваючою комою при розкладі Чолеського дає негативні оцінки власних значень, що робить змінні колінеарними для всіх практичних цілей.
whuber

1
@whuber, аналогічна функціональність Rє і в регресійних моделях автоматично відміняють змінні від лінійного предиктора, якщо є точна колінеарність.
Макрос

2
@whuber, це трохи хакі, але ви можете зробити подібний трюк. Якщо gваша лінійна модель, то colnames(model.matrix(g))[-which(is.na(coef(g))==TRUE)][-1]слід повертати імена предикторів, введених у модель, не зовсім колінеарних. Це працює, перевіряючи, які коефіцієнти були NA(саме так Rвказується, що змінну було скинуто), і знаходити відповідні назви стовпців матриці моделі (видаляючи стовпчик перехоплення). До речі, це не спрацює, якщо немає колінеарних термінів, тож якщо потрібна заявка, щоб перевірити, що which(is.na(coef(g))==TRUE)це не порожньо :)
Макрос

8
@Macro Усі матриці коваріації є позитивними напіввизначеними. Коли вони є сингулярними, вони не є позитивними, тому що x'Ax> 0 для всіх векторів x для матриці A позитивно визначеною. У однині випадку x'Ax = 0 зустрічається для деякого x.
Майкл Р. Черник

0

Це дійсний результат. Оцінка для цієї складової матриці коваріації дорівнює нулю, що може бути правдивим! Це може призвести до складних обчислень, але деякі алгоритми в R (я не знаю про Matlab) можуть це впоратися. Я не розумію, чому люди засмучуються з цього приводу і наполягають на встановленні більш пармоніальних моделей.


-1

Один момент, який, на мою думку, не розглядається вище, полягає в тому, що можна обчислити непозитивну певну коваріаційну матрицю з емпіричних даних, навіть якщо ваші змінні не є ідеально лінійно пов'язаними. Якщо у вас немає достатньої кількості даних (особливо, якщо ви намагаєтеся побудувати матрицю коваріації великої розміри з купки парних порівнянь) або якщо ваші дані не дотримуються багатовимірного нормального розподілу, ви можете закінчити парадоксальні зв'язки серед змінних, таких як cov (A, B)> 0; cov (A, C)> 0; cov (B, C) <0.

У такому випадку не можна помістити багатоваріантний звичайний PDF, оскільки немає багатоваріантного нормального розподілу, який би відповідав цим критеріям - cov (A, B)> 0 і cov (A, C)> 0 обов'язково означає, що cov (B, C )> 0.

Все це означає, що непозитивна визначена матриця не завжди означає, що ви включаєте колінеарні змінні. Це також може підказати, що ви намагаєтесь моделювати відносини, які неможливо, враховуючи обрану параметричну структуру.


1
Ваша відповідь неправильна на стільки рівнів. Так чи інакше, розглянемо коваріаційну матрицю з значеннями 1 по діагоналі та 1/2 для cov (1-й та 2-й компоненти), 1/2 для cov (1-й та 3-й компоненти) та -1/2 для cov (2-й та 3-й компоненти) . Матриця коваріації має власне значення приблизно 0,15, 1,35, 1,50, що забезпечує контрприклад до твердження у другому абзаці.
Марк Л. Стоун

@ MarkL.Stone, ви маєте рацію щодо другого абзацу, але мені цікаво, чи щось із цього неоднозначне і чи можна його зберегти під щедрою інтерпретацією. Наприклад, мені цікаво, якщо в пункті 1 "не вистачає даних ... намагання побудувати матрицю коваріації великої розміри з групи парних порівнянь" стосується наявності безлічі відсутніх даних та використання парних повних спостережень для обчислення кожного елемента в матриці коваріації.
gung - Відновіть Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.