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