II Всероссийская конференция пользователей MATLAB, 25-26 мая 2004 года >>
На первую страницу
Рубрика Matlab&Toolboxes
Российские MATLAB-разработки
Вход
Раздел "Математика\Statistics Toolbox"

Список функций Statistics Toolbox

В оглавление \ К следующему разделу \ К предыдущему разделу

ANOVAN
Многофакторный дисперсионный анализ (MANOVA)

Синтаксис

p = anovan(X,group) 
p = anovan(X,group,'model')
p = anovan(X,group,'model',sstype) 
p = anovan(X,group,'model',sstype,gnames) 
p = anovan(X,group,'model',sstype,gnames,'displayopt') 
[p,table] = anovan(...)
[p,table,stats] = anovan(...) 
[p,table,stats,terms] = anovan(...) 

Описание

p = anovan(X,group) функция позволяет провести многофакторный дисперсионный анализ для сравнения средних арифметических значений N выборок. Выборки задаются в виде вектора Х. Факторы и их уровни определяются массивом ячеек group. Каждая ячейка аргумента group содержит список уровней факторов соответствующих наблюдениям в векторе Х. Список в каждой ячейке может быть вектором, массивом символов, или массивом ячеек содержащим строковые переменные. Количество элементов group должно совпадать с числом элементов в векторе Х.

Пример задания входных аргументов: выборки X из 8 элементов и аргумента group для 3-х факторов изменяющихся на двух уровнях:

X = [x1 x2 x3 x4 x5 x6 x7 x8];

group = {[1 2 1 2 1 2 1 2]; ['hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo']; {'may' 'may' 'may' 'may' 'june' 'june' 'june' 'june'}};

Уровни первого фактора кодируются целыми числами, второго - вектором строк, третьего - списком строк. Значение x1 соответствует уровню первого фактора равного 1, второго - 'hi', третьего - 'may', и т.д.

Выходной вектор р содержит значения уровней значимости нулевой гипотезы относительно главных эффектов. Элемент p(1) является уровнем значимости нулевой гипотезы, H0A, состоящей в том, что выборки соответствующие уровням фактора А взяты из одной и той же генеральной совокупности. Элемент p(2) является уровнем значимости нулевой гипотезы, H, состоящей в том, что выборки соответствующие уровням фактора В взяты из одной и той же генеральной совокупности. И так далее по всем остальным элементам вектора p(i).

p является вероятностью ошибки первого рода, или вероятностью необоснованно отвергнуть нулевую гипотезу (HO). HO может быть отвергнута, если p близко к нулю. р≈0 для гипотезы H0A означает, что хотя бы одно из средних арифметических, рассчитанных по выборкам, соответствующим различным уровням фактора А, отличается от остальных значений, т.е. существует значимый главный эффект фактора А. И так далее по всем остальным факторам (элементам вектора р(i)).

Выбор критического уровня значимости для условия принятия нулевой гипотезы

,

предоставлен исследователю. В большинстве практических случаев принимают равным 0,05; 0,01.

При проведении дисперсионного анализа общая дисперсия по умолчанию делится на:

  • дисперсию, обусловленную изменениями уровней факторов для заданной модели, кодирующей оцениваемые факторы;

  • остаточная дисперсия.

Таблица с результатами многофакторного дисперсионного анализа отображается в графическом окне и содержит 6 столбцов:

  1. вид дисперсии (Source):

  2. сумму квадратов разностей (SS) между средним арифметическим и значениями выборки по каждому виду дисперсии;

  3. число степеней свободы по каждому виду дисперсии (df);

  4. среднее значение суммы квадратов разностей (MS) по каждому виду дисперсии, определяемое как отношение SS/df;

  5. значение статистики Фишера (F статистики) для MS;

  6. значение уровня значимости p (Prob>F) для рассчитанного значения статистики F.

p = anovan(X,group,'model') функция позволяет провести многофакторный дисперсионный анализ для заданной модели оцениваемых эффектов. Выходной вектор p содержит результаты расчета уровней значимости для нулевых гипотез относительно факторов модели. Вид модели факторов определяется входным аргументом 'model'. Предусмотрены следующие виды моделей: 'linear' - линейная модель, включающая главные эффекты; 'interaction' - модель, включающая эффекты парных взаимодействий; 'full' - полная модель, включающая главные эффекты и эффекты парных взаимодействий.

