Что говорит о моих данных неположительно определенная ковариационная матрица?


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.

Если err> 0, то сигма не является положительно определенной.

Что я могу сделать, чтобы оценить мои экспериментальные данные в более высоких измерениях? Это говорит мне что-нибудь полезное о моих данных?

Я начинающий в этой области, поэтому извиняюсь, если упустил что-то очевидное.


Похоже, ваши данные слишком редки для представлений высокой размерности. Планируете ли вы запустить регрессионные модели с этими данными?
Джонатан Тиле

Ответы:


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означает, что переменная была отброшена) и поиска соответствующих имен столбцов матрицы модели (удаляя столбец перехвата). Кстати, это не сработает, если нет коллинеарных терминов, поэтому требуется оператор if для проверки, что 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; СОУ (А, С)> 0; СОУ (В, С) <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.