Найти выбросы в данных
возвращает логический массив, элементы которого TF
= isoutlier(A
)true
когда выбросы обнаруживаются в соответствующем элементе A
. По умолчанию выбросы являются значением, которое более чем на три масштабированных медианных абсолютных отклонения (MAD) от медианы. Если A
является матрицей или таблицей, затем isoutlier
работает с каждым столбцом отдельно. Если A
является многомерным массивом, затем isoutlier
действует вдоль первой размерности, размер которого не равен 1.
задает метод перемещения для обнаружения локальных выбросов в соответствии с длиной окна, заданной как TF
= isoutlier(A
,movmethod
,window
)window
. Для примера, isoutlier(A,'movmedian',5)
возвращает true
для всех элементов более трех локальных масштабированных MAD из локальной медианы в скользящем окне, содержащем пять элементов.
задает дополнительные параметры для обнаружения выбросов с помощью одного или нескольких аргументов пары "имя-значение". Для примера, TF
= isoutlier(___,Name,Value
)isoutlier(A,'SamplePoints',t)
обнаруживает выбросы в A
относительно соответствующих элементов массива временного вектора t
.
Найдите выбросы в векторе данных. Логический элемент 1 в выходах указывает местоположение выбросов.
A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57]; TF = isoutlier(A)
TF = 1x15 logical array
0 0 0 1 0 0 0 0 1 0 0 0 0 0 0
Задайте выбросы как точки более чем на три стандартных отклонения от среднего и найдите местоположения выбросов в векторе.
A = [57 59 60 100 59 58 57 58 300 61 62 60 62 58 57];
TF = isoutlier(A,'mean')
TF = 1x15 logical array
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
Создайте вектор данных, содержащий локальные выбросы.
x = -2*pi:0.1:2*pi; A = sin(x); A(47) = 0;
Создайте временной вектор, который соответствует данным в A
.
t = datetime(2017,1,1,0,0,0) + hours(0:length(x)-1);
Задайте выбросы как точки более чем на три локальных масштабированных MAD от локальной медианы в скользящем окне. Найдите местоположения выбросов в A
относительно точек в t
с размером окна 5 часов. Постройте график данных и обнаруженных выбросов.
TF = isoutlier(A,'movmedian',hours(5),'SamplePoints',t); plot(t,A,t(TF),A(TF),'x') legend('Data','Outlier')
Найдите выбросы для каждой строки матрицы.
Создайте матрицу данных, содержащую выбросы по диагонали.
A = magic(5) + diag(200*ones(1,5))
A = 5×5
217 24 1 8 15
23 205 7 14 16
4 6 213 20 22
10 12 19 221 3
11 18 25 2 209
Найдите местоположения выбросов на основе данных в каждой строке.
TF = isoutlier(A,2)
TF = 5x5 logical array
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Создайте вектор данных, содержащий выбросы. Найдите и постройте график местоположения выбросов, и пороги и значение центра, определяемые методом выбросов. Центральное значение является медианой данных, а верхний и нижний пороги - тремя масштабированными MAD выше и ниже медианы.
x = 1:10; A = [60 59 49 49 58 100 61 57 48 58]; [TF,L,U,C] = isoutlier(A); plot(x,A,x(TF),A(TF),'x',x,L*ones(1,10),x,U*ones(1,10),x,C*ones(1,10)) legend('Original Data','Outlier','Lower Threshold','Upper Threshold','Center Value')
A
- Входные данныеВходные данные, заданные как вектор, матрица, многомерный массив, таблица или timetable.
Если A
является таблицей, тогда ее переменные должны быть типа double
или single
, или можно использовать 'DataVariables'
Пара "имя-значение" в список double
или single
переменные явно. Установка переменных полезна при работе с таблицей, которая содержит переменные с типами данных, отличными от double
или single
.
Если A
является расписанием, тогда isoutlier
работает только с элементами таблицы. Значения времени строк должны быть уникальными и указываться в порядке возрастания.
Типы данных: double
| single
| table
| timetable
method
- Метод обнаружения выбросов'median'
(по умолчанию) | 'mean'
| 'quartiles'
| 'grubbs'
| 'gesd'
Метод обнаружения выбросов, заданный как один из следующих:
Метод | Описание |
---|---|
'median' | Возвращает true для элементов с более чем тремя масштабированными MAD от медианы. Масштабированный MAD задан как c*median(abs(A-median(A))) , где c=-1/(sqrt(2)*erfcinv(3/2)) . |
'mean' | Возвращает true для элементов более чем на три стандартных отклонения от среднего. Этот метод быстрее, но менее надежен, чем 'median' . |
'quartiles' | Возвращает true для элементов более 1,5 межквартильные области значений выше верхнего квартиля или ниже нижнего квартиля. Этот метод полезен, когда данные в A обычно не распределяется. |
'grubbs' | Применяет тест Груббса на выбросы, который удаляет один выброс за итерацию на основе проверки гипотезы. Этот метод принимает, что данные в A обычно распределяется. |
'gesd' | Применяет обобщенный экстремальный критерий отклонения Studentized для выбросов. Этот итерационный метод похож на 'grubbs' , но может работать лучше, когда есть несколько выбросов, маскирующих друг друга. |
threshold
- Процентильные порогиПороги процентиля, заданные как двухэлементный вектор-строка, элементы которого находятся в интервале [0,100]. Первый элемент указывает нижний порог процентиля, а второй элемент указывает верхний порог процентиля. Для примера - порог [10 90]
определяет выбросы как точки ниже 10-го процентиля и выше 90-го процентиля. Первый элемент threshold
должен быть меньше второго элемента.
movmethod
- Метод перемещения'movmedian'
| 'movmean'
Метод перемещения для обнаружения выбросов, заданный как один из следующих:
Метод | Описание |
---|---|
'movmedian' | Возвращает true для элементов с более чем тремя локальными масштабами MAD из локальной медианы по длине окна, заданной как window . Этот метод также известен как Hampel filter. |
'movmean' | Возвращает true для элементов более чем на три локальных стандартных отклонения от локального среднего по длине окна, заданной window . |
window
- Длина окнаДлина окна, заданная как положительный целочисленный скаляр, двухэлементный вектор положительных целых чисел, положительная длительность скаляра или двухэлементный вектор положительных длительностей.
Когда window
является положительным целочисленным скаляром, окно центрировано вокруг текущего элемента и содержит window-1
соседние элементы. Если window
является четным, тогда окно центрируется вокруг текущего и предыдущего элементов.
Когда window
- двухэлементный вектор положительных целых чисел [b f]
, окно содержит текущий элемент, b
элементы назад и f
элементы вперед.
Когда A
является расписанием или 'SamplePoints'
задается как datetime
или duration
вектор, затем window
должен иметь тип duration
, и окна вычисляются относительно точек выборки.
Типы данных: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| duration
dim
- Размерность для работыРазмерность для работы, заданная как положительный целочисленный скаляр Если значение не задано, то по умолчанию это первое измерение массива, не равный 1.
Рассмотрим матрицу A
.
isoutlier(A,1)
обнаруживает выбросы на основе данных в каждом столбце A
.
isoutlier(A,2)
обнаруживает выбросы на основе данных в каждой строке A
.
Когда A
является таблицей или расписанием, dim
не поддерживается. isoutlier
работает с каждой таблицей или переменной расписания отдельно.
Типы данных: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
isoutlier(A,'mean','ThresholdFactor',4)
'SamplePoints'
- Точки выборкиТочки выборки, заданные как разделенная разделенными запятой парами, состоящая из 'SamplePoints'
и вектор. Точки выборки представляют x местоположения данных в осях A
, и должен быть отсортирован и содержать уникальные элементы. Точки выборки не нужно равномерно отбирать. Вектор точек выборки по умолчанию [1 2 3 ...]
.
Примечание
Эта пара "имя-значение" не поддерживается, когда входные данные являются timetable
. В Timetables всегда используется вектор времени строки в качестве точек выборки. Чтобы использовать различные точки выборки, необходимо отредактировать расписание так, чтобы время в строке содержало требуемые точки выборки.
Движущиеся окна заданы относительно точек выборки. Для примера, если t
является вектором времени, соответствующим входным данным, затем isoutlier(rand(1,10),'movmean',3,'SamplePoints',t)
имеет окно, которое представляет временной интервал между t(i)-1.5
и t(i)+1.5
.
Когда вектор точек выборки имеет тип данных datetime
или duration
, тогда длина окна должна иметь тип duration
.
Пример: isoutlier(T,'SamplePoints',0:0.1:10)
Типы данных: single
| double
| datetime
| duration
'DataVariables'
- Табличные переменные для работыvartype
индексТабличные переменные для работы, заданные как разделенная разделенными запятой парами, состоящая из 'DataVariables'
и один из опций в этой таблице. The 'DataVariables'
значение указывает, какие переменные таблицы входа необходимо изучить на выбросы. Тип данных, сопоставленный с указанными переменными, должен быть double
или single
. Другие переменные в таблице, не заданные 'DataVariables'
не работают, поэтому выходы содержат false
значения для этих переменных.
Опция | Описание | Примеры |
---|---|---|
Имя переменной | Вектор символов или скалярная строка, задающая имя табличной переменной |
|
Вектор имен переменных | Массив ячеек из векторов символов или строковых массивов, где каждый элемент является именем табличной переменной |
|
Скаляр или вектор переменных индексов | Скаляр или вектор табличных переменных |
|
Логический вектор | Логический вектор, элементы которого каждый соответствуют табличной переменной, где |
|
Указатель на функцию | Указатель на функцию, который принимает табличную переменную как вход и возвращает логический скаляр |
|
vartype индекс | Индекс таблицы, сгенерированный |
|
Пример: isoutlier(T,'DataVariables',["Var1" "Var2" "Var4"])
'ThresholdFactor'
- Пороговый коэффициент обнаруженияПороговый коэффициент обнаружения, заданный как разделенная разделенными запятой парами, состоящая из 'ThresholdFactor'
и неотрицательный скаляр.
Для методов 'median'
и 'movmedian'
, коэффициент порога обнаружения заменяет количество масштабированных MAD, которое по умолчанию составляет 3.
Для методов 'mean'
и 'movmean'
, коэффициент порога обнаружения заменяет количество стандартных отклонений от среднего, которое по умолчанию составляет 3.
Для методов 'grubbs'
и 'gesd'
, коэффициент порога обнаружения является скаляром в диапазоне от 0 до 1. Значения, близкие к 0, приводят к меньшему числу выбросов, а значения, близкие к 1, приводят к большему числу выбросов. Коэффициент порога обнаружения по умолчанию является 0,05.
Для 'quartiles'
метод, пороговый коэффициент обнаружения заменяет количество межквартильных областей значений, которое по умолчанию составляет 1,5.
Эта пара "имя-значение" не поддерживается, когда заданный метод 'percentiles'
.
Типы данных: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
'MaxNumOutliers'
- Максимальное количество выбросовМаксимальное количество выбросов для 'gesd'
только метод, заданный как разделенная разделенными запятой парами, состоящая из 'MaxNumOutliers'
и положительное целое число. The 'MaxNumOutliers'
значение задает максимальное количество выбросов, возвращаемых 'gesd'
способ. Для примера, isoutlier(A,'gesd','MaxNumOutliers',5)
возвращает не более пяти выбросов.
Значение по умолчанию для 'MaxNumOutliers'
- целое число, самое близкое к 10 процентам от количества элементов в A
. Установка большего значения для максимального количества выбросов может гарантировать, что все выбросы будут обнаружены, но за счет снижения вычислительной эффективности.
The 'gesd'
метод предполагает, что неиспускаемые входные данные отбираются из приблизительного нормального распределения. Когда данные не дискретизированы таким образом, количество возвращенных выбросов может превысить 'MaxNumOutliers'
значение.
Типы данных: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
TF
- Индикатор выбросовИндикатор выбросов, возвращенный как векторный, матричный или многомерный массив. Элемент TF
является true
когда соответствующий элемент A
являются выбросы и false
в противном случае. TF
- тот же размер, что и A
.
Типы данных: logical
L
- Нижний порогБолее низкий порог, используемый методом определения выбросов, возвращается в виде скаляра, вектора, матрицы, многомерного массива, таблицы или timetable. Для примера нижнее значение метода определения выбросов по умолчанию является тремя масштабированными MAD ниже медианы входных данных. L
имеет тот же размер, что и A
во всех размерностях, кроме рабочего размера, где длина равна 1.
Типы данных: double
| single
| table
| timetable
U
- Верхний порогВерхний порог, используемый методом определения выбросов, возвращается в виде скаляра, вектора, матрицы, многомерного массива, таблицы или timetable. Для примера верхнее значение метода определения выбросов по умолчанию является тремя масштабированными MAD над медианой входных данных. U
имеет тот же размер, что и A
во всех размерностях, кроме рабочего размера, где длина равна 1.
Типы данных: double
| single
| table
| timetable
C
- Центральное значениеЦентральное значение, используемое методом определения выбросов, возвращается в виде скаляра, вектора, матрицы, многомерного массива, таблицы или timetable. Для примера центральное значение метода определения выбросов по умолчанию является медианой входных данных. C
имеет тот же размер, что и A
во всех размерностях, кроме рабочего размера, где длина равна 1.
Типы данных: double
| single
| table
| timetable
Для векторной A со случайными переменными, составленной из N скалярных наблюдений, среднее абсолютное отклонение (MAD) определяется как
для i = 1,2,...,N.
Масштабированный MAD задан как c*median(abs(A-median(A)))
где c=-1/(sqrt(2)*erfcinv(3/2))
.
Указания и ограничения по применению:
The 'percentiles'
, 'grubbs'
, и 'gesd'
методы не поддерживаются.
The 'movmedian'
и 'movmean'
методы не поддерживают длинные расписания.
The 'SamplePoints'
и 'MaxNumOutliers'
пары "имя-значение" не поддерживаются.
Значение 'DataVariables'
не может быть указателем на функцию.
Расчет isoutlier(A)
, isoutlier(A,'median',...)
, или isoutlier(A,'quartiles',...)
вдоль первой размерности поддерживается только для tall векторов-столбцов A
.
Для получения дополнительной информации см. Раздел «Длинные массивы»
Указания и ограничения по применению:
The 'movmean'
и 'movmedian'
методы обнаружения выбросов не поддерживают входные данные расписания, datetime 'SamplePoints'
значения или длительность 'SamplePoints'
значения.
Входы строкового и символьных массивов должны быть постоянными.
Указания и ограничения по применению:
The 'movmedian'
метод перемещения не поддерживается.
The 'SamplePoints'
и 'DataVariables'
пары "имя-значение" не поддерживаются.
Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Чистые данные о выбросах | filloutliers
| ischange
| islocalmax
| islocalmin
| ismissing
| rmoutliers
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.