exponenta event banner

robustcov

Надежная многомерная ковариация и средняя оценка

Описание

пример

sig = robustcov(x) возвращает оценку надежной ковариации sig многомерных данных, содержащихся в x.

[sig,mu] = robustcov(x) также возвращает оценку надежного среднего значения минимального ковариационного детерминанта (MCD), mu.

[sig,mu,mah] = robustcov(x) также возвращает надежные расстояния mah, вычисленные как расстояния Махаланобиса наблюдений с использованием надежных оценок среднего и ковариации.

[sig,mu,mah,outliers] = robustcov(x) также возвращает индексы наблюдений, сохраненные в качестве отклонений в выборке данных, outliers.

пример

[sig,mu,mah,outliers,s] = robustcov(x) также возвращает структуру s содержит информацию об оценке.

пример

[___] = robustcov(x,Name,Value) возвращает любой из аргументов, показанных в предыдущих синтаксисах, используя дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары. Например, можно указать, какой надежный оценщик использовать, или метод запуска для аттракторов.

Примеры

свернуть все

Используйте гауссову копулу для генерации случайных точек данных из двумерного распределения.

rng default
rho = [1,0.05;0.05,1];
u = copularnd('Gaussian',rho,50);

Измените 5 случайно выбранных наблюдений на отклонения.

noise = randperm(50,5);
u(noise,1) = u(noise,1)*5;

Вычислите надежные ковариационные матрицы, используя три доступных метода: Fast-MCD, Orthogonalized Gnanadesikan-Kettenring (OGK) и Olive-Hawkins.

[Sfmcd, Mfmcd, dfmcd, Outfmcd] = robustcov(u);
[Sogk, Mogk, dogk, Outogk] = robustcov(u,'Method','ogk');
[Soh, Moh, doh, Outoh] = robustcov(u,'Method','olivehawkins');

Рассчитайте классические значения расстояния для данных образца с помощью измерения Махаланобиса.

d_classical = pdist2(u, mean(u),'mahal');
p = size(u,2);
chi2quantile = sqrt(chi2inv(0.975,p));

Создайте графики DD для каждого метода расчета надежной ковариации.

figure
subplot(2,2,1)
plot(d_classical, dfmcd, 'o')
line([chi2quantile, chi2quantile], [0, 30], 'color', 'r')
line([0, 6], [chi2quantile, chi2quantile], 'color', 'r')
hold on
plot(d_classical(Outfmcd), dfmcd(Outfmcd), 'r+')
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('DD Plot, FMCD method')
hold off

subplot(2,2,2)
plot(d_classical, dogk, 'o')
line([chi2quantile, chi2quantile], [0, 30], 'color', 'r')
line([0, 6], [chi2quantile, chi2quantile], 'color', 'r')
hold on
plot(d_classical(Outogk), dogk(Outogk), 'r+')
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('DD Plot, OGK method')
hold off

subplot(2,2,3)
plot(d_classical, doh, 'o')
line([chi2quantile, chi2quantile], [0, 30], 'color', 'r')
line([0, 6], [chi2quantile, chi2quantile], 'color', 'r')
hold on
plot(d_classical(Outoh), doh(Outoh), 'r+')
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('DD Plot, Olive-Hawkins method')
hold off

Figure contains 3 axes. Axes 1 with title DD Plot, FMCD method contains 4 objects of type line. Axes 2 with title DD Plot, OGK method contains 4 objects of type line. Axes 3 with title DD Plot, Olive-Hawkins method contains 4 objects of type line.

На DD-графике точки данных имеют тенденцию объединяться по прямой, проходящей через начало координат. Точки, которые далеко удалены от этой линии, как правило, считаются отклонениями. На каждом из предыдущих графиков красный символ «+» указывает точки данных, которые robustcov считает себя отклонителями.

В этом примере показано, как использовать robustcov для оценки данных выборки для многомерного нормального или другого эллиптически-контурного (EC) распределения.

Создание данных случайной выборки из многомерного нормального распределения. Вычислите расстояния Махаланобиса для надежных оценок ковариации (с использованием метода Олива-Хокинса) и классических оценок ковариации.

