exponenta event banner

kruskalwallis

Тест Крускала-Уоллиса

Описание

пример

p = kruskalwallis(x) возвращает значение p для нулевой гипотезы о том, что данные в каждом столбце матрицы x происходит из того же распределения, используя тест Крускала-Уоллиса. Альтернативная гипотеза заключается в том, что не все выборки происходят из одного распределения. kruskalwallis также возвращает таблицу ANOVA и рамочный график.

пример

p = kruskalwallis(x,group) возвращает значение p для проверки нулевой гипотезы, что данные в каждой категориальной группе, как указано переменной группирования group происходит из того же распределения. Альтернативная гипотеза заключается в том, что не все группы происходят из одного распределения.

пример

p = kruskalwallis(x,group,displayopt) возвращает значение p теста и позволяет отобразить или подавить график таблицы и поля ANOVA.

пример

[p,tbl,stats] = kruskalwallis(___) также возвращает таблицу ANOVA в качестве массива ячеек tbl и структура stats содержит информацию о статистике тестирования.

Примеры

свернуть все

Создайте два различных объекта распределения нормальных вероятностей. Первое распределение имеет mu = 0 и sigma = 1, и второе распределение имеет mu = 2 и sigma = 1.

pd1 = makedist('Normal');
pd2 = makedist('Normal','mu',2,'sigma',1);

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

rng('default'); % for reproducibility
x = [random(pd1,20,2),random(pd2,20,1)];

Первые два столбца x содержат данные, сгенерированные из первого распределения, в то время как третий столбец содержит данные, сгенерированные из второго распределения.

Проверьте нулевую гипотезу, что выборка данных из каждого столбца в x происходит из того же распределения.

p = kruskalwallis(x)

Figure Kruskal-Wallis One-way ANOVA contains objects of type uicontrol.

Figure contains an axes. The axes contains 21 objects of type line.

p = 3.6896e-06

Возвращенное значение p указывает, что kruskalwallis отвергает нулевую гипотезу о том, что все три выборки данных происходят из одного и того же распределения на уровне значимости 1%. В таблице ANOVA представлены дополнительные результаты теста, а в рамочном графике визуально представлены сводные статистические данные для каждого столбца в x.

Создайте два различных объекта распределения нормальных вероятностей. Первое распределение имеет mu = 0 и sigma = 1. Второе распределение имеет mu = 2 и sigma = 1.

pd1 = makedist('Normal');
pd2 = makedist('Normal','mu',2,'sigma',1);

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

rng('default'); % for reproducibility
x = [random(pd1,20,2),random(pd2,20,1)];

Первые два столбца x содержат данные, сгенерированные из первого распределения, в то время как третий столбец содержит данные, сгенерированные из второго распределения.

Проверьте нулевую гипотезу, что выборка данных из каждого столбца в x происходит из того же распределения. Подавление выходных данных и создание структуры stats для использования в дальнейшем тестировании.

[p,tbl,stats] = kruskalwallis(x,[],'off')
p = 3.6896e-06
tbl=4×6 cell array
  Columns 1 through 5

    {'Source' }    {'SS'        }    {'df'}    {'MS'        }    {'Chi-sq'  }
    {'Columns'}    {[7.6311e+03]}    {[ 2]}    {[3.8155e+03]}    {[ 25.0200]}
    {'Error'  }    {[1.0364e+04]}    {[57]}    {[  181.8228]}    {0x0 double}
    {'Total'  }    {[     17995]}    {[59]}    {0x0 double  }    {0x0 double}

  Column 6

    {'Prob>Chi-sq'}
    {[ 3.6896e-06]}
    {0x0 double   }
    {0x0 double   }

stats = struct with fields:
       gnames: [3x1 char]
            n: [20 20 20]
       source: 'kruskalwallis'
    meanranks: [26.7500 18.9500 45.8000]
         sumt: 0

Возвращенное значение p показывает, что тест отклоняет нулевую гипотезу на уровне значимости 1%. Можно использовать структуру stats для проведения дополнительных последующих испытаний. Массив ячеек tbl содержит те же данные, что и графическая таблица ANOVA, включая метки столбцов и строк.

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

c = multcompare(stats)
Note: Intervals can be used for testing but are not simultaneous confidence intervals.

Figure Multiple comparison of mean ranks contains an axes. The axes with title Click on the group you want to test contains 7 objects of type line.

c = 3×6

    1.0000    2.0000   -5.1435    7.8000   20.7435    0.3345
    1.0000    3.0000  -31.9935  -19.0500   -6.1065    0.0016
    2.0000    3.0000  -39.7935  -26.8500  -13.9065    0.0000