Кроме указанных строковых значений, входной аргумент 'model' может быть задан как целое число или вектор. Если входной аргумент 'model' задан как целое число k (k≤N) функция anovan позволяет оценить значимость взаимодействий факторов до k уровня. Значения k=1 и k=2 соответствуют 'model'='linear' и 'interaction' соответственно. k=N соответствует 'model'='full'.

Использование вектора целых чисел при определении 'model' позволяет оценить значимость заданных главных эффектов и эффектов взаимодействий факторов. Каждый элемент вектора 'model' кодирует в десятичной форме двоичное число, определяющее главный эффект или эффект взаимодействия. Примеры кодирования главных эффектов или эффектов взаимодействия для 3 факторов приведены в следующей таблице

Двоичный
аналог

Десятичный элемент
вектора 'model'

Вид эффекта при дисперсионном анализе

[0 0 1]

1

Главный эффект A

[0 1 0]

2

Главный эффект B

[1 0 0]

4

Главный эффект C

[0 1 1]

3

Эффект взаимодействия AB

[1 1 0]

6

Эффект взаимодействия BC

[1 0 1]

5

Эффект взаимодействия AC

[1 1 1]

7

Эффект взаимодействия ABC

Например, если 'model'=[2 4 6] выходной вектор р содержит значения уровня значимости для проверки нулевых гипотез значимости главных эффектов В и С и эффекта взаимодействия ВС в приведенном порядке.

Одним из возможных способов задания вектора 'model' является модификация выходного параметра terms функции anovan. Вектор terms кодирует главные эффекты и эффекты взаимодействий факторов согласно формату входного аргумента 'model'. Например, если после проведения дисперсионного анализа по трем факторам для 'model'=[2 4 6] эффект взаимодействий ВС оказался статистически на значим, то для коррекции главных эффектов В и С необходимо использовать 'model'=[2 4].

p = anovan(X,group,'model',sstype) функция позволяет провести многофакторный дисперсионный анализ для заданного способа расчета суммы квадратов отклонений SS. Способ расчета суммы квадратов отклонений определяется входным аргументом sstype. Предусмотрено 3 способа расчета (sstype=1, 2, 3). Значение по умолчанию sstype=3. Способ расчета суммы квадратов отклонений влияет на результаты многофакторного дисперсионного анализа для выборок неодинакового объема.

Сумма квадратов отклонений для какого либо эффекта фактора определяется при сравнении двух составляющих. При первом способе расчета для model(i) SS является разницей остаточных сумм квадратов отклонений множества факторов model(j), где j=1..i, и текущего фактора. Второй способ расчета SS для model(i) представляет собой разность остаточной суммы квадратов отклонений главных эффектов за исключением model(i) и остаточной суммы квадратов отклонений главных эффектов с добавлением model(i). Третий способ расчета SS для model(i) представляет собой разность остаточной суммы квадратов отклонений для всех факторов в model за исключением model(i) и остаточной суммы квадратов отклонений по всем факторам в model.

Рассмотрим пример формирования сумм квадратов отклонений 1, 2, 3 типов для двух факторов А и В. Модель может содержать два главных эффекта факторов А и В и эффект взаимодействия АВ. Порядок эффектов в векторе 'model' соответствует последовательности: А, В, АВ. Величина R(·) представляет остаточную сумму квадратов отклонений для модели, например R(A,B,AB) - остаточная сумма квадратов соответствующая полной модели, R(A) - остаточная сумма квадратов соответствующая главному эффекту фактора А, R(1) - остаточная сумма квадратов соответствующая общему среднему арифметическому. Три способа расчета суммы квадратов для рассматриваемого примера приведены в следующей таблице:

Эффект

1 способ
(
sstype=1)

2 способ
(
sstype=2)

3 способ
(
sstype=3)

A

R(1)-R(A)

R(B)-R(A,B)

R(B,AB)-R(A,B,AB)

B

R(A)-R(A,B)

R(A)-R(A,B)

R(A,AB)-R(A,B,AB)