rng('default')
x1 = mvnrnd(zeros(1,3),eye(3),200);
[~, ~, d1] = robustcov(x1,'Method','olivehawkins');
d_classical1 = pdist2(x1,mean(x1),'mahalanobis');

Создание данных случайной выборки из эллиптически-контурного (EC) распределения. Вычислите расстояния Махаланобиса для надежных оценок ковариации (с использованием метода Олива-Хокинса) и классических оценок ковариации.

mu1 = [0 0 0];
sig1 = eye(3);
mu2 = [0 0 0];
sig2 = 25*eye(3);
x2 = [mvnrnd(mu1,sig1,120);mvnrnd(mu2,sig2,80)];
[~, ~, d2] = robustcov(x2, 'Method','olivehawkins');
d_classical2 = pdist2(x2, mean(x2), 'mahalanobis');

Генерируйте данные случайной выборки из многомерного логнормального распределения, которое не является ни многомерным нормальным, ни эллиптически-контурным. Вычислите расстояния Махаланобиса для надежных оценок ковариации (с использованием метода Олива-Хокинса) и классических оценок ковариации.

x3 = exp(x1);
[~, ~, d3] = robustcov(x3, 'Method','olivehawkins');
d_classical3 = pdist2(x3, mean(x3), 'mahalanobis');

Создайте D-D-график для каждого из трех наборов образцов данных для сравнения.

figure
subplot(2,2,1)
plot(d_classical1,d1, 'o')
line([0 4.5], [0, 4.5])
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('DD Plot, Multivariate Normal')

subplot(2,2,2)
plot(d_classical2, d2, 'o')
line([0 18], [0, 18])
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('DD Plot, Elliptically-Contoured')

subplot(2,2,3)
plot(d_classical3, d3, 'o')
line([0 18], [0, 18])
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('DD Plot, 200 Lognormal cases')

Figure contains 3 axes. Axes 1 with title DD Plot, Multivariate Normal contains 2 objects of type line. Axes 2 with title DD Plot, Elliptically-Contoured contains 2 objects of type line. Axes 3 with title DD Plot, 200 Lognormal cases contains 2 objects of type line.

Для данных с многомерным нормальным распределением (как показано в левом верхнем углу) точки на графике следуют прямой, 45-градусной линии, проходящей от начала координат. Для данных с эллиптически-контурным распределением (как показано в правом верхнем углу) точки на графике следуют по прямой линии, но не под углом 45 градусов к началу координат. Для логнормального распределения (как показано в левом нижнем углу) точки на графике не следуют прямой линии.

Трудно идентифицировать какой-либо шаблон на логнормальном графике распределения, поскольку большинство точек находятся в левом нижнем углу графика. Используйте график взвешенного DD для увеличения этого угла и отображения элементов, которые скрыты при наличии больших надежных расстояний.

d3_weighted = d3(d3 < sqrt(chi2inv(0.975,3)));
d_classical_weighted = d_classical3(d3 < sqrt(chi2inv(0.975,3)));

Добавьте четвертый вложенный график к рисунку, чтобы показать результаты процесса взвешивания логнормально распределенных данных.

subplot(2,2,4)
plot(d_classical_weighted, d3_weighted, 'o')
line([0 3], [0, 3])
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('Weighted DD Plot, 200 Lognormal cases')

Figure contains 4 axes. Axes 1 with title DD Plot, Multivariate Normal contains 2 objects of type line. Axes 2 with title DD Plot, Elliptically-Contoured contains 2 objects of type line. Axes 3 with title DD Plot, 200 Lognormal cases contains 2 objects of type line. Axes 4 with title Weighted DD Plot, 200 Lognormal cases contains 2 objects of type line.

Масштаб на этом графике показывает, что он представляет увеличенный вид исходного DD-графика для логнормальных данных. Этот вид более четко показывает отсутствие узора на графике, что указывает на то, что данные не являются ни многомерными нормальными, ни эллиптически контурными.

Используйте гауссову копулу для генерации случайных точек данных из двумерного распределения.

rng default
rho = [1,0.05;0.05,1];
u = copularnd('Gaussian',rho,50);

Измените 5 случайно выбранных наблюдений на отклонения.

