MANOVA

Введение в MANOVA

Метод дисперсионного анализа в Выполняет ОДНОФАКТОРНЫЙ ДИСПЕРСИОННЫЙ АНАЛИЗ, берет набор сгруппированных данных, и определите, отличается ли среднее значение переменной значительно среди групп. Часто существуют переменные множественного ответа, и вы интересуетесь определением, отличается ли целый набор средних значений от одной группы к следующему. Существует многомерная версия дисперсионного анализа, который может решить проблему.

Дисперсионный Анализ со множественными ответами

carsmall набор данных имеет измерения на множестве моделей автомобилей с лет 1970, 1976, и 1982. Предположим, что вы интересуетесь тем, изменялись ли характеристики автомобилей в зависимости от времени.

load carsmall
whos
  Name                Size            Bytes  Class     Attributes

  Acceleration      100x1               800  double              
  Cylinders         100x1               800  double              
  Displacement      100x1               800  double              
  Horsepower        100x1               800  double              
  MPG               100x1               800  double              
  Mfg               100x13             2600  char                
  Model             100x33             6600  char                
  Model_Year        100x1               800  double              
  Origin            100x7              1400  char                
  Weight            100x1               800  double              

Четыре из этих переменных (Acceleration, Displacement, Horsepower, и MPG) непрерывные измерения на отдельных моделях автомобилей. Переменная Model_Year указывает на год, в котором был сделан автомобиль. Можно создать сгруппированную матрицу графика этих переменных с помощью gplotmatrix функция.

Создайте сгруппированную матрицу графика этих переменных с помощью gplotmatrix функция.

x = [MPG Horsepower Displacement Weight];
gplotmatrix(x,[],Model_Year,[],'+xo')

Figure contains 16 axes objects. Axes object 1 contains 3 objects of type line. Axes object 2 contains 3 objects of type line. Axes object 3 contains 3 objects of type line. Axes object 4 contains 3 objects of type line. Axes object 5 contains 3 objects of type line. Axes object 6 contains 3 objects of type line. Axes object 7 contains 3 objects of type line. Axes object 8 contains 3 objects of type line. Axes object 9 contains 3 objects of type line. Axes object 10 contains 3 objects of type line. Axes object 11 contains 3 objects of type line. Axes object 12 contains 3 objects of type line. Axes object 13 contains 3 objects of type line. Axes object 14 contains 3 objects of type line. Axes object 15 contains 3 objects of type line. Axes object 16 contains 3 objects of type line. These objects represent 70, 76, 82.

(Когда второй аргумент gplotmatrix пусто, функциональные графики столбцы x аргумент друг против друга и гистограммы мест по диагоналям. Пустой четвертый аргумент производит график с цветами по умолчанию. Пятый аргумент управляет символами, используемыми, чтобы различать группы.)

Кажется, что автомобили действительно отличаются из года в год. Верхний правый график, например, является графиком MPG по сравнению с Weight. Эти 1 982 автомобиля, кажется, имеют более высокий пробег, чем более старые автомобили, и они, кажется, весят меньше в среднем. Но как группа, эти три года существенно отличаются друг от друга? manova1 функция может ответить на тот вопрос.

[d,p,stats] = manova1(x,Model_Year)
d = 2
p = 2×1
10-6 ×

    0.0000
    0.1141

stats = struct with fields:
           W: [4x4 double]
           B: [4x4 double]
           T: [4x4 double]
         dfW: 90
         dfB: 2
         dfT: 92
      lambda: [2x1 double]
       chisq: [2x1 double]
     chisqdf: [2x1 double]
    eigenval: [4x1 double]
    eigenvec: [4x4 double]
       canon: [100x4 double]
       mdist: [2.8187 0.7899 0.6187 0.4050 0.8538 4.2337 6.0117 4.9600 ... ]
      gmdist: [3x3 double]
      gnames: {3x1 cell}