Результаты показывают, что существует значительная разница между группами 1 и 3, поэтому тест отвергает нулевую гипотезу, что данные в этих двух группах происходят из одного распределения. То же самое справедливо для групп 2 и 3. Однако между группами 1 и 2 нет существенной разницы, поэтому тест не отвергает нулевую гипотезу о том, что эти две группы происходят из одного распределения. Поэтому эти результаты показывают, что данные в группах 1 и 2 поступают из одного распределения, а данные в группе 3 поступают из другого распределения.

Создайте вектор, strength, содержащий измерения прочности металлических балок. Создайте второй вектор, alloy, указывающий тип металлического сплава, из которого изготовлена соответствующая балка.

strength = [82 86 79 83 84 85 86 87 74 82 ...
            78 75 76 77 79 79 77 78 82 79];

alloy = {'st','st','st','st','st','st','st','st',...
         'al1','al1','al1','al1','al1','al1',...
         'al2','al2','al2','al2','al2','al2'};

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

p = kruskalwallis(strength,alloy,'off')
p = 0.0018

Возвращенное значение p показывает, что тест отклоняет нулевую гипотезу на уровне значимости 1%.

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

свернуть все

Выборочные данные для проверки гипотезы, определенные как вектор или матрица m-by-n. Если x является матрицей m-на-n, каждый из n столбцов представляет независимую выборку, содержащую m взаимно независимых наблюдений.

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

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

  • Если x является вектором, то каждый элемент в group определяет группу, к которой относится соответствующий элемент в x принадлежит, и group должен быть вектором той же длины, что и x. Если строка group содержит пустое значение, эту строку и соответствующее наблюдение в x игнорируются. NaN значения в любом из них x или group аналогичным образом игнорируются.

  • Если x является матрицей, затем каждый столбец в x представляет другую группу, и можно использовать group для указания меток для этих столбцов. Количество элементов в group и количество столбцов в x должно быть равным.

Метки, содержащиеся в group также аннотировать рамочный график.

Пример: {'red','blue','green','blue','red','blue','green','green','red'}

Типы данных: single | double | logical | char | string | cell

Опция отображения, указанная как 'on' или 'off'. Если displayopt является 'on', kruskalwallis отображает следующие рисунки:

  • Таблица ANOVA, содержащая суммы квадратов, степеней свободы и других величин, рассчитанных на основе рангов данных в x.

  • Рамочный график данных в каждом столбце матрицы данных x. Рамочные графики основаны на фактических значениях данных, а не на рангах.

Если displayopt является 'off', kruskalwallis не отображает эти цифры.

Если указано значение для displayopt, необходимо также указать значение для group. Если у вас нет переменной группировки, укажите group как [].

Пример: 'off'

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

свернуть все

p-значение теста, возвращаемое как скалярное значение в диапазоне [0,1]. p - вероятность наблюдения проверочной статистики как экстремальной или более экстремальной, чем наблюдаемая величина при нулевой гипотезе. Малые значения p поставить под сомнение достоверность нулевой гипотезы.

Таблица ANOVA результатов теста, возвращенная в виде массива ячеек. tbl включает суммы квадратов, степеней свободы и других величин, рассчитанных на основе рангов данных в x, а также метки столбцов и строк.

Тестовые данные, возвращенные в виде структуры. Можно выполнить последующие множественные тесты сравнения для пар медианов образцов с помощью multcompare, с stats в качестве входного значения.

Подробнее

свернуть все

Тест Крускала-Уоллиса

Тест Крускала-Уоллиса является непараметрическим вариантом классической односторонней ANOVA и расширением критерия суммы рангов Вилкоксона более чем на две группы. Тест Крускала-Уоллиса действителен для данных, имеющих две или более групп. Он сравнивает медианы групп данных в x определить, происходят ли выборки из одной и той же популяции (или, что эквивалентно, из разных популяций с одинаковым распределением).

Тест Крускала-Уоллиса использует ранги данных, а не числовые значения для вычисления статистики теста. Он находит ранги, упорядочивая данные от наименьшего до наибольшего по всем группам и беря числовой индекс этого упорядочения. Ранг для привязанного наблюдения равен среднему рангу всех привязанных с ним наблюдений. F-статистика, используемая в классической односторонней ANOVA, заменяется статистикой хи-квадрат, а p-значение измеряет значимость статистики хи-квадрат.

Тест Крускала-Уоллиса предполагает, что все образцы получены из популяций, имеющих одинаковое непрерывное распределение, кроме, возможно, различных мест из-за групповых эффектов, и что все наблюдения взаимно независимы. Напротив, классическая односторонняя ANOVA заменяет первое предположение более сильным предположением, что популяции имеют нормальное распределение.

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