kruskalwallis

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

Описание

пример

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

пример

p = kruskalwallis(x,group) возвращает p -value для теста нулевой гипотезы о том, что данные в каждой категориальной группе, заданные сгруппированной переменной 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 -by - 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 ставит под сомнение валидность нулевой гипотезы.

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

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

Подробнее о

свернуть все

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

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

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

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

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