robustcov

Устойчивая многомерная ковариация и средняя оценка

Описание

пример

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

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

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

[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;

Вычислите устойчивые ковариационные матрицы с помощью трех доступных методов: быстрый MCD, Ортогонализируемый Gnanadesikan-Kettenring (OGK) и Маслина-Hawkins.

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

Вычислите классические значения расстояния для выборочных данных с помощью меры Mahalanobis.

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

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

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

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

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

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

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');

Сгенерируйте данные о случайной выборке из многомерного логарифмически нормального распределения, которое не является ни один многомерно нормальный или эллиптически очерченный. Вычислите расстояния Mahalanobis для устойчивых оценок ковариации (использующий Оливковый-Hawkins метод) и классических оценок ковариации.

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')

Для данных с многомерным нормальным распределением (как показано в верхнем левом углу), нанесенные на график точки следуют за прямым, расширением линии на 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')

Шкала на этом графике указывает, что это представляет увеличенное представление исходного графика 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))

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

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

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'})

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

Входные параметры

свернуть все

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

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

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

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

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

Пример: 'Method','ogk','NumOGKIterations',1 задает устойчивое средство оценки как Ортогонализируемый метод Gnanadesikan-Kettenring и определяет номер итераций ортогонализации к 1.

Для всех средств оценки

свернуть все

Устойчивое средство оценки в виде одного из следующих.

ИмяЗначение
'fmcd'FAST-MCD (Минимальный Определитель Ковариации) метод
'ogk'Оценка Ортогонализируемого Gnanadesikan-Kettenring (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. 1 значение указывает на тот robustcov корректирует для смещения в оценке ковариации для небольших выборок. 0 значение указывает на тот robustcov не применяет эту коррекцию.

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

Типы данных: логический

Для метода ОГК только

свернуть все

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

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

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

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

ИмяЗначение
'tauscale'Используйте оценку “tau-шкалы” Yohai и Zamar, который является усеченным стандартным отклонением и взвешенным средним.
'qn'Используйте оценку шкалы Qn Croux и Rousseuw.

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

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

свернуть все

Метод для перевзвешивания в КПД продвигается в виде разделенной запятой пары, состоящей из 'ReweightingMethod' и одно из следующих.

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

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

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

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

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

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

ИмяЗначение
'classical'Используйте классическое средство оценки в качестве запуска. Это - аттрактор DGK, который, используемый самостоятельно, известен как средство оценки DGK.
'medianball'Используйте Средний Шар в качестве запуска. Средним Шаром является (med(x),eye(p)). Таким образом, 50% случаев дальше всего в Евклидовом расстоянии от демонстрационной медианы обрезаются для вычисления Мбайта, запускаются. Это - аттрактор Мбайта, который, используемый самостоятельно, известен как средство оценки Мбайта.
'elemental'Аттрактор сгенерирован концентрацией, где запуск является случайным образом выбранным элементным запуском: классическое средство оценки, к которому применяются случайным образом, выбрало “elemental set” p + 1 случай. Этот “элементный” аттрактор в вычислительном отношении эффективен, но страдает от теоретических недостатков, когда это - противоречивый и нулевой отказ.

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

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

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

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

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

свернуть все

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

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

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

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

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

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

Алгоритмы

свернуть все

Минимальная определяющая оценка ковариации

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

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

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

Ортогонализируемая оценка Gnanadesikan-Kettenring

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

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

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

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

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

Ссылки

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

[2] Писон, С. ван Аелст и Г. Виллемс. “Коррекции небольшой выборки для LTS и MCD”. Metrika, издание 55, 2002.

[3] Rousseuw, П.Дж. и Ван Дриссен, K. “Алгоритм FAST для минимального определяющего средства оценки ковариации”. Технометрики, Издание 41, 1999.

[4] Маслина, D.J. “Стойкое средство оценки многомерного местоположения и дисперсии”. Вычислительная Статистика и Анализ данных, Издание 46, стр 99–102, 2004.

Смотрите также

Введенный в R2016a