trimmean

Среднее, исключая выбросы

Описание

пример

m = trimmean(X,percent) возвращает среднее значений X, вычисленный после удаления выбросов X. Для примера, если X является вектором, который имеет n значения, m является средним значением X исключая самую высокую и самую низкую k значения данных, где k = n*(percent/100)/2.

  • Если X является вектором, тогда trimmean(X,percent) - среднее значение всех значений X, вычисленный после удаления выбросов.

  • Если X является матрицей, тогда trimmean(X,percent) - вектор-строка столбцового средства, вычисленная после удаления выбросов.

  • Если X является многомерным массивом, тогда trimmean действует по первой нежесткой размерности X.

пример

m = trimmean(X,percent,flag) задает, как обрезать, когда k (половина количества выбросов) не является целым числом.

пример

m = trimmean(___,'all') возвращает обрезанное среднее из всех значений в X использование любой комбинации входных аргументов в предыдущих синтаксисах.

пример

m = trimmean(___,dim) возвращает обрезанное среднее значение по рабочей размерности dim от X.

пример

m = trimmean(___,vecdim) возвращает обрезанное среднее по размерностям, заданным в векторе vecdim. Для примера, если X - массив 2 на 3 на 4, затем trimmean(X,10,[1 2]) возвращает 1 на 1 на 4 array. Каждое значение выходного массива является средним значением 90% от значений на соответствующей странице X.

Примеры

свернуть все

Найдите относительный КПД 10% обрезанного среднего к среднему значению выборки для заданного набора данных.

Сгенерируйте 100 на100 матрицу случайных чисел от стандартного нормального распределения. Эта матрица представляет 100 выборок, каждая из которых содержит 100 точек данных.

rng default;  % For reproducibility
X = normrnd(0,1,100,100);

Вычислите среднее значение выборки и обрезанное среднее 10% для каждого столбца матрицы данных.

m = mean(X); % Sample mean
trim = trimmean(X,10); % Trimmed mean

Вычислите относительную эффективность обрезанного среднего к средней выборке. Относительная эффективность является отклонением средней выборки, разделенной на отклонение обрезанного среднего.

vm = var(m) % Variance of the sample mean
vm = 0.0094
vtrim = var(trim) % Variance of the trimmed mean
vtrim = 0.0097
efficiency = vm/vtrim % Relative efficiency of the trimmed mean to the sample mean
efficiency = 0.9663

Среднее значение выборки имеет меньшее отклонение, чем среднее обрезанное (efficiency < 1). Поэтому обрезанное среднее менее эффективно, чем средняя выборка.

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

Сгенерируйте вектор случайных чисел из распределения t Студента со степенями свободы, равными 1. Распределение Студента имеет тенденцию к выбросам.

rng default;  % For reproducibility
nu = 1; % Degrees of freedom
n = 60; % Number of rows
m = 1;  % Number of columns
x = trnd(nu,n,m); % Vector 

Визуализируйте распределение с помощью нормального вероятностного графика.

probplot(x)

Figure contains an axes. The axes with title Probability plot for Normal distribution contains 2 objects of type line.

Несмотря на то, что распределение симметрично около нуля, несколько выбросов влияют на среднее значение.

Найдите среднее значение данных.

mn = mean(x)
mn = 1.6452

Найдите 33% обрезанное среднее данных.

trim = trimmean(x,33)
trim = 0.4940

33% -ное обрезанное среднее ближе к нулю, что более представительно для данных. Для 33% обрезанного среднего, k не является целым числом (k = 60*(33/100)/2 задает значение 9.9). Поэтому trimmean округляет k до ближайшее целого числа (10) по умолчанию.

Управляйте обрезкой путем округления k вплоть до следующего меньшего целого числа (9). Задайте элемент управления для обрезки, чтобы 'floor'.

trim = trimmean(x,33,'floor')
trim = 0.4933

Найдите обрезанное среднее по разным размерностям для матрицы.

Сгенерируйте матрицу случайных чисел из распределения Student's t. Распределение Студента имеет тенденцию к выбросам.

rng('default')
nu = 1; % Degrees of freedom
n = 2; % Number of rows
m = 100;  % Number of columns
X = trnd(nu,n,m);

Визуализируйте распределение для каждой строки X использование нормального графика вероятностей.

for i = 1:n
    figure()
    probplot(X(i,:))
end

Figure contains an axes. The axes with title Probability plot for Normal distribution contains 2 objects of type line.

Figure contains an axes. The axes with title Probability plot for Normal distribution contains 2 objects of type line.