noise = randperm(50,5);
u(noise,1) = u(noise,1)*5;

Визуализируйте двумерные данные с помощью графика рассеяния.

figure
scatter(u(:,1),u(:,2))

Figure contains an axes. The axes contains an object of type scatter.

Большинство точек данных отображаются в левой части графика. Однако некоторые точки данных появляются дальше вправо. Эти точки являются возможными отклонениями, которые могут повлиять на вычисление ковариационной матрицы.

Сравните классические и надежные ковариационные матрицы.

c = cov(u)  
c = 2×2

    0.5523    0.0000
    0.0000    0.0913

rc = robustcov(u)
rc = 2×2

    0.1117    0.0364
    0.0364    0.1695

Классические и надежные ковариационные матрицы различаются, потому что отклонения, присутствующие в данных выборки, влияют на результаты.

Определите и постройте график точек данных, которые robustcov рассматривает отклонения.

[sig,mu,mah,outliers] = robustcov(u);
figure
gscatter(u(:,1),u(:,2),outliers,'br','ox')
legend({'Not outliers','Outliers'})

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Not outliers, Outliers.

robustcov идентифицирует точки данных в правой части графика как потенциальные отклонения и обрабатывает их соответствующим образом при вычислении надежной ковариационной матрицы.

Входные аргументы

свернуть все

Выборочные данные, используемые для оценки надежной ковариационной матрицы, заданной как матрица числовых значений. x является матрицей n-by-p, где каждая строка является наблюдением, а каждый столбец является переменной.

robustcov удаляет любые строки с отсутствующими предикторными значениями при вычислении надежной ковариационной матрицы.

Типы данных: single | double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Method','ogk','NumOGKIterations',1 указывает надежный оценщик как метод ортогонализированного гнанадесикана-кеттенринга и устанавливает число итераций ортогонализации равным 1.
Для всех оценщиков

свернуть все

Надежный оценщик, указанный как один из следующих.

ИмяСтоимость
'fmcd'Метод FAST-MCD (минимальный определитель ковариации)
'ogk'Ортогонализированная оценка Gnanadesikan-Kettenring (OGK)
'olivehawkins'Методы алгоритма концентрации, семейство быстрых, последовательных и высокоустойчивых методов

Пример: 'Method','ogk'

Только для методов FMCD и OliveHawkins

свернуть все

Доля отклонения, указанная как пара, разделенная запятыми, состоящая из 'OutlierFraction' и числовое значение в диапазоне [0,0,5]. Значение 1 - OutleerFraction определяет долю наблюдений, над которой минимизируется определитель ковариации.

Алгоритм выбирает подвыбор размера h = потолок (n + p + 1 )/2), где n - количество наблюдений и p - количество измерений. OutlierFraction является значением, для которого достигается максимально возможная разбивка, и управляет размером подмножеств h, над которыми минимизируется определитель ковариации. Затем алгоритм выбирает h приблизительно равным (1 - OutleerFraction) × n наблюдениям за подмножеством.

Пример: 'OutlierFraction',0.25

Типы данных: single | double

Количество испытаний, указанное как пара, разделенная запятыми, состоящая из 'NumTrials' и положительное целое значение.

Если 'Method' является 'fmcd', то NumTrials - число случайных подвыборок размера (p + 1), взятых из данных выборки в качестве начальных точек в алгоритме. p - количество измерений в данных образца. В этом случае значение по умолчанию для NumTrials составляет 500.

Если 'Method' является 'olivehawkins', то NumTrials - количество используемых пробных посадок или аттракторов. В этом случае значение по умолчанию для NumTrials равно 2. Эта опция полезна только для недетерминированных запусков.

Пример: 'NumTrials',300

Типы данных: single | double

Только для метода FMCD

свернуть все

Флаг для применения коэффициента коррекции малой выборки, указанного как пара, разделенная запятыми, состоящая из 'BiasCorrection' и либо 1 или 0. A 1 значение указывает, что robustcov корректирует смещение в оценке ковариации для небольших выборок. A 0 значение указывает, что robustcov не применяет эту поправку.

Пример: 'BiasCorrection',0

