Устойчивая многомерная ковариация и средняя оценка
[___] = 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
На графике 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 градусов к источнику. Для 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')
Шкала на этом графике указывает, что он представляет увеличенное представление исходного 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' | Ортогональная оценка Гнанадесикан-Кеттенринга (ОГК) |
'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'
- Флаг для применения корректирующего коэффициента малой выборки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' | Используйте классическую оценку в качестве начала. Это аттрактор DGK, который, используемый самостоятельно, известен как оценка DGK. |
'medianball' | В качестве начала используйте Срединный мяч. Срединный мяч (med(x),eye(p)) . Таким образом, 50% случаев, наиболее удаленных в евклидовом расстоянии от медианы выборки, обрезаются для вычисления запуска MB. Это аттрактор MB, который, используемый самостоятельно, известен как оценка MB. |
'elemental' | Аттрактор генерируется концентрацией, где start является случайным образом выбранным элементным началом: классический оценщик применяется к случайным образом выбранному «элементарному набору» из 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 массив логических значений. A 0
значение указывает, что наблюдение не является выбросами. A 1
значение указывает, что наблюдение является выбросами.
robustcov
удаляет все строки x
которые содержат отсутствующие данные, поэтому количество строк outliers
может быть меньше, чем количество строк в x
.
s
- Структура, содержащая оценочную информациюСтруктура, содержащая оценочную информацию, возвращенную как структура.
Минимальный ковариационный определяющий (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 год.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.