Найдите среднее значение для каждой строки X.

mn = mean(X,2)
mn = 2×1

   -2.7379
    2.0087

Найдите среднее значение обрезки 30% для каждой строки X. Задайте dim = 2 в качестве рабочей размерности.

trim = trimmean(X,30,2)
trim = 2×1

   -0.0868
    0.1115

30% -ное обрезанное среднее для каждой строки ближе к нулю, что более представительно для данных.

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

Создайте массив 5 на 4 на 2 с некоторыми значениями выбросов.

X = reshape(1:40,[5 4 2]);
X([3 37]) = -100
X = 
X(:,:,1) =

     1     6    11    16
     2     7    12    17
  -100     8    13    18
     4     9    14    19
     5    10    15    20


X(:,:,2) =

    21    26    31    36
    22    27    32  -100
    23    28    33    38
    24    29    34    39
    25    30    35    40

Найдите 10% обрезанное среднее от X.

mall = trimmean(X,10,'all')
mall = 19.4722

mall - среднее 90% значений в X.

Найдите обрезанное среднее 10% для каждой страницы X.

mpage = trimmean(X,10,[1 2])
mpage = 
mpage(:,:,1) =

   10.3889


mpage(:,:,2) =

   29.6111

Для примера, mpage(1,1,2) - среднее 90% значений в X(:,:,2).

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

свернуть все

Входные данные, который представляет выборку из населения, заданную в виде вектора, матрицы или многомерного массива.

  • Если X является вектором, тогда trimmean(X,percent) - среднее значение всех значений X, вычисленный после удаления выбросов.

  • Если X является матрицей, тогда trimmean(X,percent) - вектор-строка столбцового средства, вычисленная после удаления выбросов.

  • Если X является многомерным массивом, тогда trimmean действует по первой нежесткой размерности X.

Чтобы задать рабочую размерность, когда X является матрицей или массивом, используйте dim входной параметр.

trimmean лечит NaN значения в X как отсутствующие значения и удаляет их.

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

Процент входных данных, которые будут обрезаться, задается как скаляр между 0 и 100.

trimmean использует значение percent определить количество выбросов (наивысших и самых низких k значения в X) для удаления из X перед вычислением среднего. Для X с n значения, k = n*(percent/100)/2.

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

Управление обрезкой при k (половина количества выбросов) не является целым числом, заданным в качестве одного из значений в этой таблице.

ЗначениеОписание
'round'Округлые k до ближайшее целого числа (округлить до меньшего целого числа, если k - половинное целое число). Это значение является значением по умолчанию.
'floor'Округлые k вплоть до следующего меньшего целого числа.
'weighted'Если   k = i + f, где i является целым числом и f является дробью, вычисляет среднее взвешенное с весом (1 – f) для (i + 1)th и (n – i)th значений и полного веса для значений между ними.

Типы данных: char | string

Размерность, по которой можно работать, заданная как положительный целочисленный скаляр Если вы не задаете значение, то значение по умолчанию является первым измерением массива X чей размер не равен 1.

Рассмотрим двумерный массив X:

  • Если dim равно 1, тогда trimmean(X,percent,1) возвращает вектор-строку, содержащее обрезанное среднее для каждого столбца в X.

  • Если dim равно 2, тогда trimmean(X,percent,2) возвращает вектор-столбец, содержащее обрезанное среднее для каждой строки в X.

Если dim больше ndims(X) или если size(X,dim) равен 1, тогда trimmean возвращает X.

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

Вектор размерностей, заданный как положительный целочисленный вектор. Каждый элемент vecdim представляет размерности массива входа X. Область выхода m имеет длину 1 в заданных рабочих размерностях. Другие длины размерности одинаковы для X и m.

Для примера, если X массив 2 на 3 на 3, тогда trimmean(X,10,[1 2]) возвращает массив 1 на 1 на 3. Каждый элемент выхода является средним значением 90% значений на соответствующей странице X.

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

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

свернуть все

Обрезанные средние значения, возвращенные в виде скаляра, вектора, матрицы или многомерного массива.

Совет

  • Обрезанное среднее является устойчивой оценкой местоположения выборки данных. Если данные содержат выбросы, то обрезанное среднее представляет центр данных лучше, чем среднее значение выборки. Однако, если все данные из одного и того же распределения вероятностей, то обрезанное среднее менее эффективно, чем среднее значение выборки, как средство оценки местоположения данных.

Расширенные возможности

См. также

| | |

Представлено до R2006a