Типы данных: logical

Только для метода OGK

свернуть все

Количество итераций ортогонализации, указанных как пара, разделенная запятыми, состоящая из 'NumOGKIterations' и положительное целое значение. Обычно это значение устанавливается равным 1 или 2, и дальнейшие шаги вряд ли улучшат оценку.

Пример: 'NumIter',1

Типы данных: single | double

Функция для вычисления одномерных надежных оценок, указанная как пара, разделенная запятыми, состоящая из 'UnivariateEstimator' и одно из следующих.

ИмяСтоимость
'tauscale'Используйте «тау-шкалу» оценки Йохая и Замара, которая является усеченным стандартным отклонением и взвешенным средним.
'qn'Используйте оценку шкалы Qn Круса и Руссея.

Пример: 'UnivariateEstimator','qn'

Только для метода OliveHawkins

свернуть все

Метод повторного взвешивания на шаге эффективности, определяемый как разделенная запятыми пара, состоящая из 'ReweightingMethod' и одно из следующих.

ИмяСтоимость
'rfch'Использует два шага повторного взвешивания. Это стандартный метод повторного взвешивания для повышения эффективности.
'rmvn'Перевесной многомерный нормаль. Использует два шага переутяжеления, которые могут быть полезны для оценки истинной ковариационной матрицы при различных конфигурациях отклонений, когда чистые данные являются многомерными нормальными.

Пример: 'ReweightingMethod','rmvn'

Количество стадий концентрации, указанное как разделенная запятыми пара, состоящая из 'NumConcentrationSteps' и положительное целое значение.

Пример: 'NumConcentrationSteps',8

Типы данных: single | double

Метод запуска для каждого аттрактора, указанный как разделенная запятыми пара, состоящая из 'Start' и одно из следующих.

ИмяСтоимость
'classical'В качестве начала используйте классический оценщик. Это аттрактор ДГК, который, используемый самостоятельно, известен как оценщик ДГК.
'medianball'В качестве начала используйте средний шар. Средний шар равен (med(x),eye(p)). Таким образом, 50% случаев, наиболее удаленных на евклидовом расстоянии от медианы выборки, обрезаны для вычисления начала МБ. Это аттрактор МБ, который, используемый сам по себе, известен как оценщик МБ.
'elemental'Аттрактор генерируется концентрацией, где старт является случайно выбранным элементным стартом: классический оценщик применяется к случайно выбранному «элементарному множеству» из p + 1 случаев. Этот «элементный» аттрактор является вычислительно эффективным, но страдает теоретическими недостатками, так как является непоследовательным и нулевым пробоем.

По умолчанию аттрактор выбирается следующим образом: Если один из аттракторов 'medianball', то любой аттрактор, чья оценка местоположения имеет большее евклидово расстояние от median(X) более половины данных (другими словами, находится вне срединного шара) не используется. Затем выбирают конечный аттрактор, исходя из критерия MCD.

Можно также указать дескриптор функции для функции, которая возвращает два выходных аргумента, используемых для вычисления начального местоположения и оценок рассеяния..

Можно также указать массив ячеек, содержащий любую комбинацию опций, заданных в предыдущей таблице, и дескрипторов функций. Количество используемых аттракторов равно длине массива ячеек. Эта опция позволяет больше контролировать алгоритм и возможность задавать пользовательское количество аттракторов и запусков.

Пример: 'StartMethod','medianball'

Выходные аргументы

свернуть все

Надежные оценки ковариационной матрицы, возвращаемые в виде p-на-p-числовой матрицы. p - количество предикторов, содержащихся в данных выборки.

Надежные средние оценки, возвращаемые как массив числовых значений 1 к p. p - количество предикторов, содержащихся в данных выборки.

Надежные расстояния, возвращаемые в виде массива числовых значений 1 на n. robustcov удаляет любые строки x которые содержат отсутствующие данные, поэтому количество строк mah может быть меньше числа строк в x.

Индексы наблюдений, сохраненные в качестве отклонений в выборочных данных x, возвращаемый в виде массива логических значений 1 на n. A 0 значение указывает, что наблюдение не является отклонением. A 1 значение указывает, что наблюдение является отклонением.

