Надежная многомерная ковариация и средняя оценка
[___] = 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

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

Для данных с многомерным нормальным распределением (как показано в левом верхнем углу) точки на графике следуют прямой, 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 - Образцы данныхВыборочные данные, используемые для оценки надежной ковариационной матрицы, заданной как матрица числовых значений. x является матрицей n-by-p, где каждая строка является наблюдением, а каждый столбец является переменной.
robustcov удаляет любые строки с отсутствующими предикторными значениями при вычислении надежной ковариационной матрицы.
Типы данных: single | double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Method','ogk','NumOGKIterations',1 указывает надежный оценщик как метод ортогонализированного гнанадесикана-кеттенринга и устанавливает число итераций ортогонализации равным 1.'Method' - Надежный оценщик'fmcd' (по умолчанию) | 'ogk' | 'olivehawkins'Надежный оценщик, указанный как один из следующих.
| Имя | Стоимость |
|---|---|
'fmcd' | Метод FAST-MCD (минимальный определитель ковариации) |
'ogk' | Ортогонализированная оценка Gnanadesikan-Kettenring (OGK) |
'olivehawkins' | Методы алгоритма концентрации, семейство быстрых, последовательных и высокоустойчивых методов |
Пример: 'Method','ogk'
'OutlierFraction' - Выходящая фракцияДоля отклонения, указанная как пара, разделенная запятыми, состоящая из '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' - Число судебных разбирательствКоличество испытаний, указанное как пара, разделенная запятыми, состоящая из 'NumTrials' и положительное целое значение.
Если 'Method' является 'fmcd', то NumTrials - число случайных подвыборок размера (p + 1), взятых из данных выборки в качестве начальных точек в алгоритме. p - количество измерений в данных образца. В этом случае значение по умолчанию для NumTrials составляет 500.
Если 'Method' является 'olivehawkins', то NumTrials - количество используемых пробных посадок или аттракторов. В этом случае значение по умолчанию для NumTrials равно 2. Эта опция полезна только для недетерминированных запусков.
Пример: 'NumTrials',300
Типы данных: single | double
'BiasCorrection' - Флаг для применения коэффициента коррекции малой выборки1 (по умолчанию) | 0Флаг для применения коэффициента коррекции малой выборки, указанного как пара, разделенная запятыми, состоящая из 'BiasCorrection' и либо 1 или 0. A 1 значение указывает, что robustcov корректирует смещение в оценке ковариации для небольших выборок. A 0 значение указывает, что robustcov не применяет эту поправку.
Пример: 'BiasCorrection',0
Типы данных: logical
'NumOGKIterations' - Количество итераций ортогонализацииКоличество итераций ортогонализации, указанных как пара, разделенная запятыми, состоящая из 'NumOGKIterations' и положительное целое значение. Обычно это значение устанавливается равным 1 или 2, и дальнейшие шаги вряд ли улучшат оценку.
Пример: 'NumIter',1
Типы данных: single | double
'UnivariateEstimator' - Функция для вычисления одномерных надежных оценок'tauscale' (по умолчанию) | 'qn'Функция для вычисления одномерных надежных оценок, указанная как пара, разделенная запятыми, состоящая из 'UnivariateEstimator' и одно из следующих.
| Имя | Стоимость |
|---|---|
'tauscale' | Используйте «тау-шкалу» оценки Йохая и Замара, которая является усеченным стандартным отклонением и взвешенным средним. |
'qn' | Используйте оценку шкалы Qn Круса и Руссея. |
Пример: 'UnivariateEstimator','qn'
'ReweightingMethod' - Метод повторного взвешивания'rfch' (по умолчанию) | 'rmvn'Метод повторного взвешивания на шаге эффективности, определяемый как разделенная запятыми пара, состоящая из 'ReweightingMethod' и одно из следующих.
| Имя | Стоимость |
|---|---|
'rfch' | Использует два шага повторного взвешивания. Это стандартный метод повторного взвешивания для повышения эффективности. |
'rmvn' | Перевесной многомерный нормаль. Использует два шага переутяжеления, которые могут быть полезны для оценки истинной ковариационной матрицы при различных конфигурациях отклонений, когда чистые данные являются многомерными нормальными. |
Пример: 'ReweightingMethod','rmvn'
'NumConcentrationSteps' - Количество стадий концентрированияКоличество стадий концентрации, указанное как разделенная запятыми пара, состоящая из 'NumConcentrationSteps' и положительное целое значение.
Пример: 'NumConcentrationSteps',8
Типы данных: single | double
'StartMethod' - Способ запуска для каждого аттрактора'classical' (по умолчанию) | 'medianball' | 'elemental' | дескриптор функции | массив ячеекМетод запуска для каждого аттрактора, указанный как разделенная запятыми пара, состоящая из 'Start' и одно из следующих.
| Имя | Стоимость |
|---|---|
'classical' | В качестве начала используйте классический оценщик. Это аттрактор ДГК, который, используемый самостоятельно, известен как оценщик ДГК. |
'medianball' | В качестве начала используйте средний шар. Средний шар равен (med(x),eye(p)). Таким образом, 50% случаев, наиболее удаленных на евклидовом расстоянии от медианы выборки, обрезаны для вычисления начала МБ. Это аттрактор МБ, который, используемый сам по себе, известен как оценщик МБ. |
'elemental' | Аттрактор генерируется концентрацией, где старт является случайно выбранным элементным стартом: классический оценщик применяется к случайно выбранному «элементарному множеству» из p + 1 случаев. Этот «элементный» аттрактор является вычислительно эффективным, но страдает теоретическими недостатками, так как является непоследовательным и нулевым пробоем. |
По умолчанию аттрактор выбирается следующим образом: Если один из аттракторов 'medianball', то любой аттрактор, чья оценка местоположения имеет большее евклидово расстояние от median(X) более половины данных (другими словами, находится вне срединного шара) не используется. Затем выбирают конечный аттрактор, исходя из критерия MCD.
Можно также указать дескриптор функции для функции, которая возвращает два выходных аргумента, используемых для вычисления начального местоположения и оценок рассеяния..
Можно также указать массив ячеек, содержащий любую комбинацию опций, заданных в предыдущей таблице, и дескрипторов функций. Количество используемых аттракторов равно длине массива ячеек. Эта опция позволяет больше контролировать алгоритм и возможность задавать пользовательское количество аттракторов и запусков.
Пример: 'StartMethod','medianball'
sig - Надежные оценки ковариационной матрицыНадежные оценки ковариационной матрицы, возвращаемые в виде p-на-p-числовой матрицы. p - количество предикторов, содержащихся в данных выборки.
mu - Надежные средние оценкиНадежные средние оценки, возвращаемые как массив числовых значений 1 к p. p - количество предикторов, содержащихся в данных выборки.
mah - Надежные расстоянияНадежные расстояния, возвращаемые в виде массива числовых значений 1 на n. robustcov удаляет любые строки x которые содержат отсутствующие данные, поэтому количество строк mah может быть меньше числа строк в x.
outliers - Индексы отклоненийИндексы наблюдений, сохраненные в качестве отклонений в выборочных данных x, возвращаемый в виде массива логических значений 1 на n. A 0 значение указывает, что наблюдение не является отклонением. A 1 значение указывает, что наблюдение является отклонением.
robustcov удаляет любые строки x которые содержат отсутствующие данные, поэтому количество строк outliers может быть меньше числа строк в x.
s - Структура, содержащая оценочную информациюСтруктура, содержащая оценочную информацию, возвращенную как структура.
Минимальный определитель ковариации (MCD) является самым быстрым оценщиком многомерного местоположения и рассеяния, который является как последовательным, так и надежным. Однако точная оценка MCD нецелесообразна, поскольку вычислительно дорого оценить все возможные подмножества данных выборки. robustcov использует метод FAST-MCD для реализации MCD [3]
Метод FAST-MCD выбирает h наблюдений из n (где n/2 < h ≤ n), чья классическая ковариационная матрица имеет наименьший возможный определитель. Среднее значение 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.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.