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, ортогонализированный 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 градусов к источнику. Для lognormal распределения (как показано на нижнем левом), нанесенные точки не следуют прямой линии.

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

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

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

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'Ортогональная оценка Гнанадесикан-Кеттенринга (ОГК)
'olivehawkins'Методы алгоритма концентрации, семейство быстрых, последовательных и высокоустойчивых к выбросам методов

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

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

свернуть все

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

Алгоритм выбирает подвыборку размера h = потолок (n + p + 1 )/2), где n - количество наблюдений и p - количество размерностей. OutlierFraction - значение, для которого достигается максимально возможная разбивка, и управляет размером подмножеств h над которыми ковариация определяющего минимизируется. Алгоритм затем выбирает h для приблизительно равного (1 - OutlierFraction) × 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'Используйте классическую оценку в качестве начала. Это аттрактор DGK, который, используемый самостоятельно, известен как оценка DGK.
'medianball'В качестве начала используйте Срединный мяч. Срединный мяч (med(x),eye(p)). Таким образом, 50% случаев, наиболее удаленных в евклидовом расстоянии от медианы выборки, обрезаются для вычисления запуска MB. Это аттрактор MB, который, используемый самостоятельно, известен как оценка MB.
'elemental'Аттрактор генерируется концентрацией, где start является случайным образом выбранным элементным началом: классический оценщик применяется к случайным образом выбранному «элементарному набору» из p + 1 случаев. Этот «элементарный» аттрактор является вычислительно эффективным, но страдает теоретическими недостатками, так как он является непоследовательным и нулевым разбивкой.

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

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

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

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

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

свернуть все

Устойчивая ковариационная матрица оценивает, возвращается как p -by 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]

Метод БЫСТРОЙ ЧАСТИ АДМИНИСТРАТИВНОГО ОКРУГА выбирает h наблюдения из n (где <reservedrangesplaceholder3>/2 <<reservedrangesplaceholder2> ≤ <reservedrangesplaceholder1>), у чьей классической ковариационной матрицы есть самый низкий определяющий. Среднее значение MCD является средним значением h выбранных наблюдений.

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

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

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

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

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

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

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

Ссылки

[1] Maronna, R. and Zamar, R.H.. «Устойчивые оценки местоположения и дисперсии для высоко размерных наборов данных». Технометрия, том 50, 2002.

[2] Pison, S. Van Aelst and G. Willems. «Небольшие коррекции для LTS и MCD». Метрика, том 55, 2002.

[3] Руссью, P.J. and Van Driessen, K. «Быстрый алгоритм для минимальной оценки ковариационного определяющего». Технометрия, том 41, 1999.

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

См. также

Введенный в R2016a