robustcov удаляет любые строки x которые содержат отсутствующие данные, поэтому количество строк outliers может быть меньше числа строк в x.

Структура, содержащая оценочную информацию, возвращенную как структура.

Алгоритмы

свернуть все

Оценка минимального ковариационного детерминанта

Минимальный определитель ковариации (MCD) является самым быстрым оценщиком многомерного местоположения и рассеяния, который является как последовательным, так и надежным. Однако точная оценка MCD нецелесообразна, поскольку вычислительно дорого оценить все возможные подмножества данных выборки. robustcov использует метод FAST-MCD для реализации MCD [3]

Метод FAST-MCD выбирает h наблюдений из n (где n/2 < hn), чья классическая ковариационная матрица имеет наименьший возможный определитель. Среднее значение MCD является средним из h выбранных наблюдений.

Ковариация MCD - это ковариационная матрица h выбранных точек, умноженная на коэффициент согласованности для получения согласованности при многомерном нормальном распределении и на коэффициент коррекции для коррекции смещения при малых размерах выборки.

Ортогонализированная оценка Гнянадесикана-Кеттенринга

Ортогонализированная оценка Гнанадесикана-Кеттенринга (ОГК) является положительной определенной оценкой рассеяния, начиная с оценщика Гнанадесикана и Кеттеринга (ГК), парной надежной матрицы рассеяния, которая может быть неположительной определенной [1]. Оценка использует форму главных компонентов, называемых итерацией ортогонализации на парной матрице рассеяния, заменяя свои собственные значения, которые могут быть отрицательными, устойчивыми дисперсиями. Эта процедура может быть итерирована для улучшенных результатов, и сходимость обычно получается после 2 или 3 итераций.

Оценка Олива Хокинса

Оценка Олива-Хокинса использует методы «алгоритма концентрации», предложенные Оливом и Хокинсом. Это семейство быстрых, последовательных и высокоустойчивых методов. Оценка представляет собой надежный корневой n-согласованный оценщик ковариации для эллиптически контурных распределений с четвертыми моментами. Эту оценку получают, сначала генерируя пробные оценки, или начинает, а затем используя методику концентрации из каждой пробной подгонки для получения аттракторов.

Предположим (T0j,C0j) является началом, то на следующей итерации классическое среднее и оценки ковариации вычисляются из приблизительно n/2 случаев (где n - количество наблюдений) с наименьшими расстояниями Махаланобиса на основе оценок из предыдущей итерации. Эта итерация может быть продолжена для фиксированного числа шагов k, причем оценка на последнем шаге k является аттрактором. Окончательная оценка выбирается на основе данного критерия.

По умолчанию используются два аттрактора. Первый аттрактор - аттрактор Девлин-Гнанадесикан-Кеттеринг (ДГК), где используемый старт - классический оценщик. Вторым аттрактором является аттрактор Median Ball (MB), где используется старт (median(x),eye(p)), другими словами, половина набора данных, ближайших к median(x) на евклидовом расстоянии. Аттрактор МБ используется, если оценщик местоположения аттрактора ДГК находится вне срединного шара, а аттрактор с наименьшим определителем используется иначе. Окончательная средняя оценка является средней оценкой выбранного аттрактора, а окончательная оценка ковариации является оценкой ковариации выбранного аттрактора, умноженной на коэффициент масштабирования, чтобы сделать оценку согласованной при нормальном распределении.

Ссылки

[1] Маронна, Р. и Замар, R.H.. «Надежные оценки местоположения и дисперсии для высокоразмерных наборов данных». Технометрия, т. 50, 2002.

[2] Пизон, С. Ван Аэлст и Г. Виллемс. «Небольшие выборочные поправки для LTS и MCD». Метрика, т. 55, 2002.

[3] Руссью, П. Дж. и Ван Дриссен, К. «Быстрый алгоритм для оценки минимальной ковариации». Технометрия, том 41, 1999.

[4] Olive, D.J. «Устойчивый оценщик многомерного местоположения и дисперсии». Вычислительная статистика и анализ данных, том 46, стр. 99-102, 2004.

См. также

Представлен в R2016a