AB

R(A,B)-R(A,B,AB)

R(A,B)-R(A,B,AB)

R(A,B)-R(A,B,AB)

Модели при расчете SS по третьему способу имеют ограничение по среднему квадратическому отклонению. Это означает, например для остаточной суммы квадратов R(B,AB), массив эффектов АВ ограничен по сумме от 0 до А для каждого значения В и до В для каждого значения А.

p = anovan(X,group,'model',sstype,gnames) входной аргумент gnames служит для определения меток N факторов в таблице дисперсионного анализа. gnames может быть задан как вектор строк или массив ячеек, содержащий строковые переменные, где каждый элемент массива соответствует одному наблюдению. Если входной аргумент gnames не задан, в качестве меток по умолчанию принимаются: 'X1', 'X2', 'X3',...,'XN'.

p = anovan(X,group,'model',sstype,gnames,'displayopt') входной аргумент 'displayopt' позволяет отобразить графическое окно с таблицей результатов дисперсионного анализа 'displayopt'='on', или подавить вывод графического окна 'displayopt'='off'. Значение по умолчанию 'displayopt'='on'.

[p,table] = anovan(...) функция возвращает таблицу с результатами многофакторного дисперсионного анализа, включая метки факторов, в текстовой форме в командное окно MATLAB.

[p,table,stats] = anovan(...) функция возвращает структуру stats используемую для проведения парных сравнений средних арифметических выборок. Проверка параметрической гипотезы о равенстве двух средних арифметических выполняется при помощи функции multcompare. Структура данных stats передается функции multcompare как входной аргумент.

[p,table,stats,terms] = anovan(...) функция возвращает вектор номеров главных эффектов и эффектов взаимодействий terms, использовавшихся при проведении многофакторного дисперсионного анализа. Формат задания оцениваемых эффектов terms соответствует формату вектора 'model'. Если при вызове anovan был использован вектор 'model', то terms='model'.

Примеры использования функции многофакторного дисперсионного анализа

Дисперсионный анализ для 3-х факторов изменяющихся двух уровнях.

  >> X=normrnd(0,1,8,1)
X =
    1.0668
    0.0593
   -0.0956
   -0.8323
    0.2944
   -1.3362
    0.7143
    1.6236
>> group = {[1 2 1 2 1 2 1 2]; ['hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo']; {'may' 'may' 'may' 'may' 'june' 'june' 'june' 'june'}}
group = 
    [1x8 double]
    [8x2 char  ]
    {1x8 cell  }
>> p = anovan(X,group)
p =
    0.4968
    0.7086
    0.7562

 Дисперсионный анализ для 5-ти факторов изменяющихся 3-х уровнях. 
>> X=normrnd(0,1,125,1)
>> group = unidrnd(3,125,3)
>> group = {group (1:125,1); group (1:125,2); group (1:125,3)}
>> p = anovan(X,group)
p =
    0.5567
    0.7518
    0.2289

  Дисперсионный анализ для 3-х факторов, изменяющихся двух уровнях, и модели, содержащей эффекты взаимодействий факторов.
>> X=normrnd(0,1,8,1);
>> group = {[1 2 1 2 1 2 1 2]; ['hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo']; {'may' 'may' 'may' 'may' 'june' 'june' 'june' 'june'}};
>> model='interaction';
>> p = anovan(X,group,model)
p =
    0.1140
    0.1399
    0.5655
    0.3926
    0.3103
    0.1807

 Дисперсионный анализ для 3-х факторов: А, В и С, изменяющихся двух уровнях, и model=[2 4 6] для проверки 
 нулевых гипотез относительно главных эффектов В и С и эффекта взаимодействия ВС.
 
>> X=normrnd(0,1,8,1);
>> group = {[1 2 1 2 1 2 1 2]; ['hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo']; {'may' 'may' 'may' 'may' 'june' 'june' 'june' 'june'}};
>> model=[2 4 6];
>> p = anovan(X,group,model)
p =
    0.7621
    0.7667
    0.4625

  Дисперсионный анализ для 3-х факторов: А, В и С, изменяющихся двух уровнях, и model=[2 4 6] для проверки 
  нулевых гипотез относительно главных эффектов В и С и эффекта взаимодействия ВС. И второго способа расчета 
  суммы квадратов разностей (SS) по каждому виду дисперсии.
  