manova1 функция производит три выходных параметров:

  • Первый выход d оценка размерности средних значений группы. Если бы средние значения были всеми одинаковыми, размерность была бы 0, указав, что средние значения в той же точке. Если бы средние значения отличались, но упали вдоль линии, размерность была бы 1. В примере размерность равняется 2, указывая, что группа означает падение плоскости, но не вдоль линии. Это - самая большая размерность для средних значений трех групп.

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

  • Третий выход stats структура, содержащая несколько полей, описанных в следующем разделе.

Поля stats Структура

WB, и T поля являются матричными аналогами к в, между, и полные суммы квадратов в обычном однофакторном дисперсионном анализе. Следующие три поля являются степенями свободы для этих матриц. Поля lambda, chisq, и chisqdf компоненты теста для размерности средних значений группы. (P-значения для этих тестов являются первым выходным аргументом manova1.)

Следующие три поля используются, чтобы сделать канонический анализ. Вспомните, что в Анализе главных компонентов (PCA) вы ищете комбинацию исходных переменных, которая имеет самое большое изменение. В многомерном дисперсионном анализе вы вместо этого ищете линейную комбинацию исходных переменных, которая имеет самое большое разделение между группами. Это - одна переменная, которая дала бы старший значащий результат в одномерном однофакторном дисперсионном анализе. Найдя, что комбинация, вы затем ищете комбинацию со вторым по высоте разделением и так далее.

eigenvec поле является матрицей, которая задает коэффициенты линейных комбинаций исходных переменных. eigenval поле является вектором, измеряющим отношение отклонения между группами к отклонению в группе для соответствующей линейной комбинации. canon поле является матрицей канонических значений переменных. Каждый столбец является линейной комбинацией сосредоточенных средним значением исходных переменных, с помощью коэффициентов от eigenvec матрица.

c1 = stats.canon(:,1);
c2 = stats.canon(:,2);

Постройте сгруппированный график рассеивания первых двух канонических переменных.

figure
gscatter(c2,c1,Model_Year,[],'oxs')

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent 70, 76, 82.

Сгруппированный график рассеивания первых двух канонических переменных показывает больше разделения между группами затем сгруппированный график рассеивания любой пары исходных переменных. В этом примере это показывает три облака точек, перекрываясь, но с отличными центрами. Одна точка в правом нижнем находится кроме других. Можно отметить эту точку на графике с помощью gname функция.

Примерно разговор, первая каноническая переменная, c1, разделяет эти 1 982 автомобиля (которые имеют высокие значения c1) от более старых автомобилей. Вторая каноническая переменная, c2, показывает некоторое разделение между 1 970 и 1 976 автомобилями.

Итоговые два поля stats структура является расстояниями Mahalanobis. mdist поле измеряет расстояние от каждой точки до ее среднего значения группы. Точки с большими значениями могут быть выбросами. В этом наборе данных самый большой выброс является тем в графике рассеивания, универсале Buick Estate. (Обратите внимание на то, что вы, возможно, предоставили имя модели к gname функция выше, если вы хотели пометить точку с ее именем модели, а не ее номером строки.)

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

max(stats.mdist)
ans = 31.5273

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

find(stats.mdist == ans)
ans = 20

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

Model(20,:)
ans = 
'buick estate wagon (sw)          '

gmdist поле измеряет расстояния между каждой парой средних значений группы. Исследуйте средние значения группы использовать grpstats.

grpstats(x, Model_Year)
ans = 3×4
103 ×

    0.0177    0.1489    0.2869    3.4413
    0.0216    0.1011    0.1978    3.0787
    0.0317    0.0815    0.1289    2.4535

Найдите расстояния между каждой парой средних значений группы.

stats.gmdist
ans = 3×3

         0    3.8277   11.1106
    3.8277         0    6.1374
   11.1106    6.1374         0

Как может ожидаться, многомерное расстояние между экстремальными годами 1970 и 1982 (11.1) больше, чем различие между более близко расположенными годами (3.8 и 6.1). Это сопоставимо с графиками рассеивания, где точки, кажется, следуют за прогрессией, когда год изменяется от 1 970 до 1976 до 1 982. Если у вас было больше групп, вы можете найти его поучительным, чтобы использовать manovacluster функционируйте, чтобы чертить схему, которая представляет кластеры групп, сформированное использование расстояний между их средними значениями.

Смотрите также

| | |