trimmean

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

Синтаксис

m = trimmean(X,percent)
m = trimmean(X,percent,flag)
m = trimmean(___,'all')
m = trimmean(___,dim)
m = trimmean(___,vecdim)

Описание

пример

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. Каждое значение выходного массива является средним значением средних 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. T распределение Студента имеет тенденцию иметь выбросы.

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)

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

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

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

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

Сгенерируйте матрицу случайных чисел от t распределения Студента. 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

Найдите среднее значение для каждой строки 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% каждой строки ближе к нулю, который является более представительным для данных.

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

Создайте 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

Для просмотра документации необходимо авторизоваться на сайте