>> X=normrnd(0,1,8,1);
>> group = {[1 2 1 2 1 2 1 2]; ['hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo']; {'may' 'may' 'may' 'may' 'june' 'june' 'june' 'june'}};
>> model=[2 4 6];
>> sstype = 2;
>> p = anovan(X,group,model, sstype)
p =
    0.0810
    0.4209
    0.5171

 Дисперсионный анализ для 3-х факторов: А, В и С, изменяющихся двух уровнях, и model=[1 2 4 6] для проверки 
 нулевых гипотез относительно главных эффектов А, В, С и эффекта взаимодействия ВС. И второго способа расчета 
 суммы квадратов разностей (SS) по каждому виду дисперсии. В качестве меток используется массив ячеек 
 gnames = {'Xx'; 'Yy'; 'Zz'}.
 
>> X=normrnd(0,1,8,1);
>> group = {[1 2 1 2 1 2 1 2]; ['hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo']; {'may' 'may' 'may' 'may' 'june' 'june' 'june' 'june'}};
>> model=[1 2 4 6];
>> sstype = 2;
>> gnames = {'Xx'; 'Yy'; 'Zz'};
>> p = anovan(X,group,model,sstype,gnames)
p =
    0.4146
    0.8676
    0.4481
    0.5157

Дисперсионный анализ для 3-х факторов: А, В и С, изменяющихся двух уровнях, и модели, содержащей эффекты взаимодействий факторов. И второго способа расчета суммы квадратов разностей (SS) по каждому виду дисперсии. В качестве меток используется массив ячеек gnames = {'Xx'; 'Yy'; 'Zz'}. Кроме уровней значимости для указанных нулевых гипотез, выводятся таблица многофакторного дисперсионного анализа, структура для проведения парного сравнения средних, вектор использованных факторов и их взаимодействий.

>> X=normrnd(0,1,8,1);
>> group = {[1 2 1 2 1 2 1 2]; ['hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo']; {'may' 'may' 'may' 'may' 'june' 'june' 'june' 'june'}};
>> model='interaction';
>> sstype = 2;
>> gnames = {'Xx'; 'Yy'; 'Zz'};
>> [p,table,stats,terms] = anovan(X,group,model,sstype,gnames)
p =
    0.2308
    0.2221
    0.1346
    0.0714
    0.1167
    0.3139
table = 
    'Source'    'Sum Sq.'    'd.f.'    'Singular?'    'Mean Sq.'    'F'          'Prob>F'
    'Xx'        [ 0.5218]    [   1]    [        0]    [  0.5218]    [ 6.9526]    [0.2308]
    'Yy'        [ 0.5675]    [   1]    [        0]    [  0.5675]    [ 7.5609]    [0.2221]
    'Zz'        [ 1.6290]    [   1]    [        0]    [  1.6290]    [21.7042]    [0.1346]
    'Xx*Yy'     [ 5.9145]    [   1]    [        0]    [  5.9145]    [78.8050]    [0.0714]
    'Xx*Zz'     [ 2.1852]    [   1]    [        0]    [  2.1852]    [29.1156]    [0.1167]
    'Yy*Zz'     [ 0.2599]    [   1]    [        0]    [  0.2599]    [ 3.4627]    [0.3139]
    'Error'     [ 0.0751]    [   1]    [        0]    [  0.0751]           []          []
    'Total'     [11.1529]    [   7]    [        0]            []           []          []
stats = 
      source: 'anovan'
      coeffs: [7x1 double]
         Rtr: [7x7 double]
         dfe: 1
         mse: 0.0751
     permvec: [1 2 3 4 5 6 7]
       terms: [6x1 double]
     nlevels: [3x1 double]
    termcols: [7x1 double]
terms =
     1
     2
     4
     3
     5
     6

В оглавление \ К следующему разделу \ К предыдущему разделу


О получении локальных копий сайтов
  Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro   
E-mail:    
  Информация на сайте была обновлена 11.05.2004 Copyright 2001-2004 SoftLine Co 
Наши баннеры