У меня есть несколько многовариантных наблюдений, и я хотел бы оценить плотность вероятности по всем переменным. Предполагается, что данные нормально распределены. При небольших количествах переменных все работает так, как я ожидал, но переход к большим числам приводит к тому, что ковариационная матрица становится не положительно определенной.
Я уменьшил проблему в 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, то сигма не является положительно определенной.
Что я могу сделать, чтобы оценить мои экспериментальные данные в более высоких измерениях? Это говорит мне что-нибудь полезное о моих данных?
Я начинающий в этой области, поэтому извиняюсь, если упустил что-то очевидное.
Ответы:
Ковариационная матрица не является положительно определенной, потому что она является единственной. Это означает, что по крайней мере одна из ваших переменных может быть выражена как линейная комбинация других. Вам не нужны все переменные, так как значение по крайней мере одной может быть определено из подмножества других. Я бы предложил добавлять переменные последовательно и проверять ковариационную матрицу на каждом шаге. Если новая переменная создает особенность, отбросьте ее и перейдите к следующей. В конце концов вы должны иметь подмножество переменных с положительной определенной ковариационной матрицей.
источник
regress
команда Stata автоматически удалит дополнительные переменные, когда некоторые из них коллинеарны (и ее выходные данные могут быть сохранены в форме, которая идентифицирует эти переменные и помечает неколлинеарное подмножество для будущего использования). Однако вероятное осложнение заключается в том, что переменные не обязательно должны быть коллинеарными, но они могут быть достаточно близкими, чтобы распространение ошибки с плавающей запятой в разложении Холецкого приводило к отрицательным оценкам собственных значений, делая переменные коллинеарными для всех практических целей.R
также есть - регрессионные модели автоматически отбрасывают переменные из линейного предиктора, если есть точная коллинеарность.g
ваша линейная модель, тоcolnames(model.matrix(g))[-which(is.na(coef(g))==TRUE)][-1]
должны возвращать имена предикторов, введенных в модель, которые не являются точно коллинеарными. Это работает путем проверки того, какие коэффициенты былиNA
(этоR
означает, что переменная была отброшена) и поиска соответствующих имен столбцов матрицы модели (удаляя столбец перехвата). Кстати, это не сработает, если нет коллинеарных терминов, поэтому требуется оператор if для проверки, чтоwhich(is.na(coef(g))==TRUE)
он не пустой :)Это действительный результат. Оценка для этого компонента ковариационной матрицы равна нулю, что вполне может быть правдой! Это может привести к трудностям вычислений, но некоторые алгоритмы в R (я не знаю, о Matlab) могут справиться с этим. Я не понимаю, почему люди расстраиваются из-за этого и настаивают на подборе более экономных моделей.
источник
Одна вещь, которая, как я думаю, не рассматривается выше, заключается в том, что возможно вычислить неположительно определенную ковариационную матрицу из эмпирических данных, даже если ваши переменные не являются абсолютно линейно связанными. Если у вас недостаточно данных (особенно если вы пытаетесь построить многомерную ковариационную матрицу из набора парных сравнений) или если ваши данные не соответствуют многомерному нормальному распределению, то вы можете столкнуться с парадоксальными отношениями среди переменных, таких как cov (A, B)> 0; СОУ (А, С)> 0; СОУ (В, С) <0.
В таком случае нельзя подойти к многомерному нормальному PDF, так как нет многомерного нормального распределения, отвечающего этим критериям - cov (A, B)> 0 и cov (A, C)> 0 обязательно подразумевают, что cov (B, C) )> 0.
Все это означает, что неположительная определенная матрица не всегда означает, что вы включаете коллинеарные переменные. Это также может указывать на то, что вы пытаетесь смоделировать отношения, которые невозможны с учетом выбранной вами параметрической структуры.
источник