Моделирование систем

Введение в дисперсионный анализ

Разбить на страницы
Показывать лекцию целиком

Теоретическая часть

Объектом исследования дисперсионного анализа являются стохастические связи между откликом (реакцией) и факторами, когда последние носят не количественный, а качественный характер [13].

Дисперсионный анализ применяют, чтобы установить, оказывает ли существенное влияние некоторый качественный фактор $$Х$$, который имеет $$р$$ уровней $$Х_{1},\mbox{ }Х_{2}, …,\mbox{ }Х_{р}$$ на изучаемую величину $$Y$$.

Основная идея дисперсионного анализа состоит в сравнении "факторной дисперсии", порождаемой воздействием конкретного фактора, и "остаточной дисперсии", обусловленной случайными причинами [6]. Если различие между этими дисперсиями значимо, то фактор оказывает существенное влияние на $$Х$$ ; в этом случае средние величины наблюдаемых значений на каждом уровне (групповые средние) различаются также значимо. Если уже установлено, что фактор существенно влияет на $$Х$$, а требуется выяснить, какой из уровней оказывает наибольшее воздействие, то сравнение средних дополнительно производят попарно.

В зависимости от числа анализируемых факторов различают однофакторный, двухфакторный и т. д. дисперсионные анализы [13]. В работе будут рассмотрены однофакторный и двухфакторный дисперсионные анализы.

1. Однофакторный дисперсионный анализ

Однофакторный дисперсионный анализ может быть использован для выявления наиболее существенных связей между переменными при качественном исследовании объектов различной природы.

При однофакторном анализе проверяется действие одного фактора $$х$$ на выходную переменную $$у$$ по результатам $$N$$ экспериментов с $$m$$ дублирующими опытами. Общее количество экспериментов равно $$N\times m$$. Результаты эксперимента $$N\times m$$ наблюдений могут быть сведены в таблицу (табл. 8.1), где $$\bar y$$ означает среднее значение выходной переменной в одной серии дублирующих опытов [3]. Количество $$N$$ экспериментов соответствует возможным уровням фактора $$х$$. Под уровнем фактора понимаются возможные его качественные значения. Поэтому если производится $$N$$ экспериментов, то это означает, что рассматриваются $$N$$ возможных уровней фактора, которые оказывают влияние на значение выходной переменной $$у$$ системы или объекта исследования.

Результаты наблюдений однофакторного эксперимента
Номер уровня фактора Дублирующие опыты Среднее дублирующего опыта
1 2 ... $$\ell$$ ... $$m$$
1 $$y_{11}$$ $$y_{12}$$ ... $$y_{1\ell}$$ ... $$y_{1m}$$ $$\bar y_1$$
2 $$y_{21}$$ $$y_{22}$$ ... $$y_{2\ell}$$ ... $$y_{2m}$$ $$\bar y_2$$
... ... ... ... ... ... ... ...
$$g$$ $$y_{g1}$$ $$y_{g2}$$ ... $$y_{g\ell}$$ ... $$y_{gm}$$ $$\bar y_g$$
$$N$$ $$y_{N1}$$ $$y_{N2}$$ ... $$y_{N\ell}$$ ... $$y_{Nm}$$ $$\bar y_N$$
... ... ... ... ... ... ... ...

Среднее серий из повторных (дублирующих) опытов для каждого уровня фактора определяется по формуле

$$\bar y_g=\frac{1}{m}\sum\limits_{\ell=1}^{m} y_{g\ell},\mbox{ } g=\overline{1,N}.$$

Общее среднее всех $$N\times m$$ наблюдений по всем $$N$$ уровням фактора определяется по формуле

$$\bar{\bar y}=\frac{1}{N}\sum\limits_{g=1}^{N}\bar y_g.$$

Общая сумма $$S_{общ}$$ квадратов отклонений отдельных наблюдений $$y_{g\ell}$$ от общего среднего $$\bar{\bar y}$$ вычисляется по формуле

$$S_{общ}=\sum\limits_{g=1}^{N}\sum\limits_{\ell=1}^{m}(y_{g\ell}-\bar{\bar y})^2.$$

Формулу (8.3) можно преобразовать к виду

$$S_{общ}=\sum\limits_{g=1}^{N}\sum\limits_{\ell=1}^{m}(y_{g\ell}-\bar{\bar y})^2= \sum\limits_{g=1}^{N}\sum\limits_{\ell=1}^{m}(y_{g\ell}-\bar y_{g\ell})^2+ m\sum\limits_{g=1}^{N}(\bar y_{g}-\bar{\bar y})^2=S_0+S_{\chi}$$

где:

$$S_{0}$$ — сумма квадратов отклонений внутри серий, т. е. сумма квадратов разностей между отдельными наблюдениями y_{g\ell0}(\ell=\overline{1,m}) и средним \bar y_g соответствующей серии (g=\overline{1,N});

$$S_{\chi}$$ — сумма квадратов отклонений между сериями или рассеивание по уровням, т. е. взвешенная с учетом числа наблюдений в каждой серии $$(g=\overline{1,N})$$ сумма квадратов между средними $$\bar y_g$$ отдельных серий и общим средним $$\bar{\bar y}$$ по всей совокупности наблюдений.

$$S_{общ}$$ характеризует влияние фактора и случайных причин. $$S_{0}$$ отражает влияние случайных причин. $$S_{\chi}$$ характеризует воздействие фактора.

Если в результате анализа оказалось, что влияние качественного фактора на выходную переменную отсутствует, тогда средние $$\bar y_g(g=\overline{1,N})$$ серий имеют одинаковую оценку математического ожидания и дисперсию $$D$$ и все $$N\times m $$ наблюдений можно рассматривать как выборку из одной и той же совокупности, распределенной по нормальному закону.

Несмещенная общая оценка дисперсии $$s^2$$ по всем $$N\times m$$ наблюдениям определяется по формуле

$$s^2=\frac{S}{Nm-1}\approx D$$

с числом степеней свободы

$$f=N\times m-1.$$

Выборочная дисперсия $$s_0^2$$ внутри серий ( $$\ell=\overline{1,m}$$ ) дублирующих опытов определяется по формуле

$$s^2_0=\frac{S_0}{N(m-1)}\approx D$$

с числом степеней свободы

$$k1=N\times m-1.$$

Выборочная дисперсия $$S^2_{\chi}$$ внутри серий ( $$g=\overline{1,N}$$ ) по уровням определяется по формуле

$$s^2_{\chi}=\frac{S_{\chi}}{N-1}\approx D$$

с числом степеней свободы

$$k2 = N - 1.$$

Проверка значимости влияния фактора производится с помощью критерия Фишера при заданном уровне значимости $$\alpha$$ (% или относительная величина) по формуле

$$F_{расч}=\frac{S_{\chi}^2}{S_0^2}.$$

Если вычисленное значение по результатам наблюдений $$F_{расч}$$ окажется больше значения теоретической величины критерия Фишера $$F_{крит}$$ при заданном уровне значимости и соответствующих степенях свободы (8.8), (8.10), то влияние фактора признается значимым.

Критическое значение критерия Фишера можно определить по таблицам, которые составлены для различных уровней значимости и приводятся во многих учебниках по теории вероятности и математической статистике. Например, если $$s_{0}^2 >s_{\chi}^2$$, то $$k1$$ — число степеней свободы дисперсии $$s_0^2$$ — берется из верхней строки таблицы, а $$k2$$ — число степеней свободы меньшей дисперсии $$s_{\chi}^2$$ — из левого столбца таблицы. Критическое значение критерия Фишера можно определить также с помощью встроенных функций пакета Statistics Toolbox системы MATLAB.

2. Однофакторный дисперсионный анализ с неодинаковым числом испытаний на различных уровнях

Выше рассматривался однофакторный дисперсионный анализ с одинаковым числом испытаний на различных уровнях данного одного фактора. Рассмотрим случай однофакторного дисперсионного анализа, когда число испытаний на различных уровнях различно [6]. Пусть произведено $$q_{1}$$ испытаний на первом уровне ( $$Х_{1}$$ ), $$q_{2}$$ испытаний — на втором уровне $$(Х_{2}),..., q_{p}$$ испытаний – на уровне $$Х_{p}$$. В этом случае общую сумму квадратов отклонений находят по формуле

$$S_{общ}=[P_1+P_2+...+P_p]-\frac{(R_1+R_2+...+R_p)^2}{n},$$

где:

$$P_1=\sum\limits_{i=1}^{q_1}y_{i1}^2$$ — сумма квадратов наблюдавшихся значений отклика на уровне $$Х_{1}$$ ;

$$P_2=\sum\limits_{i=1}^{q_2}y_{i2}^2$$ — сумма квадратов наблюдавшихся значений отклика на уровне $$Х_{2}$$ ;

…………………………………………………………………

$$P_p=\sum\limits_{i=1}^{q_p}y_{ip}^2$$ — сумма квадратов наблюдавшихся значений отклика на уровне $$Х_{1p}$$ ;

$$R_1=\sum\limits_{i=1}^{q_1}y_{i1}^2,\mbox{ }R_2=\sum\limits_{i=1}^{q_2}y_{i2}^2\mbox{, ... ,}R_p=\sum\limits_{i=1}^{q_p}y_{ip}^2$$ — суммы наблюдавшихся значений отклика на уровнях $$Х_{1},\mbox{ }Х_{2}, ... ,\mbox{ }Х_{p}$$ ;

$$n = q_{1} + q_{2} + ... + q_{p}$$ — общее число испытаний (общий объем выборки).

Факторную сумму квадратов отклонений находят по формуле

$$S_{факт}=\left[\left(\frac{R_1^2}{q_1}\right)+\left(\frac{R_2^2}{q_2}\right)+...+\left(\frac{R_p^2}{q_p}\right)\right]-\left[\frac{(R_1+R_2+R_p)^2}{n}\right].$$

Здесь по-прежнему выполняется соотношение $$S_{общ}=S_{факт}+S_{ост}$$.

Поэтому остаточную сумму квадратов можно определить в виде

$$S_{ост}=S_{общ}-S_{факт}.$$

Факторная $$s_{факт}^2$$ и остаточная $$s_{ост}^2$$ дисперсии вычисляются по формулам

$$s_{факт}^2=\frac{S_{факт}}{(p-1)},\qquad s_{ост}^2=\frac{S_{ост}}{(n-p)}$$

Где: $$(p-1)$$ — число степеней свободы факторной дисперсии; (8.16)

$$(n-p)$$ — число степеней свободы остаточной дисперсии; (8.17)

$$p$$ — число факторов.

Проверка значимости влияния фактора производится с помощью критерия Фишера при заданном уровне значимости $$\alpha $$ (процент или относительная величина) по формуле

$$F_{расч}=\frac{S^2_{факт}}{S^2_{ост}}$$

Если вычисленное значение по результатам наблюдений $$F_{расч}$$ окажется больше значения $$F_{крит}$$ теоретической величины критерия Фишера при заданном уровне значимости и соответствующих степенях свободы (8.16), (8.17), то влияние фактора признается значимым. Соответственно, нулевая гипотеза о равенстве групповых средних отвергается.

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

При двухфакторном анализе исследуется влияние двух качественных факторов $$A$$ и $$B$$ на отклик $$X$$. В этом случае дисперсионный анализ основывается на результатах эксперимента, проводимого на различных уровнях каждого из факторов. Предполагается, что взаимосвязь между факторами отсутствует. В эксперименте с повторными опытами результаты могут быть представлены в виде табл. 8.2.

Данные для двухфакторного дисперсионного анализа
Уровни фактора $$A$$ ( $$j=\overline{1,N_1}$$ ) Уровни фактора $$B$$ ( $$g=\overline{1,N_2}$$ )
$$1$$ 2 ... $$g$$ ... $$N_2$$ $$\bar x_j$$
1 $$x_{111}$$

...

$$x_{11\ell}$$

...

$$x_{11m}$$

$$x_{121}$$

...

$$x_{12\ell}$$

...

$$x_{12m}$$

...

...

...

$$x_{1g1}$$

...

$$x_{1g\ell}$$

..

$$x_{1gm}$$

...

...

...

$$x_{1N_21}$$

...

$$x_{1N_2\ell}$$

...

$$x_{1N_2m}$$

$$\bar x_1$$
$$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$
$$j$$ $$x_{j11}$$

...

$$x_{j1\ell}$$

...

$$x_{j1m}$$

$$x_{j21}$$

...

$$x_{j2\ell}$$

...

$$x_{j2m}$$

...

...

...

$$x_{jg1}$$

...

$$x_{jg\ell}$$

..

$$x_{jgm}$$

...

...

...

$$x_{jN_21}$$

...

$$x_{jN_2\ell}$$

...

x $$_{jN_2m}$$

$$\bar x_j$$
$$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$
$$N_1$$ $$x_{N_111}$$

...

$$x_{N_11\ell}$$

...

$$x_{N_11m}$$

$$x_{N_121}$$

...

$$x_{N_12\ell}$$

...

$$x_{N_12m}$$

...

...

...

$$x_{N_1g1}$$

...

$$x_{N_1g\ell}$$

..

$$x_{N_1gm}$$

...

...

...

$$x_{N_1N_21}$$

...

$$x_{N_1N_2\ell}$$

...

$$x_{N_1N_2m}$$

$$\bar x_{N_1}$$
$$\bar x_{g}$$ $$\bar x_{1}$$ $$\bar x_{2}$$ ... $$\bar x_{g}$$ ... $$\bar x_{N_2}$$ $$\bar{\bar x}$$

Результаты обработки данных табл. 8.2 принято сводить в таблицу следующего вида:

Сводная таблица данных
Источник изменчивости Сумма квадратов Число степеней свободы Средняя сумма квадратов Расчетная статистика
Фактор $$A$$ $$S_1$$ $$N_1-1$$ $$s_1^2$$ $$F_{1расч}$$
Фактор $$B$$ $$S_2$$ $$N_2-1$$ $$s_2^2$$ $$F_{1расч}$$
Ошибки $$S_{12}$$ $$(N_1-1)(N_2-1)$$ $$s_{12}^2$$ $$F_{ расч}$$
Сумма $$S_0$$ $$N_1N_2(m-1)$$ $$s_0^2$$

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

  • Общее среднее всех $$N_{1}N_{2}m$$ опытов по всем $$N_{1}N_{2}$$ сочетаниям уровней:$$\bar{\bar x}= \frac{1}{N_2}\sum\limits_{g=1}^{N_2}\bar x_g= \frac{1}{N_1}\sum\limits_{j=1}^{N_1}\bar x_j.$$
  • Общая сумма квадратов отклонений наблюдений от общего среднего:$$S=\sum\limits_{j=1}^{N_1}\sum\limits_{g=1}^{N_2}\sum\limits_{\ell=1}^{m}(x_{jg\ell}-\bar{\bar x})^2=S_0+S_1+S_2+S_{12},$$

    где:

    $$S_{0}$$ — сумма квадратов отклонений внутри серий (табл. 8.3):

    $$S_0=\sum\limits_{j=1}^{N_1}\sum\limits_{g=1}^{N_2}\sum\limits_{\ell=1}^{m}(x_{jg\ell}-\bar x_{jg})^2;$$

    $$S_{1}$$ — сумма квадратов отклонений между строками (табл. 8.3):

    $$S_1=N_2m\sum\limits_{j=1}^{N_1}(\bar x_j-\bar{\bar x})^2;$$

    $$S_{2}$$ — сумма квадратов отклонений между столбцами (табл. 8.3):

    $$S_2=N_1m\sum\limits_{g=1}^{N_2}(\bar y_g-\bar{\bar y})^2;$$

    $$S_{12}$$ — сумма квадратов отклонений между сериями (табл. 8.3):

    $$S_{12}=m\sum\limits_{j=1}^{N_1}\sum\limits_{g=1}^{N_2}(\bar x_{jg}-\bar x_{j}-\bar x_{g}-\bar{\bar x})^2.$$
  • Расчет дисперсий с соответствующим числом степеней свободы

    3.$$s_1^2=\frac{S_1}{(N_1-1)},$$

    $$(N_1-1)$$ — число степеней свободы.

    4.$$s_2^2=\frac{S_2}{(N_2-1)},$$

    $$(N_2-1)$$ — число степеней свободы.

    5.$$s_{12}^2=\frac{S_{12}}{(N_1-1)(N_2-1)},$$

    $$(N_1-1)(N_2-1)$$ — число степеней свободы.

    6.$$s_0^2=\frac{S_0}{N_1N_2(m-1)},$$

    $$N_1N_2(m-1)$$ — число степеней свободы.

    Расчет влияний факторов и их взаимодействий на отклик

    Влияние факторов $$A$$ и $$B$$ признается значимым, если

    $$F_{1расч}=\frac{s_1^2}{s_{12}^2}>F_{крит};$$ $$F_{2расч}=\frac{s_2^2}{s_{12}^2}>F_{крит}$$

    при заданном уровне значимости $$\alpha$$ и соответствующем числе степеней свободы из формул (8.25), (8.26), (8.27).

    Влияние взаимодействия факторов $$A$$, $$B$$ будет значимым, если

    $$F_{расч}=\frac{s_{12}^2}{s_{0}^2}>F_{крит}$$

    при заданном уровне значимости $$\alpha$$ и соответствующем числе степеней свободы из формул (8.27), (8.28).

    Практическая часть

    1. Однофакторный дисперсионный анализ с одинаковым числом испытаний на различных уровнях

    Рассмотрим пример однофакторного анализа, данные которого позаимствованы из [12].

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

    Данные примера
    Способ измерения (уровни фактора) Дублирующие опыты
    1 2 3 4 5 6 7
    Удельная емкость образцов фольги, мкФ/дм2
    1-й способ 9.12 9.30 8.20 10.50 9.80 8.50 10.20
    2-й способ 8.34 8.58 8.18 8.42 8.66 8.26 8.50

    Так как ставится задача изучения влияния одного качественного фактора — способа измерения, применим однофакторный дисперсионный анализ при числе параллельных (дублирующих) опытов $$m = 7$$ при числе уровней факторов $$N = 2$$.

    Программный код решения примера:

    clear, clc
    
    % ПОВТОРНЫЕ НАБЛЮДЕНИЯ ДЛЯ ДВУХ УРОВНЕЙ ФАКТОРА
    A1 = [9.12 9.30 8.20 10.50 9.80 8.50 10.20];
    A2 = [8.34 8.58 8.18 8.42 8.66 8.26 8.50];
    Ygk = [A1;A2];
    N = 2; % ЧИСЛО УРОВНЕЙ ФАКТОРА
    m = length(A1); % ЧИСЛО ПОВТОРНЫХ НАБЛЮДЕНИЙ
    % СРЕДНЕЕ КАЖДОЙ СЕРИИ НАБЛЮДЕНИЙ
    Yg = mean([A1',A2']); 
    
    % СРЕДНЕЕ ВСЕХ НАБЛЮДЕНИЙ
    Ycp = mean(mean([A1,A2])) %% Ycp = (sum(Yg)/N)
    %-----------------------------------------------------------
    fprintf('\n\t ОДНОФАКТОРНЫЙ ДИСПЕРСИОННЫЙ АНАЛИЗ:\n')
    fprintf('\t Число уровней фактора: N = %d\n', N)
    fprintf('\t Число дублирующих наблюдений: m = %d\n', m)
    fprintf('\t Средние значения дублирующих наблюдений: \n\t Yg(%d) = %g\n\t Yg(%d) = %g\n'...
        ,1,Yg(1),2,Yg(2))
    fprintf('\t Среднее значение всех наблюдений:\n\t Ycp = %g\n', Ycp)
    %-----------------------------------------------------------
    % ФОРМИРОВАНИЕ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ
    % ВНУТРИ СЕРИЙ НАБЛЮДЕНИЙ
    So = 0;
    for k = 1 : N
        for r = 1 : m
            So = So + sum(sum(Ygk(k,r) - Yg(k))^2);
        end
    end
    %-----------------------------------------------------------
    % ФОРМИРОВАНИЕ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ
    % МЕЖДУ СЕРИЯМИ НАБЛЮДЕНИЙ
    Sx = 0;
    for g = 1 : N
        Sx = Sx + m*sum((Yg(g) - Ycp)^2);
    end
    %-----------------------------------------------------------
    S = So + Sx;
    fprintf(' Общая сумма квадратов отклонений отдельных наблюдений от общего среднего:\n\t S = %g\n',S)
    D = S/(N*m-1);
    fprintf('\t Несмещенная общая оценка дисперсии по всем N*m (%d*%d = %d) наблюдениям:\n\t D = %g\n',N,m,N*m,D)
    So2 = So/(N*(m - 1));
    Sx2 = Sx/(N - 1);
    fprintf(' Выборочная дисперсия So2 внутри серий с числом степеней свободы Kmax = %d\n\t So2 = %g\n',N*(m - 1),So2)
    fprintf(' Выборочная дисперсия Sx2 внутри серий с числом степеней свободы Kmin = %d\n\t Sx2 = %g\n',N - 1,Sx2)
    fprintf('\n\t РЕЗУЛЬТАТЫ АНАЛИЗА:\n')
    Fpac = Sx2/So2;
    Kx = N - 1;
    Ko = N*(m - 1);
    fprintf('\t Число степеней свободы в эксперименте:\n\t Kx = %d\n\t Ko = %d\n',Kx,Ko)
    %-----------------------------------------------------------
    % КРИТИЧЕСКОЕ ЗНАЧЕНИЕ КРИТЕРИЯ ФИШЕРА Fish
    % ПРИ ВЕРОЯТНОСТИ 0.95 
    h = 0.01;
    r1 = 0 : h : 1000;
    F = fcdf(r1,Kx,Ko);
    for k = 1:length(r1)
    if F(k) >= 0.95  F(k) < 0.9501
         F95 = F(k);
         Fish = r1(k);
       break    
    end
    end
    %-----------------------------------------------------------
    fprintf('\t Расчетное значение критерия Фишера: Fpac = %g\n',Fpac)
    fprintf('\t Критическое значение распределения Фишера при уровне значимости a = 0.05: F = %g\n\n',Fish)
    if Fpac > Fish
    disp(' 1) ВЛИЯНИЕ ФАКТОРА ЗНАЧИМО')
    disp(' 2) СПОСОБЫ ИЗМЕРЕНИЙ ИМЕЮТ РАЗЛИЧНЫЕ СИСТЕМАТИЧЕСКИЕ ОШИБКИ')
    else
    disp(' 3) ВЛИЯНИЕ ФАКТОРА - СПОСОБА ИЗМЕРЕНИЯ НЕ ЗНАЧИМО')
    disp(' 4) СПОСОБЫ ИЗМЕРЕНИЙ ИМЕЮТ СИСТЕМАТИЧЕСКИЕ ОШИБКИ ОДНОГО ПОРЯДКА')
    end

    Результаты выполнения программы для уровня значимости критерия Фишера, равного 0.05

    ОДНОФАКТОРНЫЙ ДИСПЕРСИОННЫЙ АНАЛИЗ
    	 Число уровней фактора: N = 2
    	 Число дублирующих наблюдений: m = 7
    	 Средние значения дублирующих наблюдений: 
    	 Yg(1) = 9.37429
    	 Yg(2) = 8.42
    	 Среднее значение всех наблюдений:
    	 Ycp = 8.89714
    Общая сумма квадратов отклонений отдельных наблюдений от общего среднего:
    	 S = 7.71029
    Несмещенная общая оценка дисперсии по всем N*m (2*7 = 14) наблюдениям:
    	 D = 0.593099
    Выборочная дисперсия So2 внутри серий с числом степеней свободы:
              Kmax = 12
    	 So2 = 0.376914
    Выборочная дисперсия Sx2 внутри серий с числом степеней свободы:
     Kmin = 1
    	 Sx2 = 3.18731
    
    	 РЕЗУЛЬТАТЫ АНАЛИЗА
    	 Число степеней свободы в эксперименте:
    	 Kx = 1
    	 Ko = 12
    	 Расчетное значение критерия Фишера: Fpac = 8.45634
    Критическое значение распределения Фишера при уровне значимости
     a = 0.05: F = 4.75
    
     1) ВЛИЯНИЕ ФАКТОРА ЗНАЧИМО
     2) СПОСОБЫ ИЗМЕРЕНИЙ ИМЕЮТ РАЗЛИЧНЫЕ СИСТЕМАТИЧЕСКИЕ ОШИБКИ

    Примечание. Критическое значение распределения Фишера можно определить по таблицам, которые составлены для различных уровней значимости и приводятся во многих учебниках по теории вероятности и математической статистике [1, 2], где указывается также число степеней свободы — в данном случае эти числа соответствуют числителю и знаменателю расчетного значения критерия Фишера.

    Пояснение к определению критического значения распределения Фишера показано на рис. 8.1, где представлена интегральная функция распределения Фишера с заданными степенями свободы.

    (рис 8.1) Интегральная функция распределения Фишера

    Задание 1

  • Напишите программу построения диаграммы, приведенной на рис. 8.1.
  • Произведите дисперсионный анализ в случае, когда число уровней фактора будет равно 3. Дополнительный уровень сформируйте по данным наблюдений 1-го уровня: с помощью функции $$rand$$ в интервалах между значениями наблюдений. Например, если 1-е наблюдение равно 9.12, 2-е равно 9.3, то первое значение для дополнительного уровня взять по равномерному закону из интервала $$[9.12; 9.3]$$ и т. д.
  • Напишите программу формирования массива критических точек распределения Фишера на основе функции $$finv$$ (см. $$help\mbox{ }finv$$ ) или на основе функции $$fcdf$$ (см. вышеприведенную программу) при следующих параметрах (числом степеней свободы $$\nu_1$$, $$\nu_2$$ и уровне значимости $$\alpha$$ ):
  • 1-й компьютер: $$\nu_1 = 1 : 10,\qquad\nu_2 = 1 : 7,\qquad\alpha = 0.05;$$
  • 2-й компьютер: $$\nu_1 = 1 : 7,\qquad \nu_2 = 1 : 9,\qquad\alpha = 0.025;$$
  • 3-й компьютер: $$\nu_1 = 1 : 9,\qquad \nu_2 = 1 : 10,\qquad\alpha = 0.1;$$
  • 4-й компьютер: $$\nu_1 = 1 : 12,\qquad\nu_2 = 1 : 8,\qquad\alpha = 0.15;$$
  • 5-й компьютер: $$\nu_1 = 1 : 15,\qquad\nu_2 = 1 : 9,\qquad\alpha = 0.1;$$
  • 6-й компьютер: $$\nu_1 = 1 : 9,\qquad \nu_2 = 1:10,\qquad\alpha = 0.06;$$
  • 7-й компьютер: $$\nu_1 = 1 : 12,\qquad\nu_2 = 1 : 8,\qquad\alpha = 0.07;$$
  • 8-й компьютер: $$\nu_1 = 1 : 15,\qquad\nu_2 = 1 : 9,\qquad\alpha = 0.08;$$
  • 9-й компьютер: $$\nu_1 = 1 : 7,\qquad \nu_2 = 1 : 8,\qquad\alpha = 0.05;$$
  • 10-й компьютер: $$\nu_1 = 1 : 12,\qquad\nu_2 = 1 : 13,\qquad\alpha = 0.15$$.
  • 2. Однофакторный дисперсионный анализ с неодинаковым числом испытаний на различных уровнях

    Пример 2. В соответствии с данными эксперимента, приведенными в табл. 8.5, требуется при уровне значимости 0.05 проверить нулевую гипотезу о равенстве групповых средних (числовые данные для примера 2 взяты из [6]).

    Данные эксперимента
    Номер испытания Уровни фактора $$F_{j}$$
    $$i$$ $$F_{1}$$ $$F_{2}$$ $$F_{3}$$
    1

    2

    3

    4

    5

    6

    37

    47

    40

    60

    60

    86

    67

    92

    95

    98

    69

    100

    98

    Среднее уровней 46 83 89

    Программный код решения примера:

    clear, clc
     
    p = 3; % ЧИСЛО УРОВНЕЙ ФАКТОРА
    % ЗНАЧЕНИЯ 1-ГО УРОВНЯ
    F11 = [37 47 40 60];
    % ЗНАЧЕНИЯ 2-ГО УРОВНЯ
    F22 = [60 86 67 92 95 98];
    % ЗНАЧЕНИЯ 3-ГО УРОВНЯ
    F33 = [69 100 98];
    % МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ ЧИСЛА ИСПЫТАНИЙ ДАННЫХ УРОВНЕЙ
    maxLen = max([length(F11),length(F22),length(F33)]);
    
    if maxLen - length(F11) > 0
        F1 = [F11,zeros(1,maxLen - length(F11))];
    else
        F1 = F11;
    end
    if maxLen - length(F22) > 0
        F2 = [F22,zeros(1,maxLen - length(F22))];
    else
        F2 = F22;
    end
    if maxLen - length(F33) > 0
        F3 = [F33,zeros(1,maxLen - length(F33))];
    else
        F3 = F33;
    end
    
    fprintf('\n ДИСПЕРСИОННЫЙ АНАЛИЗ С НЕОДИНАКОВЫМ ЧИСЛОМ ИСПЫТАНИЙ\n')
    disp('======================================================')
    fprintf('\t\t Таблица данных эксперимента\n')
    disp('----------------------------------------------')
    fprintf('\t Номер испытания |\t Уровни фактора Fj\t|\n')
    disp('----------------------------------------------')
    fprintf('%*si%*s|\tF1\t|\tF2\t|\tF3\t|\n', 8, '', 12, '')
    disp('----------------------------------------------')
    for J = 1:6
        if ~F1(J)  ~F2(J)  ~F3(J)
    fprintf('\t\t%d\t\t\t |\t%s\t|\t%s\t|\t%s\t|\n',J,'-','-','-')
    
    elseif ~F1(J)  ~F2(J)
    fprintf('\t\t%d\t\t\t |\t%s\t|\t%s\t|\t%g\t|\n',J,'-','-',F3(J))
    
    elseif ~F1(J)  ~F3(J)
     fprintf('\t\t%d\t\t\t |\t%s\t|\t%g\t|\t%s\t|\n',J,'-',F2(J),'-')
    
    elseif ~F3(J)  F1(J)  F2(J)
    fprintf('\t\t%d\t\t\t |\t%g\t|\t%g\t|\t%s\t|\n',J,F1(J),F2(J),'-')
        
    else
    fprintf('\t\t%d%*s|\t%g\t|\t%g\t|\t%g\t|\n',J,12,'',F1(J),F2(J),F3(J))
       end
    end
    disp('----------------------------------------------')
    fprintf('Среднее уровней Xгрj |\t%g\t|\t%g\t|\t%g\t|\n',mean(F11),mean(F22),mean(F33))
    disp('----------------------------------------------')
    fprintf('\t\t Число испытаний:\n\t\t на уровне F1: %d\n\t\t на уровне F2: %d\n\t\t на уровне F3: %d\n ', 
     length(F11),length(F22),length(F33))
    fprintf('\t Общее число испытаний: %d\n',length(F11)+length(F22)+length(F33))
    disp('=====================================================================')
    fprintf('\t\t\t Таблица расчетных данных эксперимента\n')
    disp('   ------------------------------------------------------------------')
    fprintf('\t Номер испытания |%*sУровни фактора Fj\t\t\t\t|\n', 16, '')
    disp('   ------------------------------------------------------------------')
    fprintf('%*si%*s|\t\t F1\t\t|\t\t F2\t\t|\t\t F3\t\t|\n', 8,'', 12,'')
    fprintf('%*s ------------------------------------------------\n', 20, '')
    fprintf('%*s | xi1 | xi1_2\t| xi2\t| xi2_2 | xi3 | xi3_2\t|\n', 20, '')
    disp('   ------------------------------------------------------------------')
    for J = 1 : maxLen
        if ~F1(J)  ~F2(J)  ~F3(J)
        fprintf('\t\t%d\t|\t\t |\t%s\t|\t%s\t|\t%s\t|\t%s\t|\t%s\t|\t%s\t|\n',J,'-','-','-','-','-','-')
    elseif ~F1(J)  ~F2(J)
        fprintf('\t\t%d\t\t\t |\t%s\t|\t%s\t|\t%s\t|\t%s\t|\t%g\t|%g\t|\n',J,'-','-',F3(J),F3(J)^2)
    elseif ~F1(J)  ~F3(J)
        fprintf('\t\t%d\t\t\t |\t%s\t|\t%s\t|\t%g\t| %g\t|\t%s\t|\t%s\t|\n',J,'-','-',F2(J),F2(J)^2,'-','-')
    elseif ~F3(J)  F1(J)  F2(J)
        fprintf('\t\t%d%*s|\t%g\t| %g\t|\t%g\t| %g\t|\t%s\t|\t%s\t|\n',J,12,'',F1(J),F1(J)^2,F2(J),F2(J)^2,'-','-')
        else
        fprintf('\t\t%d%*s|\t%g\t| %g\t|\t%g\t| %g\t|\t%g\t| %g\t|\n',J,12,'',F1(J),F1(J)^2,F2(J),F2(J)^2,F3(J),F3(J)^2)
    end
    end
    disp('   ------------------------------------------------------------------')
    fprintf('\tСумма квадратов  |\t\t| %g\t| %s\t\t| %g\t| %s\t\t| %g\t|\n ',sum(F11.^2),'',sum(F22.^2),'',sum(F33.^2))
    disp('   -----------------------------------------------------------------')
    fprintf('\tСумма уровней\t |%g\t| %s\t\t| %g\t| %s\t\t| %g\t| %s\t\t|\n ',sum(F11),'',sum(F22),'',sum(F33),'')
    disp('   -----------------------------------------------------------------')
    fprintf('\tКвадрат суммы \t |%g\t| %s\t\t|%g\t| %s\t\t|%g\t| %s\t\t|\n',(sum(F11))^2,'',(sum(F22))^2,'',(sum(F33))^2,'')
    fprintf('\t уровней\t\t |\t\t|\t\t|\t\t|\t\t|\t\t|\t\t|\n')
    disp('=====================================================================')
    disp('   ------------------------------------------------------------------')
    Q = sum(F11.^2) + sum(F22.^2) + sum(F33.^2);
    T = sum(F11) + sum(F22) + sum(F33);
    n = length(F11) + length(F22) + length(F33);
    Sob = Q - T^2/n;
    fprintf('\t Общая сумма квадратов отклонений: Sобщ = %g\n',Sob)
    disp('   ------------------------------------------------------------------')
    Sf = (sum(F11))^2/length(F11) + (sum(F22))^2/length(F22) + (sum(F33))^2/length(F33) - T^2/n;
    fprintf('\t Факторная сумма квадратов отклонений: Sфакт = %g\n',Sf)
    disp('   ------------------------------------------------------------------')
    Sost = Sob - Sf;
    fprintf('\t Остаточная сумма квадратов отклонений: Sост = %g\n',Sost)
    disp('   ------------------------------------------------------------------')
    s2f = Sf/(p - 1);
    fprintf('\t Факторная дисперсия: Dфакт = %g\n',s2f)
    disp('   ------------------------------------------------------------------')
    s2oc = Sost/(n - p);
    fprintf('\t Остаточная дисперсия: Dост = %g\n',s2oc)
    disp('   --------------------------------------------------------------------------------------')
    Fpac = s2f/s2oc;
    fprintf('\t Расчетное значение критерия Фишера: Fpac = %g\n',Fpac)
    fprintf('\t Число степеней свободы: v1 = %d\t v2 = %d\n',p -1,n - p)
    a = 0.05;
    fprintf('\t Уровень значимости a = %g\n',a)
    v1 = p - 1;
    v2 = n - p;
    
    fprintf('\t Используется функция finv для расчета критического значения критерия Фишера\n');
    Fkp = finv(1 - a,v1,v2);
    
    fprintf('\t Критическое значение критерия Фишера на уровне значимости a = %g: Fkp = %g\n', a,Fkp)
    disp('   --------------------------------------------------------------------------------------')
    if Fpac > Fkp
    fprintf('\t Fpac > Fkp (%g > %g)\n', Fpac, Fkp)
    else
    fprintf('\t Fpac < Fkp (%g < %g)\n', Fpac, Fkp)
    end
    disp('  -----------------------------------------------------------------------------------------')
    fprintf('\n\t РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА:\n')
    if Fpac > Fkp
    fprintf('\t Нулевая гипотеза о равенстве групповых средних отвергается\n');
     
        else
    fprintf('\t Нулевая гипотеза о равенстве групповых средних принимается\n');
     
    end

    Часть результатов выполнения программы

    ------------------------------------------------------------------
    	 Общая сумма квадратов отклонений: Sобщ = 6444
     -----------------------------------------------------------------
    	 Факторная сумма квадратов отклонений: Sфакт = 4284
     -----------------------------------------------------------------
    	 Остаточная сумма квадратов отклонений: Sост = 2160
     -----------------------------------------------------------------
    	 Факторная дисперсия: Dфакт = 2142
     -----------------------------------------------------------------
    	 Остаточная дисперсия: Dост = 216
     ----------------------------------------------------------------
    	 Расчетное значение критерия Фишера: Fpac = 9.91667
    	 Число степеней свободы: v1 = 2	 v2 = 10
    	 Уровень значимости a = 0.05
    	 Используется функция finv для расчета критического значения критерия Фишера
    	 Критическое значение критерия Фишера на уровне значимости
          a = 0.05: Fkp = 4.10282
     ---------------------------------------------------------------
    	 Fpac > Fkp (9.91667 > 4.10282)
     ----------------------------------------------------------------
    	 РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА
    	 Нулевая гипотеза о равенстве групповых средних отвергается

    Задание 2

    В соответствии с номером компьютера (1, 2, 3, ...) напишите программу по дисперсионному анализу с неодинаковым числом испытаний на различных уровнях одного фактора.

    Компьютер № 1: считая, что имеются 3 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n1=11*abs([[randn(4,1);zeros(2,1)],[randn(3,1);zeros(3,1)],randn(6,1)])$$

    Компьютер № 2: считая, что имеются 3 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n2=12*abs([[randn(4,1);zeros(2,1)],[randn(5,1);zeros(1,1)],randn(6,1)])$$

    Компьютер № 3: считая, что имеются 3 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n3=13*abs([[randn(2,1);zeros(4,1)],[randn(5,1);zeros(1,1)],randn(6,1)])$$

    Компьютер № 4: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n4=14*abs([[randn(3,1);zeros(3,1)],[randn(5,1);zeros(1,1)],randn(6,1),[randn(2,1);zeros(4,1)]])$$

    Компьютер № 5: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n5=15*abs([[randn(2,1);zeros(3,1)],[randn(4,1);zeros(1,1)],randn(5,1),[randn(3,1);zeros(2,1)]])$$

    Компьютер № 6: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n6=16*abs([[randn(2,1);zeros(4,1)],[randn(4,1);zeros(2,1)],randn(6,1),[randn(3,1);zeros(3,1)]])$$

    Компьютер № 7: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n7=17*abs([[randn(2,1);zeros(5,1)],[randn(4,1);zeros(3,1)],randn(7,1),[randn(3,1);zeros(4,1)]])$$

    Компьютер № 8: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n8=18*abs([[randn(3,1);zeros(5,1)],[randn(4,1);zeros(4,1)],randn(8,1),[randn(3,1);zeros(5,1)]])$$

    Компьютер № 9: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n9=9*abs([[randn(2,1);zeros(7,1)],[randn(5,1);zeros(4,1)],randn(9,1),[randn(3,1);zeros(6,1)]])$$

    Компьютер № 10: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n10=8*abs([[randn(3,1);zeros(7,1)],[randn(4,1);zeros(6,1)],randn(10,1),[randn(3,1);zeros(7,1)]])$$

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

    Пример 3. В таблице 8.6 представлены результаты наблюдений над откликом $$Х$$ на пяти уровнях фактора $$А$$ и четырех уровнях фактора $$В$$ [13]. Требуется проверить на уровне значимости $$\alpha = 0.01$$ гипотезы:

    $$Н_{0}(А)$$ — отсутствие влияния фактора $$А$$ на величину отклика $$Х$$ ;

    $$Н_{0}(В)$$ — отсутствие влияния фактора $$В$$ на величину отклика $$Х$$.

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

    В данном примере повторные опыты или наблюдения отсутствуют, по-этому дисперсионный анализ проводится проще, чем это было проведено для общего случая в теоретической части лабораторной работы № 8.

    Данные двухфакторного эксперимента
    Уровни фактора $$В(i)$$ Уровни фактора $$А(i)$$
    1 2 3 4 5
    1 4 18 26 38 44
    2 3 19 25 35 43
    3 6 18 24 28 39
    4 7 13 21 31 38

    Обозначим:

    $$Ар = 5$$ — число уровней фактора $$А$$ ;

    $$Вр = 4$$ — число уровней фактора $$В$$ ;

    $$n = 20$$ — общее число наблюдений (опытов) в эксперименте;

    $$М = [4,18,26,38,44;3,19,25,35,43;6,18,24,28,39;7,13,21,31,38]$$ — матрица эксперимента.

    Программный код решения примера:

    clear,clc,pause(0.5)
    % ВВОД ИСХОДНЫХ ДАННЫХ ЭКСПЕРИМЕНТА
    Ap = 5; % ЧИСЛО УРОВНЕЙ ФАКТОРА А
    Bp = 4; % ЧИСЛО УРОВНЕЙ ФАКТОРА В
    % УРОВЕНЬ ЗНАЧИМОСТИ ПРОВЕРКИ ГИПОТЕЗ
    a = 0.01;
    % ОБЩЕЕ ЧИСЛО ОПЫТОВ В ЭКСПЕРИМЕНТЕ
    n = Ap*Bp;
    % МАТРИЦА ЭКСПЕРИМЕНТА
    M = [4,18,26,38,44;3,19,25,35,43;6,18,24,28,39;7,13,21,31,38]; 
    fprintf('\n\t\t\t ДВУХФАКТОРНЫЙ ДИСПЕРСИОННЫЙ АНАЛИЗ\n')
    fprintf('\t---------------------------------------------------------\n'); fprintf('\t Число уровней фактора А: Ap = %d\n',Ap)
    fprintf('\t Число уровней фактора B: Bp = %d\n',Bp)
    fprintf('\t Число опытов в эксперименте: n = %d\n',n)
    fprintf('\t Уровень значимости проверки гипотез: a = %1.2f\n',a)
    fprintf('\t---------------------------------------------------------\n')
    fprintf('\t| Уровни \t\t|\t\t Уровни фактора А(i)\t\t\t|\n')
    fprintf('\t| фактора B(j)\t|---------------------------------------|\n')
    fprintf('\t|%*s|', 16,''),fprintf('\t%d\t|',1:Ap)
    fprintf('\n\t---------------------------------------------------------\n')
    Mp = [(1:Bp)',M];
    fprintf('\t|\t\t%d\t\t|\t%d\t|\t%d\t|\t%d\t|\t%d\t|\t%d\t|\n',Mp')
    fprintf('\t---------------------------------------------------------\n')
    % СРЕДНЕЕ ВСЕГО ЭКСПЕРИМЕНТА
    Xcp = mean(mean(M));
    fprintf('\t Среднее всего эксперимента: Xcp = %g\n',Xcp)
    % СРЕДНЕЕ ПО СТРОКАМ МАТРИЦЫ ЭКСПЕРИМЕНТА
    Xcmp = mean(M,2);
    fprintf('\t---------------------------------------------------------\n')
    fprintf('\t Среднее по строкам матрицы эксперимента X.j:\n')
    fprintf('\t\t %g',Xcmp)
    fprintf('\n')
    fprintf('\t---------------------------------------------------------\n')
    % СРЕДНЕЕ ПО СТОЛБЦАМ МАТРИЦЫ ЭКСПЕРИМЕНТА
    Xcmb = mean(M);
    
    fprintf('\t Среднее по столбцам матрицы эксперимента Xi.:\n')
    fprintf('\t\t %g',Xcmb)
    fprintf('\n')
    fprintf('\t---------------------------------------------------------\n')
    % СУММА КВАДРАТОВ ОТКЛОНЕНИЙ ПО ФАКТОРУ А
    QA2 = Bp*sum((Xcmb - Xcp).^2);
    Na = Ap - 1;
    SA2 = QA2/Na;
    fprintf('\t Сумма квадратов отклонений по фактору А: QA2 = %g\n',QA2)
    fprintf('\t Число степеней свободы фактора А: Na = %g\n',Na)
    fprintf('\t Средняя сумма квадратов по числу степеней свободы: SA2 = %g\n',SA2)
    fprintf('\t---------------------------------------------------------\n')
    % СУММА КВАДРАТОВ ОТКЛОНЕНИЙ ПО ФАКТОРУ В
    QB2 = Ap*sum((Xcmp - Xcp).^2);
    Nb = Bp - 1;
    SB2 = QB2/Nb;
    fprintf('\t Сумма квадратов отклонений по фактору В: QB2 = %g\n',QB2)
    
    fprintf('\t Число степеней свободы по фактору В: Nb = %g\n',Nb)
    fprintf('\t Средняя сумма квадратов по числу степеней свободы: SB2 = %g\n',SB2)
    fprintf('\t---------------------------------------------------------\n')
    fprintf('\t\t\t ОШИБКИ\n')
    Qo = 0;
    for I = 1:Ap
        for J = 1:Bp
            Qo = Qo + (M(J,I) - Xcmb(I) - Xcmp(J) + Xcp)^2;
        end
    end
    fprintf('\t Ошибка суммы квадратов: Qo = %g\n',Qo)
    Nab = Na*Nb;
    fprintf('\t Число степеней свободы: Nab = %d\n',Nab)
    So2 = Qo/Nab;
    fprintf('\t Средняя сумма квадратов ошибки: So2 = %g\n',So2)
    fprintf('\t---------------------------------------------------------\n')
    Q = 0;
    for I = 1:Ap
        for J = 1:Bp
            Q = Q + (M(J,I) - Xcp)^2;
        end
    end
    fprintf('\t Общая сумма квадратов отклонений: Q = %g\n', Q)
    Nq = Ap*Bp - 1;
    
    fprintf('\t Число степеней свободы: Nq = %d\n', Nq)
    fprintf('\t--------------------------------------------------\n')
    % РАСЧЕТНЫЕ СТАТИСТИКИ ФИШЕРА
    fprintf('\t\t РАСЧЕТНЫЕ СТАТИСТИКИ ФИШЕРА\n')
    Fa = SA2/So2;
    fprintf('\t Статистика по фактору А: Fa = %g\n', Fa)
    Fb = SB2/So2;
    fprintf('\t Статистика по фактору B: Fb = %g\n', Fb)
    fprintf('\t--------------------------------------------------\n')
    % КРИТИЧЕСКИЕ ТОЧКИ КРИТЕРИЯ ФИШЕРА
    fprintf('\t\t КРИТИЧЕСКИЕ ТОЧКИ КРИТЕРИЯ ФИШЕРА\n')
    Ffa = finv(1 - a,Na,Nab);
    fprintf('\t Критическая точка по фактору А: Ffa = %g\n', Ffa)
    Ffb = finv(1 - a,Nb,Nab);
    fprintf('\t Критическая точка по фактору B: Ffb = %g\n', Ffb)
    fprintf('\t--------------------------------------------------\n')
    % РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА ПО ПРОВЕРКЕ ГИПОТЕЗ ВЛИЯНИЯ ФАКТОРОВ
    fprintf('\n\t РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА\n')
    fprintf('\t ПО ПРОВЕРКЕ ГИПОТЕЗ ВЛИЯНИЯ ФАКТОРОВ\n')
    fprintf('\t НА УРОВНЕ ЗНАЧИМОСТИ a = %1.2f\n',a)
    % ПРОВЕРКА ФАКТОРА А
    if Fa > Ffa
        fprintf('\n\t 1) Гипотезу о влиянии фактора А на отклик следует отвергнуть,\n')
        fprintf('\t\tтак как Fa = %g > Ffa = %g\n', Fa, Ffa)
    elseif Fa < Ffa
        fprintf('\n\t 1) Гипотезу о влиянии фактора А на отклик следует принять,\n')
        fprintf('\t\tтак как Fa = %g < Ffa = %g\n', Fa, Ffa)
    else
        fprintf('\n\t 1) Гипотезу о влиянии фактора А на отклик следует принять,\n')
        fprintf('\t\tтак как Fa = %g = Ffa = %g\n', Fa, Ffa)
    end
    % ПРОВЕРКА ФАКТОРА В
    if Fb > Ffb
        fprintf('\t 2) Гипотезу о влиянии фактора B на отклик следует отвергнуть,\n')
        fprintf('\t\tтак как Fb = %g > Ffb = %g\n', Fb, Ffb)
    elseif Fb < Ffb
        fprintf('\t 2) Гипотезу о влиянии фактора B на отклик следует принять,\n')
        fprintf('\t\tтак как Fb = %g < Ffb = %g\n', Fb, Ffb)
    else
        fprintf('\t 2) Гипотезу о влиянии фактора B на отклик следует принять,\n')
        fprintf('\t\tтак как Fb = %g = Ffb = %g\n', Fb, Ffb)
    end

    Результаты выполнения программы без матрицы данных эксперимента

    ДВУХФАКТОРНЫЙ ДИСПЕРСИОННЫЙ АНАЛИЗ
    	---------------------------------------------------------
    	 Число уровней фактора А: Ap = 5
    	 Число уровней фактора B: Bp = 4
    	 Число опытов в эксперименте: n = 20
    	 Уровень значимости проверки гипотез: a = 0.01
       ………………………………………………………………………………………
    	
    	 Среднее всего эксперимента: Xcp = 24
    	---------------------------------------------------------
    	 Среднее по строкам матрицы эксперимента X.j:
    		 26		 25		 23		 22
    	---------------------------------------------------------
    	 Среднее по столбцам матрицы эксперимента Xi.:
    		 5		 17		 24		 33		 41
    	---------------------------------------------------------
    	 Сумма квадратов отклонений по фактору А: QA2 = 3120
    	 Число степеней свободы фактора А: Na = 4
    	 Средняя сумма квадратов по числу степеней свободы: SA2 = 780
    	---------------------------------------------------------
    	 Сумма квадратов отклонений по фактору В: QB2 = 50
    	 Число степеней свободы по фактору В: Nb = 3
    	 Средняя сумма квадратов по числу степеней свободы: 
          SB2 = 16.6667
    	---------------------------------------------------------
    			 ОШИБКИ
    	 Ошибка суммы квадратов: Qo = 80
    	 Число степеней свободы: Nab = 12
    	 Средняя сумма квадратов ошибки: So2 = 6.66667
    	---------------------------------------------------------
    	 Общая сумма квадратов отклонений: Q = 3250
    	 Число степеней свободы: Nq = 19
    	---------------------------------------------------------
    		 РАСЧЕТНЫЕ СТАТИСТИКИ ФИШЕРА
    	 Статистика по фактору А: Fa = 117
    	 Статистика по фактору B: Fb = 2.5
    	---------------------------------------------------------
    		 КРИТИЧЕСКИЕ ТОЧКИ КРИТЕРИЯ ФИШЕРА
    	 Критическая точка по фактору А: Ffa = 5.41195
    	 Критическая точка по фактору B: Ffb = 5.95254
    	---------------------------------------------------------
    	 РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА
    	 ПО ПРОВЕРКЕ ГИПОТЕЗ ВЛИЯНИЯ ФАКТОРОВ
    	 НА УРОВНЕ ЗНАЧИМОСТИ a = 0.01
    
    	 1) Гипотезу о влиянии фактора А на отклик следует отверг-нуть,
    		так как Fa = 117 > Ffa = 5.41195
    	 2) Гипотезу о влиянии фактора B на отклик следует принять,
    		так как Fb = 2.5 < Ffb = 5.95254

    Задание 3

    В соответствии с номером компьютера (1, 2, 3, ...) напишите программы в MATLAB по решению приводимых ниже примеров, когда требуется проверить гипотезы о влиянии фактора $$А$$ и фактора $$В$$ на отклик $$Х$$, а также гипотезы, когда влияние взаимодействия факторов будет значимым.

    Компьютер № 1: при уровне значимости $$\alpha = 0.1$$

    x11=abs(11*normrnd(1,1,4,5));x12=abs(11*normrnd(1,1,4,5));x13=abs(11*normrnd(1,1,4,5));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 2: при уровне значимости $$\alpha = 0.02$$

    x11=abs(12*normrnd(2,1,5,6));x12=abs(12*normrnd(3,1,5,6));x13=abs(12*normrnd(4,1,5,6));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 3: при уровне значимости $$\alpha = 0.03$$

    x11=abs(13*normrnd(3,1,6,7));x12=abs(13*normrnd(4,1,6,7));x13=abs(13*normrnd(5,1,6,7));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 4: при уровне значимости $$\alpha = 0.04$$

    x11=abs(14*normrnd(4,.1,8,6));x12=abs(13*normrnd(5,.4,8,6));x13=abs(13*normrnd(6,.8,8,6));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 5: при уровне значимости $$\alpha = 0.05$$

    x11=abs(15*normrnd(1,.5,5,4));x12=abs(15*normrnd(1,.6,5,4));
    x13=abs(15*normrnd(1,.7,5,4)); x14=abs(15*normrnd(1,.8,5,4));  
    % Матрица данных эксперимента при m = 4 повторных опытах
    M = cat(4,x11,x12,x13,x14)

    Компьютер № 6: при уровне значимости $$\alpha = 0.06$$

    x11=abs(16*normrnd(2,1,6,4));x12=abs(16*normrnd(3,1,6,4));
    x13=abs(16*normrnd(4,1,6,4)); x14=abs(16*normrnd(1,.8,6,4));  
    % Матрица данных эксперимента при m = 4 повторных опытах
    M = cat(4,x11,x12,x13,x14)

    Компьютер № 7: при уровне значимости $$\alpha = 0.07$$

    x1=abs(17*normrnd(7,.7,7,5));x2=abs(17*normrnd(8,.72,7,5));
    x3=abs(17*normrnd(9,.73,7,5)); x4=abs(17*normrnd(10,2,7,5));
    x5=abs(17*normrnd(11,1,7,5));  
    % Матрица данных эксперимента при m = 4 повторных опытах
    M = cat(4,x1,x2,x3,x4,x5)

    Компьютер № 8: при уровне значимости $$\alpha = 0.08$$

    x1=abs(18*normrnd(8,1,8,6));x2=abs(18*normrnd(9,1,8,6));
    x3=abs(18*normrnd(10,1,8 ,6));x4=abs(18*normrnd(11,1,8,6)); 
    x5=abs(18*normrnd(12,1,8,6));  x6=abs(18*normrnd(13,1,8,6));
    % Матрица данных эксперимента при m = 4 повторных опытах
    M = cat(4,x1,x2,x3,x4,x5,x6)

    Компьютер № 9: при уровне значимости $$\alpha = 0.09$$

    x11=abs(9*normrnd(1,1,4,5));x12=abs(9*normrnd(1,1,4,5));x13=abs(9*normrnd(1,1,4,5));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 10: при уровне значимости $$\alpha = 0.01$$

    x11=abs(10*normrnd(2,1,5,6));x12=abs(10*normrnd(3,1,5,6));x13=abs(10*normrnd(4,1,5,6));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Примечание. Матрица данных эксперимента $$М$$ — многомерная матрица, которая представляет собой данные повторных опытов или наблюдений.

    Контрольные вопросы

  • Что такое факторы в дисперсионном анализе?
  • С какой целью применяют дисперсионный анализ?
  • Что такое многофакторный дисперсионный анализ?
  • Что называется факторной дисперсией в дисперсионном анализе?
  • Что такое остаточная дисперсия в дисперсионном анализе?
  • Как производится проверка значимости влияния фактора?
  • В каком случае влияние качественного фактора на выходную переменную отсутствует?
  • Как рассчитывается несмещенная оценка выборочной дисперсии?
  • Страницы:

    Теоретическая часть

    Объектом исследования дисперсионного анализа являются стохастические связи между откликом (реакцией) и факторами, когда последние носят не количественный, а качественный характер [13].

    Дисперсионный анализ применяют, чтобы установить, оказывает ли существенное влияние некоторый качественный фактор $$Х$$, который имеет $$р$$ уровней $$Х_{1},\mbox{ }Х_{2}, …,\mbox{ }Х_{р}$$ на изучаемую величину $$Y$$.

    Основная идея дисперсионного анализа состоит в сравнении "факторной дисперсии", порождаемой воздействием конкретного фактора, и "остаточной дисперсии", обусловленной случайными причинами [6]. Если различие между этими дисперсиями значимо, то фактор оказывает существенное влияние на $$Х$$ ; в этом случае средние величины наблюдаемых значений на каждом уровне (групповые средние) различаются также значимо. Если уже установлено, что фактор существенно влияет на $$Х$$, а требуется выяснить, какой из уровней оказывает наибольшее воздействие, то сравнение средних дополнительно производят попарно.

    В зависимости от числа анализируемых факторов различают однофакторный, двухфакторный и т. д. дисперсионные анализы [13]. В работе будут рассмотрены однофакторный и двухфакторный дисперсионные анализы.

    1. Однофакторный дисперсионный анализ

    Однофакторный дисперсионный анализ может быть использован для выявления наиболее существенных связей между переменными при качественном исследовании объектов различной природы.

    При однофакторном анализе проверяется действие одного фактора $$х$$ на выходную переменную $$у$$ по результатам $$N$$ экспериментов с $$m$$ дублирующими опытами. Общее количество экспериментов равно $$N\times m$$. Результаты эксперимента $$N\times m$$ наблюдений могут быть сведены в таблицу (табл. 8.1), где $$\bar y$$ означает среднее значение выходной переменной в одной серии дублирующих опытов [3]. Количество $$N$$ экспериментов соответствует возможным уровням фактора $$х$$. Под уровнем фактора понимаются возможные его качественные значения. Поэтому если производится $$N$$ экспериментов, то это означает, что рассматриваются $$N$$ возможных уровней фактора, которые оказывают влияние на значение выходной переменной $$у$$ системы или объекта исследования.

    Результаты наблюдений однофакторного эксперимента
    Номер уровня фактора Дублирующие опыты Среднее дублирующего опыта
    1 2 ... $$\ell$$ ... $$m$$
    1 $$y_{11}$$ $$y_{12}$$ ... $$y_{1\ell}$$ ... $$y_{1m}$$ $$\bar y_1$$
    2 $$y_{21}$$ $$y_{22}$$ ... $$y_{2\ell}$$ ... $$y_{2m}$$ $$\bar y_2$$
    ... ... ... ... ... ... ... ...
    $$g$$ $$y_{g1}$$ $$y_{g2}$$ ... $$y_{g\ell}$$ ... $$y_{gm}$$ $$\bar y_g$$
    $$N$$ $$y_{N1}$$ $$y_{N2}$$ ... $$y_{N\ell}$$ ... $$y_{Nm}$$ $$\bar y_N$$
    ... ... ... ... ... ... ... ...

    Среднее серий из повторных (дублирующих) опытов для каждого уровня фактора определяется по формуле

    $$\bar y_g=\frac{1}{m}\sum\limits_{\ell=1}^{m} y_{g\ell},\mbox{ } g=\overline{1,N}.$$

    Общее среднее всех $$N\times m$$ наблюдений по всем $$N$$ уровням фактора определяется по формуле

    $$\bar{\bar y}=\frac{1}{N}\sum\limits_{g=1}^{N}\bar y_g.$$

    Общая сумма $$S_{общ}$$ квадратов отклонений отдельных наблюдений $$y_{g\ell}$$ от общего среднего $$\bar{\bar y}$$ вычисляется по формуле

    $$S_{общ}=\sum\limits_{g=1}^{N}\sum\limits_{\ell=1}^{m}(y_{g\ell}-\bar{\bar y})^2.$$

    Формулу (8.3) можно преобразовать к виду

    $$S_{общ}=\sum\limits_{g=1}^{N}\sum\limits_{\ell=1}^{m}(y_{g\ell}-\bar{\bar y})^2= \sum\limits_{g=1}^{N}\sum\limits_{\ell=1}^{m}(y_{g\ell}-\bar y_{g\ell})^2+ m\sum\limits_{g=1}^{N}(\bar y_{g}-\bar{\bar y})^2=S_0+S_{\chi}$$

    где:

    $$S_{0}$$ — сумма квадратов отклонений внутри серий, т. е. сумма квадратов разностей между отдельными наблюдениями y_{g\ell0}(\ell=\overline{1,m}) и средним \bar y_g соответствующей серии (g=\overline{1,N});

    $$S_{\chi}$$ — сумма квадратов отклонений между сериями или рассеивание по уровням, т. е. взвешенная с учетом числа наблюдений в каждой серии $$(g=\overline{1,N})$$ сумма квадратов между средними $$\bar y_g$$ отдельных серий и общим средним $$\bar{\bar y}$$ по всей совокупности наблюдений.

    $$S_{общ}$$ характеризует влияние фактора и случайных причин. $$S_{0}$$ отражает влияние случайных причин. $$S_{\chi}$$ характеризует воздействие фактора.

    Если в результате анализа оказалось, что влияние качественного фактора на выходную переменную отсутствует, тогда средние $$\bar y_g(g=\overline{1,N})$$ серий имеют одинаковую оценку математического ожидания и дисперсию $$D$$ и все $$N\times m $$ наблюдений можно рассматривать как выборку из одной и той же совокупности, распределенной по нормальному закону.

    Несмещенная общая оценка дисперсии $$s^2$$ по всем $$N\times m$$ наблюдениям определяется по формуле

    $$s^2=\frac{S}{Nm-1}\approx D$$

    с числом степеней свободы

    $$f=N\times m-1.$$

    Выборочная дисперсия $$s_0^2$$ внутри серий ( $$\ell=\overline{1,m}$$ ) дублирующих опытов определяется по формуле

    $$s^2_0=\frac{S_0}{N(m-1)}\approx D$$

    с числом степеней свободы

    $$k1=N\times m-1.$$

    Выборочная дисперсия $$S^2_{\chi}$$ внутри серий ( $$g=\overline{1,N}$$ ) по уровням определяется по формуле

    $$s^2_{\chi}=\frac{S_{\chi}}{N-1}\approx D$$

    с числом степеней свободы

    $$k2 = N - 1.$$

    Проверка значимости влияния фактора производится с помощью критерия Фишера при заданном уровне значимости $$\alpha$$ (% или относительная величина) по формуле

    $$F_{расч}=\frac{S_{\chi}^2}{S_0^2}.$$

    Если вычисленное значение по результатам наблюдений $$F_{расч}$$ окажется больше значения теоретической величины критерия Фишера $$F_{крит}$$ при заданном уровне значимости и соответствующих степенях свободы (8.8), (8.10), то влияние фактора признается значимым.

    Критическое значение критерия Фишера можно определить по таблицам, которые составлены для различных уровней значимости и приводятся во многих учебниках по теории вероятности и математической статистике. Например, если $$s_{0}^2 >s_{\chi}^2$$, то $$k1$$ — число степеней свободы дисперсии $$s_0^2$$ — берется из верхней строки таблицы, а $$k2$$ — число степеней свободы меньшей дисперсии $$s_{\chi}^2$$ — из левого столбца таблицы. Критическое значение критерия Фишера можно определить также с помощью встроенных функций пакета Statistics Toolbox системы MATLAB.

    2. Однофакторный дисперсионный анализ с неодинаковым числом испытаний на различных уровнях

    Выше рассматривался однофакторный дисперсионный анализ с одинаковым числом испытаний на различных уровнях данного одного фактора. Рассмотрим случай однофакторного дисперсионного анализа, когда число испытаний на различных уровнях различно [6]. Пусть произведено $$q_{1}$$ испытаний на первом уровне ( $$Х_{1}$$ ), $$q_{2}$$ испытаний — на втором уровне $$(Х_{2}),..., q_{p}$$ испытаний – на уровне $$Х_{p}$$. В этом случае общую сумму квадратов отклонений находят по формуле

    $$S_{общ}=[P_1+P_2+...+P_p]-\frac{(R_1+R_2+...+R_p)^2}{n},$$

    где:

    $$P_1=\sum\limits_{i=1}^{q_1}y_{i1}^2$$ — сумма квадратов наблюдавшихся значений отклика на уровне $$Х_{1}$$ ;

    $$P_2=\sum\limits_{i=1}^{q_2}y_{i2}^2$$ — сумма квадратов наблюдавшихся значений отклика на уровне $$Х_{2}$$ ;

    …………………………………………………………………

    $$P_p=\sum\limits_{i=1}^{q_p}y_{ip}^2$$ — сумма квадратов наблюдавшихся значений отклика на уровне $$Х_{1p}$$ ;

    $$R_1=\sum\limits_{i=1}^{q_1}y_{i1}^2,\mbox{ }R_2=\sum\limits_{i=1}^{q_2}y_{i2}^2\mbox{, ... ,}R_p=\sum\limits_{i=1}^{q_p}y_{ip}^2$$ — суммы наблюдавшихся значений отклика на уровнях $$Х_{1},\mbox{ }Х_{2}, ... ,\mbox{ }Х_{p}$$ ;

    $$n = q_{1} + q_{2} + ... + q_{p}$$ — общее число испытаний (общий объем выборки).

    Факторную сумму квадратов отклонений находят по формуле

    $$S_{факт}=\left[\left(\frac{R_1^2}{q_1}\right)+\left(\frac{R_2^2}{q_2}\right)+...+\left(\frac{R_p^2}{q_p}\right)\right]-\left[\frac{(R_1+R_2+R_p)^2}{n}\right].$$

    Здесь по-прежнему выполняется соотношение $$S_{общ}=S_{факт}+S_{ост}$$.

    Поэтому остаточную сумму квадратов можно определить в виде

    $$S_{ост}=S_{общ}-S_{факт}.$$

    Факторная $$s_{факт}^2$$ и остаточная $$s_{ост}^2$$ дисперсии вычисляются по формулам

    $$s_{факт}^2=\frac{S_{факт}}{(p-1)},\qquad s_{ост}^2=\frac{S_{ост}}{(n-p)}$$

    Где: $$(p-1)$$ — число степеней свободы факторной дисперсии; (8.16)

    $$(n-p)$$ — число степеней свободы остаточной дисперсии; (8.17)

    $$p$$ — число факторов.

    Проверка значимости влияния фактора производится с помощью критерия Фишера при заданном уровне значимости $$\alpha $$ (процент или относительная величина) по формуле

    $$F_{расч}=\frac{S^2_{факт}}{S^2_{ост}}$$

    Если вычисленное значение по результатам наблюдений $$F_{расч}$$ окажется больше значения $$F_{крит}$$ теоретической величины критерия Фишера при заданном уровне значимости и соответствующих степенях свободы (8.16), (8.17), то влияние фактора признается значимым. Соответственно, нулевая гипотеза о равенстве групповых средних отвергается.

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

    При двухфакторном анализе исследуется влияние двух качественных факторов $$A$$ и $$B$$ на отклик $$X$$. В этом случае дисперсионный анализ основывается на результатах эксперимента, проводимого на различных уровнях каждого из факторов. Предполагается, что взаимосвязь между факторами отсутствует. В эксперименте с повторными опытами результаты могут быть представлены в виде табл. 8.2.

    Данные для двухфакторного дисперсионного анализа
    Уровни фактора $$A$$ ( $$j=\overline{1,N_1}$$ ) Уровни фактора $$B$$ ( $$g=\overline{1,N_2}$$ )
    $$1$$ 2 ... $$g$$ ... $$N_2$$ $$\bar x_j$$
    1 $$x_{111}$$

    ...

    $$x_{11\ell}$$

    ...

    $$x_{11m}$$

    $$x_{121}$$

    ...

    $$x_{12\ell}$$

    ...

    $$x_{12m}$$

    ...

    ...

    ...

    $$x_{1g1}$$

    ...

    $$x_{1g\ell}$$

    ..

    $$x_{1gm}$$

    ...

    ...

    ...

    $$x_{1N_21}$$

    ...

    $$x_{1N_2\ell}$$

    ...

    $$x_{1N_2m}$$

    $$\bar x_1$$
    $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$
    $$j$$ $$x_{j11}$$

    ...

    $$x_{j1\ell}$$

    ...

    $$x_{j1m}$$

    $$x_{j21}$$

    ...

    $$x_{j2\ell}$$

    ...

    $$x_{j2m}$$

    ...

    ...

    ...

    $$x_{jg1}$$

    ...

    $$x_{jg\ell}$$

    ..

    $$x_{jgm}$$

    ...

    ...

    ...

    $$x_{jN_21}$$

    ...

    $$x_{jN_2\ell}$$

    ...

    x $$_{jN_2m}$$

    $$\bar x_j$$
    $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$ $$\vdots$$
    $$N_1$$ $$x_{N_111}$$

    ...

    $$x_{N_11\ell}$$

    ...

    $$x_{N_11m}$$

    $$x_{N_121}$$

    ...

    $$x_{N_12\ell}$$

    ...

    $$x_{N_12m}$$

    ...

    ...

    ...

    $$x_{N_1g1}$$

    ...

    $$x_{N_1g\ell}$$

    ..

    $$x_{N_1gm}$$

    ...

    ...

    ...

    $$x_{N_1N_21}$$

    ...

    $$x_{N_1N_2\ell}$$

    ...

    $$x_{N_1N_2m}$$

    $$\bar x_{N_1}$$
    $$\bar x_{g}$$ $$\bar x_{1}$$ $$\bar x_{2}$$ ... $$\bar x_{g}$$ ... $$\bar x_{N_2}$$ $$\bar{\bar x}$$

    Результаты обработки данных табл. 8.2 принято сводить в таблицу следующего вида:

    Сводная таблица данных
    Источник изменчивости Сумма квадратов Число степеней свободы Средняя сумма квадратов Расчетная статистика
    Фактор $$A$$ $$S_1$$ $$N_1-1$$ $$s_1^2$$ $$F_{1расч}$$
    Фактор $$B$$ $$S_2$$ $$N_2-1$$ $$s_2^2$$ $$F_{1расч}$$
    Ошибки $$S_{12}$$ $$(N_1-1)(N_2-1)$$ $$s_{12}^2$$ $$F_{ расч}$$
    Сумма $$S_0$$ $$N_1N_2(m-1)$$ $$s_0^2$$

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

  • Общее среднее всех $$N_{1}N_{2}m$$ опытов по всем $$N_{1}N_{2}$$ сочетаниям уровней:$$\bar{\bar x}= \frac{1}{N_2}\sum\limits_{g=1}^{N_2}\bar x_g= \frac{1}{N_1}\sum\limits_{j=1}^{N_1}\bar x_j.$$
  • Общая сумма квадратов отклонений наблюдений от общего среднего:$$S=\sum\limits_{j=1}^{N_1}\sum\limits_{g=1}^{N_2}\sum\limits_{\ell=1}^{m}(x_{jg\ell}-\bar{\bar x})^2=S_0+S_1+S_2+S_{12},$$

    где:

    $$S_{0}$$ — сумма квадратов отклонений внутри серий (табл. 8.3):

    $$S_0=\sum\limits_{j=1}^{N_1}\sum\limits_{g=1}^{N_2}\sum\limits_{\ell=1}^{m}(x_{jg\ell}-\bar x_{jg})^2;$$

    $$S_{1}$$ — сумма квадратов отклонений между строками (табл. 8.3):

    $$S_1=N_2m\sum\limits_{j=1}^{N_1}(\bar x_j-\bar{\bar x})^2;$$

    $$S_{2}$$ — сумма квадратов отклонений между столбцами (табл. 8.3):

    $$S_2=N_1m\sum\limits_{g=1}^{N_2}(\bar y_g-\bar{\bar y})^2;$$

    $$S_{12}$$ — сумма квадратов отклонений между сериями (табл. 8.3):

    $$S_{12}=m\sum\limits_{j=1}^{N_1}\sum\limits_{g=1}^{N_2}(\bar x_{jg}-\bar x_{j}-\bar x_{g}-\bar{\bar x})^2.$$
  • Расчет дисперсий с соответствующим числом степеней свободы

    3.$$s_1^2=\frac{S_1}{(N_1-1)},$$

    $$(N_1-1)$$ — число степеней свободы.

    4.$$s_2^2=\frac{S_2}{(N_2-1)},$$

    $$(N_2-1)$$ — число степеней свободы.

    5.$$s_{12}^2=\frac{S_{12}}{(N_1-1)(N_2-1)},$$

    $$(N_1-1)(N_2-1)$$ — число степеней свободы.

    6.$$s_0^2=\frac{S_0}{N_1N_2(m-1)},$$

    $$N_1N_2(m-1)$$ — число степеней свободы.

    Расчет влияний факторов и их взаимодействий на отклик

    Влияние факторов $$A$$ и $$B$$ признается значимым, если

    $$F_{1расч}=\frac{s_1^2}{s_{12}^2}>F_{крит};$$ $$F_{2расч}=\frac{s_2^2}{s_{12}^2}>F_{крит}$$

    при заданном уровне значимости $$\alpha$$ и соответствующем числе степеней свободы из формул (8.25), (8.26), (8.27).

    Влияние взаимодействия факторов $$A$$, $$B$$ будет значимым, если

    $$F_{расч}=\frac{s_{12}^2}{s_{0}^2}>F_{крит}$$

    при заданном уровне значимости $$\alpha$$ и соответствующем числе степеней свободы из формул (8.27), (8.28).

    Практическая часть

    1. Однофакторный дисперсионный анализ с одинаковым числом испытаний на различных уровнях

    Рассмотрим пример однофакторного анализа, данные которого позаимствованы из [12].

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

    Данные примера
    Способ измерения (уровни фактора) Дублирующие опыты
    1 2 3 4 5 6 7
    Удельная емкость образцов фольги, мкФ/дм2
    1-й способ 9.12 9.30 8.20 10.50 9.80 8.50 10.20
    2-й способ 8.34 8.58 8.18 8.42 8.66 8.26 8.50

    Так как ставится задача изучения влияния одного качественного фактора — способа измерения, применим однофакторный дисперсионный анализ при числе параллельных (дублирующих) опытов $$m = 7$$ при числе уровней факторов $$N = 2$$.

    Программный код решения примера:

    clear, clc
    
    % ПОВТОРНЫЕ НАБЛЮДЕНИЯ ДЛЯ ДВУХ УРОВНЕЙ ФАКТОРА
    A1 = [9.12 9.30 8.20 10.50 9.80 8.50 10.20];
    A2 = [8.34 8.58 8.18 8.42 8.66 8.26 8.50];
    Ygk = [A1;A2];
    N = 2; % ЧИСЛО УРОВНЕЙ ФАКТОРА
    m = length(A1); % ЧИСЛО ПОВТОРНЫХ НАБЛЮДЕНИЙ
    % СРЕДНЕЕ КАЖДОЙ СЕРИИ НАБЛЮДЕНИЙ
    Yg = mean([A1',A2']); 
    
    % СРЕДНЕЕ ВСЕХ НАБЛЮДЕНИЙ
    Ycp = mean(mean([A1,A2])) %% Ycp = (sum(Yg)/N)
    %-----------------------------------------------------------
    fprintf('\n\t ОДНОФАКТОРНЫЙ ДИСПЕРСИОННЫЙ АНАЛИЗ:\n')
    fprintf('\t Число уровней фактора: N = %d\n', N)
    fprintf('\t Число дублирующих наблюдений: m = %d\n', m)
    fprintf('\t Средние значения дублирующих наблюдений: \n\t Yg(%d) = %g\n\t Yg(%d) = %g\n'...
        ,1,Yg(1),2,Yg(2))
    fprintf('\t Среднее значение всех наблюдений:\n\t Ycp = %g\n', Ycp)
    %-----------------------------------------------------------
    % ФОРМИРОВАНИЕ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ
    % ВНУТРИ СЕРИЙ НАБЛЮДЕНИЙ
    So = 0;
    for k = 1 : N
        for r = 1 : m
            So = So + sum(sum(Ygk(k,r) - Yg(k))^2);
        end
    end
    %-----------------------------------------------------------
    % ФОРМИРОВАНИЕ СУММЫ КВАДРАТОВ ОТКЛОНЕНИЙ
    % МЕЖДУ СЕРИЯМИ НАБЛЮДЕНИЙ
    Sx = 0;
    for g = 1 : N
        Sx = Sx + m*sum((Yg(g) - Ycp)^2);
    end
    %-----------------------------------------------------------
    S = So + Sx;
    fprintf(' Общая сумма квадратов отклонений отдельных наблюдений от общего среднего:\n\t S = %g\n',S)
    D = S/(N*m-1);
    fprintf('\t Несмещенная общая оценка дисперсии по всем N*m (%d*%d = %d) наблюдениям:\n\t D = %g\n',N,m,N*m,D)
    So2 = So/(N*(m - 1));
    Sx2 = Sx/(N - 1);
    fprintf(' Выборочная дисперсия So2 внутри серий с числом степеней свободы Kmax = %d\n\t So2 = %g\n',N*(m - 1),So2)
    fprintf(' Выборочная дисперсия Sx2 внутри серий с числом степеней свободы Kmin = %d\n\t Sx2 = %g\n',N - 1,Sx2)
    fprintf('\n\t РЕЗУЛЬТАТЫ АНАЛИЗА:\n')
    Fpac = Sx2/So2;
    Kx = N - 1;
    Ko = N*(m - 1);
    fprintf('\t Число степеней свободы в эксперименте:\n\t Kx = %d\n\t Ko = %d\n',Kx,Ko)
    %-----------------------------------------------------------
    % КРИТИЧЕСКОЕ ЗНАЧЕНИЕ КРИТЕРИЯ ФИШЕРА Fish
    % ПРИ ВЕРОЯТНОСТИ 0.95 
    h = 0.01;
    r1 = 0 : h : 1000;
    F = fcdf(r1,Kx,Ko);
    for k = 1:length(r1)
    if F(k) >= 0.95  F(k) < 0.9501
         F95 = F(k);
         Fish = r1(k);
       break    
    end
    end
    %-----------------------------------------------------------
    fprintf('\t Расчетное значение критерия Фишера: Fpac = %g\n',Fpac)
    fprintf('\t Критическое значение распределения Фишера при уровне значимости a = 0.05: F = %g\n\n',Fish)
    if Fpac > Fish
    disp(' 1) ВЛИЯНИЕ ФАКТОРА ЗНАЧИМО')
    disp(' 2) СПОСОБЫ ИЗМЕРЕНИЙ ИМЕЮТ РАЗЛИЧНЫЕ СИСТЕМАТИЧЕСКИЕ ОШИБКИ')
    else
    disp(' 3) ВЛИЯНИЕ ФАКТОРА - СПОСОБА ИЗМЕРЕНИЯ НЕ ЗНАЧИМО')
    disp(' 4) СПОСОБЫ ИЗМЕРЕНИЙ ИМЕЮТ СИСТЕМАТИЧЕСКИЕ ОШИБКИ ОДНОГО ПОРЯДКА')
    end

    Результаты выполнения программы для уровня значимости критерия Фишера, равного 0.05

    ОДНОФАКТОРНЫЙ ДИСПЕРСИОННЫЙ АНАЛИЗ
    	 Число уровней фактора: N = 2
    	 Число дублирующих наблюдений: m = 7
    	 Средние значения дублирующих наблюдений: 
    	 Yg(1) = 9.37429
    	 Yg(2) = 8.42
    	 Среднее значение всех наблюдений:
    	 Ycp = 8.89714
    Общая сумма квадратов отклонений отдельных наблюдений от общего среднего:
    	 S = 7.71029
    Несмещенная общая оценка дисперсии по всем N*m (2*7 = 14) наблюдениям:
    	 D = 0.593099
    Выборочная дисперсия So2 внутри серий с числом степеней свободы:
              Kmax = 12
    	 So2 = 0.376914
    Выборочная дисперсия Sx2 внутри серий с числом степеней свободы:
     Kmin = 1
    	 Sx2 = 3.18731
    
    	 РЕЗУЛЬТАТЫ АНАЛИЗА
    	 Число степеней свободы в эксперименте:
    	 Kx = 1
    	 Ko = 12
    	 Расчетное значение критерия Фишера: Fpac = 8.45634
    Критическое значение распределения Фишера при уровне значимости
     a = 0.05: F = 4.75
    
     1) ВЛИЯНИЕ ФАКТОРА ЗНАЧИМО
     2) СПОСОБЫ ИЗМЕРЕНИЙ ИМЕЮТ РАЗЛИЧНЫЕ СИСТЕМАТИЧЕСКИЕ ОШИБКИ

    Примечание. Критическое значение распределения Фишера можно определить по таблицам, которые составлены для различных уровней значимости и приводятся во многих учебниках по теории вероятности и математической статистике [1, 2], где указывается также число степеней свободы — в данном случае эти числа соответствуют числителю и знаменателю расчетного значения критерия Фишера.

    Пояснение к определению критического значения распределения Фишера показано на рис. 8.1, где представлена интегральная функция распределения Фишера с заданными степенями свободы.

    (рис 8.1) Интегральная функция распределения Фишера

    Задание 1

  • Напишите программу построения диаграммы, приведенной на рис. 8.1.
  • Произведите дисперсионный анализ в случае, когда число уровней фактора будет равно 3. Дополнительный уровень сформируйте по данным наблюдений 1-го уровня: с помощью функции $$rand$$ в интервалах между значениями наблюдений. Например, если 1-е наблюдение равно 9.12, 2-е равно 9.3, то первое значение для дополнительного уровня взять по равномерному закону из интервала $$[9.12; 9.3]$$ и т. д.
  • Напишите программу формирования массива критических точек распределения Фишера на основе функции $$finv$$ (см. $$help\mbox{ }finv$$ ) или на основе функции $$fcdf$$ (см. вышеприведенную программу) при следующих параметрах (числом степеней свободы $$\nu_1$$, $$\nu_2$$ и уровне значимости $$\alpha$$ ):
  • 1-й компьютер: $$\nu_1 = 1 : 10,\qquad\nu_2 = 1 : 7,\qquad\alpha = 0.05;$$
  • 2-й компьютер: $$\nu_1 = 1 : 7,\qquad \nu_2 = 1 : 9,\qquad\alpha = 0.025;$$
  • 3-й компьютер: $$\nu_1 = 1 : 9,\qquad \nu_2 = 1 : 10,\qquad\alpha = 0.1;$$
  • 4-й компьютер: $$\nu_1 = 1 : 12,\qquad\nu_2 = 1 : 8,\qquad\alpha = 0.15;$$
  • 5-й компьютер: $$\nu_1 = 1 : 15,\qquad\nu_2 = 1 : 9,\qquad\alpha = 0.1;$$
  • 6-й компьютер: $$\nu_1 = 1 : 9,\qquad \nu_2 = 1:10,\qquad\alpha = 0.06;$$
  • 7-й компьютер: $$\nu_1 = 1 : 12,\qquad\nu_2 = 1 : 8,\qquad\alpha = 0.07;$$
  • 8-й компьютер: $$\nu_1 = 1 : 15,\qquad\nu_2 = 1 : 9,\qquad\alpha = 0.08;$$
  • 9-й компьютер: $$\nu_1 = 1 : 7,\qquad \nu_2 = 1 : 8,\qquad\alpha = 0.05;$$
  • 10-й компьютер: $$\nu_1 = 1 : 12,\qquad\nu_2 = 1 : 13,\qquad\alpha = 0.15$$.
  • 2. Однофакторный дисперсионный анализ с неодинаковым числом испытаний на различных уровнях

    Пример 2. В соответствии с данными эксперимента, приведенными в табл. 8.5, требуется при уровне значимости 0.05 проверить нулевую гипотезу о равенстве групповых средних (числовые данные для примера 2 взяты из [6]).

    Данные эксперимента
    Номер испытания Уровни фактора $$F_{j}$$
    $$i$$ $$F_{1}$$ $$F_{2}$$ $$F_{3}$$
    1

    2

    3

    4

    5

    6

    37

    47

    40

    60

    60

    86

    67

    92

    95

    98

    69

    100

    98

    Среднее уровней 46 83 89

    Программный код решения примера:

    clear, clc
     
    p = 3; % ЧИСЛО УРОВНЕЙ ФАКТОРА
    % ЗНАЧЕНИЯ 1-ГО УРОВНЯ
    F11 = [37 47 40 60];
    % ЗНАЧЕНИЯ 2-ГО УРОВНЯ
    F22 = [60 86 67 92 95 98];
    % ЗНАЧЕНИЯ 3-ГО УРОВНЯ
    F33 = [69 100 98];
    % МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ ЧИСЛА ИСПЫТАНИЙ ДАННЫХ УРОВНЕЙ
    maxLen = max([length(F11),length(F22),length(F33)]);
    
    if maxLen - length(F11) > 0
        F1 = [F11,zeros(1,maxLen - length(F11))];
    else
        F1 = F11;
    end
    if maxLen - length(F22) > 0
        F2 = [F22,zeros(1,maxLen - length(F22))];
    else
        F2 = F22;
    end
    if maxLen - length(F33) > 0
        F3 = [F33,zeros(1,maxLen - length(F33))];
    else
        F3 = F33;
    end
    
    fprintf('\n ДИСПЕРСИОННЫЙ АНАЛИЗ С НЕОДИНАКОВЫМ ЧИСЛОМ ИСПЫТАНИЙ\n')
    disp('======================================================')
    fprintf('\t\t Таблица данных эксперимента\n')
    disp('----------------------------------------------')
    fprintf('\t Номер испытания |\t Уровни фактора Fj\t|\n')
    disp('----------------------------------------------')
    fprintf('%*si%*s|\tF1\t|\tF2\t|\tF3\t|\n', 8, '', 12, '')
    disp('----------------------------------------------')
    for J = 1:6
        if ~F1(J)  ~F2(J)  ~F3(J)
    fprintf('\t\t%d\t\t\t |\t%s\t|\t%s\t|\t%s\t|\n',J,'-','-','-')
    
    elseif ~F1(J)  ~F2(J)
    fprintf('\t\t%d\t\t\t |\t%s\t|\t%s\t|\t%g\t|\n',J,'-','-',F3(J))
    
    elseif ~F1(J)  ~F3(J)
     fprintf('\t\t%d\t\t\t |\t%s\t|\t%g\t|\t%s\t|\n',J,'-',F2(J),'-')
    
    elseif ~F3(J)  F1(J)  F2(J)
    fprintf('\t\t%d\t\t\t |\t%g\t|\t%g\t|\t%s\t|\n',J,F1(J),F2(J),'-')
        
    else
    fprintf('\t\t%d%*s|\t%g\t|\t%g\t|\t%g\t|\n',J,12,'',F1(J),F2(J),F3(J))
       end
    end
    disp('----------------------------------------------')
    fprintf('Среднее уровней Xгрj |\t%g\t|\t%g\t|\t%g\t|\n',mean(F11),mean(F22),mean(F33))
    disp('----------------------------------------------')
    fprintf('\t\t Число испытаний:\n\t\t на уровне F1: %d\n\t\t на уровне F2: %d\n\t\t на уровне F3: %d\n ', 
     length(F11),length(F22),length(F33))
    fprintf('\t Общее число испытаний: %d\n',length(F11)+length(F22)+length(F33))
    disp('=====================================================================')
    fprintf('\t\t\t Таблица расчетных данных эксперимента\n')
    disp('   ------------------------------------------------------------------')
    fprintf('\t Номер испытания |%*sУровни фактора Fj\t\t\t\t|\n', 16, '')
    disp('   ------------------------------------------------------------------')
    fprintf('%*si%*s|\t\t F1\t\t|\t\t F2\t\t|\t\t F3\t\t|\n', 8,'', 12,'')
    fprintf('%*s ------------------------------------------------\n', 20, '')
    fprintf('%*s | xi1 | xi1_2\t| xi2\t| xi2_2 | xi3 | xi3_2\t|\n', 20, '')
    disp('   ------------------------------------------------------------------')
    for J = 1 : maxLen
        if ~F1(J)  ~F2(J)  ~F3(J)
        fprintf('\t\t%d\t|\t\t |\t%s\t|\t%s\t|\t%s\t|\t%s\t|\t%s\t|\t%s\t|\n',J,'-','-','-','-','-','-')
    elseif ~F1(J)  ~F2(J)
        fprintf('\t\t%d\t\t\t |\t%s\t|\t%s\t|\t%s\t|\t%s\t|\t%g\t|%g\t|\n',J,'-','-',F3(J),F3(J)^2)
    elseif ~F1(J)  ~F3(J)
        fprintf('\t\t%d\t\t\t |\t%s\t|\t%s\t|\t%g\t| %g\t|\t%s\t|\t%s\t|\n',J,'-','-',F2(J),F2(J)^2,'-','-')
    elseif ~F3(J)  F1(J)  F2(J)
        fprintf('\t\t%d%*s|\t%g\t| %g\t|\t%g\t| %g\t|\t%s\t|\t%s\t|\n',J,12,'',F1(J),F1(J)^2,F2(J),F2(J)^2,'-','-')
        else
        fprintf('\t\t%d%*s|\t%g\t| %g\t|\t%g\t| %g\t|\t%g\t| %g\t|\n',J,12,'',F1(J),F1(J)^2,F2(J),F2(J)^2,F3(J),F3(J)^2)
    end
    end
    disp('   ------------------------------------------------------------------')
    fprintf('\tСумма квадратов  |\t\t| %g\t| %s\t\t| %g\t| %s\t\t| %g\t|\n ',sum(F11.^2),'',sum(F22.^2),'',sum(F33.^2))
    disp('   -----------------------------------------------------------------')
    fprintf('\tСумма уровней\t |%g\t| %s\t\t| %g\t| %s\t\t| %g\t| %s\t\t|\n ',sum(F11),'',sum(F22),'',sum(F33),'')
    disp('   -----------------------------------------------------------------')
    fprintf('\tКвадрат суммы \t |%g\t| %s\t\t|%g\t| %s\t\t|%g\t| %s\t\t|\n',(sum(F11))^2,'',(sum(F22))^2,'',(sum(F33))^2,'')
    fprintf('\t уровней\t\t |\t\t|\t\t|\t\t|\t\t|\t\t|\t\t|\n')
    disp('=====================================================================')
    disp('   ------------------------------------------------------------------')
    Q = sum(F11.^2) + sum(F22.^2) + sum(F33.^2);
    T = sum(F11) + sum(F22) + sum(F33);
    n = length(F11) + length(F22) + length(F33);
    Sob = Q - T^2/n;
    fprintf('\t Общая сумма квадратов отклонений: Sобщ = %g\n',Sob)
    disp('   ------------------------------------------------------------------')
    Sf = (sum(F11))^2/length(F11) + (sum(F22))^2/length(F22) + (sum(F33))^2/length(F33) - T^2/n;
    fprintf('\t Факторная сумма квадратов отклонений: Sфакт = %g\n',Sf)
    disp('   ------------------------------------------------------------------')
    Sost = Sob - Sf;
    fprintf('\t Остаточная сумма квадратов отклонений: Sост = %g\n',Sost)
    disp('   ------------------------------------------------------------------')
    s2f = Sf/(p - 1);
    fprintf('\t Факторная дисперсия: Dфакт = %g\n',s2f)
    disp('   ------------------------------------------------------------------')
    s2oc = Sost/(n - p);
    fprintf('\t Остаточная дисперсия: Dост = %g\n',s2oc)
    disp('   --------------------------------------------------------------------------------------')
    Fpac = s2f/s2oc;
    fprintf('\t Расчетное значение критерия Фишера: Fpac = %g\n',Fpac)
    fprintf('\t Число степеней свободы: v1 = %d\t v2 = %d\n',p -1,n - p)
    a = 0.05;
    fprintf('\t Уровень значимости a = %g\n',a)
    v1 = p - 1;
    v2 = n - p;
    
    fprintf('\t Используется функция finv для расчета критического значения критерия Фишера\n');
    Fkp = finv(1 - a,v1,v2);
    
    fprintf('\t Критическое значение критерия Фишера на уровне значимости a = %g: Fkp = %g\n', a,Fkp)
    disp('   --------------------------------------------------------------------------------------')
    if Fpac > Fkp
    fprintf('\t Fpac > Fkp (%g > %g)\n', Fpac, Fkp)
    else
    fprintf('\t Fpac < Fkp (%g < %g)\n', Fpac, Fkp)
    end
    disp('  -----------------------------------------------------------------------------------------')
    fprintf('\n\t РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА:\n')
    if Fpac > Fkp
    fprintf('\t Нулевая гипотеза о равенстве групповых средних отвергается\n');
     
        else
    fprintf('\t Нулевая гипотеза о равенстве групповых средних принимается\n');
     
    end

    Часть результатов выполнения программы

    ------------------------------------------------------------------
    	 Общая сумма квадратов отклонений: Sобщ = 6444
     -----------------------------------------------------------------
    	 Факторная сумма квадратов отклонений: Sфакт = 4284
     -----------------------------------------------------------------
    	 Остаточная сумма квадратов отклонений: Sост = 2160
     -----------------------------------------------------------------
    	 Факторная дисперсия: Dфакт = 2142
     -----------------------------------------------------------------
    	 Остаточная дисперсия: Dост = 216
     ----------------------------------------------------------------
    	 Расчетное значение критерия Фишера: Fpac = 9.91667
    	 Число степеней свободы: v1 = 2	 v2 = 10
    	 Уровень значимости a = 0.05
    	 Используется функция finv для расчета критического значения критерия Фишера
    	 Критическое значение критерия Фишера на уровне значимости
          a = 0.05: Fkp = 4.10282
     ---------------------------------------------------------------
    	 Fpac > Fkp (9.91667 > 4.10282)
     ----------------------------------------------------------------
    	 РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА
    	 Нулевая гипотеза о равенстве групповых средних отвергается

    Задание 2

    В соответствии с номером компьютера (1, 2, 3, ...) напишите программу по дисперсионному анализу с неодинаковым числом испытаний на различных уровнях одного фактора.

    Компьютер № 1: считая, что имеются 3 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n1=11*abs([[randn(4,1);zeros(2,1)],[randn(3,1);zeros(3,1)],randn(6,1)])$$

    Компьютер № 2: считая, что имеются 3 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n2=12*abs([[randn(4,1);zeros(2,1)],[randn(5,1);zeros(1,1)],randn(6,1)])$$

    Компьютер № 3: считая, что имеются 3 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n3=13*abs([[randn(2,1);zeros(4,1)],[randn(5,1);zeros(1,1)],randn(6,1)])$$

    Компьютер № 4: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n4=14*abs([[randn(3,1);zeros(3,1)],[randn(5,1);zeros(1,1)],randn(6,1),[randn(2,1);zeros(4,1)]])$$

    Компьютер № 5: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n5=15*abs([[randn(2,1);zeros(3,1)],[randn(4,1);zeros(1,1)],randn(5,1),[randn(3,1);zeros(2,1)]])$$

    Компьютер № 6: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n6=16*abs([[randn(2,1);zeros(4,1)],[randn(4,1);zeros(2,1)],randn(6,1),[randn(3,1);zeros(3,1)]])$$

    Компьютер № 7: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n7=17*abs([[randn(2,1);zeros(5,1)],[randn(4,1);zeros(3,1)],randn(7,1),[randn(3,1);zeros(4,1)]])$$

    Компьютер № 8: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n8=18*abs([[randn(3,1);zeros(5,1)],[randn(4,1);zeros(4,1)],randn(8,1),[randn(3,1);zeros(5,1)]])$$

    Компьютер № 9: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n9=9*abs([[randn(2,1);zeros(7,1)],[randn(5,1);zeros(4,1)],randn(9,1),[randn(3,1);zeros(6,1)]])$$

    Компьютер № 10: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB:

    $$n10=8*abs([[randn(3,1);zeros(7,1)],[randn(4,1);zeros(6,1)],randn(10,1),[randn(3,1);zeros(7,1)]])$$

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

    Пример 3. В таблице 8.6 представлены результаты наблюдений над откликом $$Х$$ на пяти уровнях фактора $$А$$ и четырех уровнях фактора $$В$$ [13]. Требуется проверить на уровне значимости $$\alpha = 0.01$$ гипотезы:

    $$Н_{0}(А)$$ — отсутствие влияния фактора $$А$$ на величину отклика $$Х$$ ;

    $$Н_{0}(В)$$ — отсутствие влияния фактора $$В$$ на величину отклика $$Х$$.

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

    В данном примере повторные опыты или наблюдения отсутствуют, по-этому дисперсионный анализ проводится проще, чем это было проведено для общего случая в теоретической части лабораторной работы № 8.

    Данные двухфакторного эксперимента
    Уровни фактора $$В(i)$$ Уровни фактора $$А(i)$$
    1 2 3 4 5
    1 4 18 26 38 44
    2 3 19 25 35 43
    3 6 18 24 28 39
    4 7 13 21 31 38

    Обозначим:

    $$Ар = 5$$ — число уровней фактора $$А$$ ;

    $$Вр = 4$$ — число уровней фактора $$В$$ ;

    $$n = 20$$ — общее число наблюдений (опытов) в эксперименте;

    $$М = [4,18,26,38,44;3,19,25,35,43;6,18,24,28,39;7,13,21,31,38]$$ — матрица эксперимента.

    Программный код решения примера:

    clear,clc,pause(0.5)
    % ВВОД ИСХОДНЫХ ДАННЫХ ЭКСПЕРИМЕНТА
    Ap = 5; % ЧИСЛО УРОВНЕЙ ФАКТОРА А
    Bp = 4; % ЧИСЛО УРОВНЕЙ ФАКТОРА В
    % УРОВЕНЬ ЗНАЧИМОСТИ ПРОВЕРКИ ГИПОТЕЗ
    a = 0.01;
    % ОБЩЕЕ ЧИСЛО ОПЫТОВ В ЭКСПЕРИМЕНТЕ
    n = Ap*Bp;
    % МАТРИЦА ЭКСПЕРИМЕНТА
    M = [4,18,26,38,44;3,19,25,35,43;6,18,24,28,39;7,13,21,31,38]; 
    fprintf('\n\t\t\t ДВУХФАКТОРНЫЙ ДИСПЕРСИОННЫЙ АНАЛИЗ\n')
    fprintf('\t---------------------------------------------------------\n'); fprintf('\t Число уровней фактора А: Ap = %d\n',Ap)
    fprintf('\t Число уровней фактора B: Bp = %d\n',Bp)
    fprintf('\t Число опытов в эксперименте: n = %d\n',n)
    fprintf('\t Уровень значимости проверки гипотез: a = %1.2f\n',a)
    fprintf('\t---------------------------------------------------------\n')
    fprintf('\t| Уровни \t\t|\t\t Уровни фактора А(i)\t\t\t|\n')
    fprintf('\t| фактора B(j)\t|---------------------------------------|\n')
    fprintf('\t|%*s|', 16,''),fprintf('\t%d\t|',1:Ap)
    fprintf('\n\t---------------------------------------------------------\n')
    Mp = [(1:Bp)',M];
    fprintf('\t|\t\t%d\t\t|\t%d\t|\t%d\t|\t%d\t|\t%d\t|\t%d\t|\n',Mp')
    fprintf('\t---------------------------------------------------------\n')
    % СРЕДНЕЕ ВСЕГО ЭКСПЕРИМЕНТА
    Xcp = mean(mean(M));
    fprintf('\t Среднее всего эксперимента: Xcp = %g\n',Xcp)
    % СРЕДНЕЕ ПО СТРОКАМ МАТРИЦЫ ЭКСПЕРИМЕНТА
    Xcmp = mean(M,2);
    fprintf('\t---------------------------------------------------------\n')
    fprintf('\t Среднее по строкам матрицы эксперимента X.j:\n')
    fprintf('\t\t %g',Xcmp)
    fprintf('\n')
    fprintf('\t---------------------------------------------------------\n')
    % СРЕДНЕЕ ПО СТОЛБЦАМ МАТРИЦЫ ЭКСПЕРИМЕНТА
    Xcmb = mean(M);
    
    fprintf('\t Среднее по столбцам матрицы эксперимента Xi.:\n')
    fprintf('\t\t %g',Xcmb)
    fprintf('\n')
    fprintf('\t---------------------------------------------------------\n')
    % СУММА КВАДРАТОВ ОТКЛОНЕНИЙ ПО ФАКТОРУ А
    QA2 = Bp*sum((Xcmb - Xcp).^2);
    Na = Ap - 1;
    SA2 = QA2/Na;
    fprintf('\t Сумма квадратов отклонений по фактору А: QA2 = %g\n',QA2)
    fprintf('\t Число степеней свободы фактора А: Na = %g\n',Na)
    fprintf('\t Средняя сумма квадратов по числу степеней свободы: SA2 = %g\n',SA2)
    fprintf('\t---------------------------------------------------------\n')
    % СУММА КВАДРАТОВ ОТКЛОНЕНИЙ ПО ФАКТОРУ В
    QB2 = Ap*sum((Xcmp - Xcp).^2);
    Nb = Bp - 1;
    SB2 = QB2/Nb;
    fprintf('\t Сумма квадратов отклонений по фактору В: QB2 = %g\n',QB2)
    
    fprintf('\t Число степеней свободы по фактору В: Nb = %g\n',Nb)
    fprintf('\t Средняя сумма квадратов по числу степеней свободы: SB2 = %g\n',SB2)
    fprintf('\t---------------------------------------------------------\n')
    fprintf('\t\t\t ОШИБКИ\n')
    Qo = 0;
    for I = 1:Ap
        for J = 1:Bp
            Qo = Qo + (M(J,I) - Xcmb(I) - Xcmp(J) + Xcp)^2;
        end
    end
    fprintf('\t Ошибка суммы квадратов: Qo = %g\n',Qo)
    Nab = Na*Nb;
    fprintf('\t Число степеней свободы: Nab = %d\n',Nab)
    So2 = Qo/Nab;
    fprintf('\t Средняя сумма квадратов ошибки: So2 = %g\n',So2)
    fprintf('\t---------------------------------------------------------\n')
    Q = 0;
    for I = 1:Ap
        for J = 1:Bp
            Q = Q + (M(J,I) - Xcp)^2;
        end
    end
    fprintf('\t Общая сумма квадратов отклонений: Q = %g\n', Q)
    Nq = Ap*Bp - 1;
    
    fprintf('\t Число степеней свободы: Nq = %d\n', Nq)
    fprintf('\t--------------------------------------------------\n')
    % РАСЧЕТНЫЕ СТАТИСТИКИ ФИШЕРА
    fprintf('\t\t РАСЧЕТНЫЕ СТАТИСТИКИ ФИШЕРА\n')
    Fa = SA2/So2;
    fprintf('\t Статистика по фактору А: Fa = %g\n', Fa)
    Fb = SB2/So2;
    fprintf('\t Статистика по фактору B: Fb = %g\n', Fb)
    fprintf('\t--------------------------------------------------\n')
    % КРИТИЧЕСКИЕ ТОЧКИ КРИТЕРИЯ ФИШЕРА
    fprintf('\t\t КРИТИЧЕСКИЕ ТОЧКИ КРИТЕРИЯ ФИШЕРА\n')
    Ffa = finv(1 - a,Na,Nab);
    fprintf('\t Критическая точка по фактору А: Ffa = %g\n', Ffa)
    Ffb = finv(1 - a,Nb,Nab);
    fprintf('\t Критическая точка по фактору B: Ffb = %g\n', Ffb)
    fprintf('\t--------------------------------------------------\n')
    % РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА ПО ПРОВЕРКЕ ГИПОТЕЗ ВЛИЯНИЯ ФАКТОРОВ
    fprintf('\n\t РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА\n')
    fprintf('\t ПО ПРОВЕРКЕ ГИПОТЕЗ ВЛИЯНИЯ ФАКТОРОВ\n')
    fprintf('\t НА УРОВНЕ ЗНАЧИМОСТИ a = %1.2f\n',a)
    % ПРОВЕРКА ФАКТОРА А
    if Fa > Ffa
        fprintf('\n\t 1) Гипотезу о влиянии фактора А на отклик следует отвергнуть,\n')
        fprintf('\t\tтак как Fa = %g > Ffa = %g\n', Fa, Ffa)
    elseif Fa < Ffa
        fprintf('\n\t 1) Гипотезу о влиянии фактора А на отклик следует принять,\n')
        fprintf('\t\tтак как Fa = %g < Ffa = %g\n', Fa, Ffa)
    else
        fprintf('\n\t 1) Гипотезу о влиянии фактора А на отклик следует принять,\n')
        fprintf('\t\tтак как Fa = %g = Ffa = %g\n', Fa, Ffa)
    end
    % ПРОВЕРКА ФАКТОРА В
    if Fb > Ffb
        fprintf('\t 2) Гипотезу о влиянии фактора B на отклик следует отвергнуть,\n')
        fprintf('\t\tтак как Fb = %g > Ffb = %g\n', Fb, Ffb)
    elseif Fb < Ffb
        fprintf('\t 2) Гипотезу о влиянии фактора B на отклик следует принять,\n')
        fprintf('\t\tтак как Fb = %g < Ffb = %g\n', Fb, Ffb)
    else
        fprintf('\t 2) Гипотезу о влиянии фактора B на отклик следует принять,\n')
        fprintf('\t\tтак как Fb = %g = Ffb = %g\n', Fb, Ffb)
    end

    Результаты выполнения программы без матрицы данных эксперимента

    ДВУХФАКТОРНЫЙ ДИСПЕРСИОННЫЙ АНАЛИЗ
    	---------------------------------------------------------
    	 Число уровней фактора А: Ap = 5
    	 Число уровней фактора B: Bp = 4
    	 Число опытов в эксперименте: n = 20
    	 Уровень значимости проверки гипотез: a = 0.01
       ………………………………………………………………………………………
    	
    	 Среднее всего эксперимента: Xcp = 24
    	---------------------------------------------------------
    	 Среднее по строкам матрицы эксперимента X.j:
    		 26		 25		 23		 22
    	---------------------------------------------------------
    	 Среднее по столбцам матрицы эксперимента Xi.:
    		 5		 17		 24		 33		 41
    	---------------------------------------------------------
    	 Сумма квадратов отклонений по фактору А: QA2 = 3120
    	 Число степеней свободы фактора А: Na = 4
    	 Средняя сумма квадратов по числу степеней свободы: SA2 = 780
    	---------------------------------------------------------
    	 Сумма квадратов отклонений по фактору В: QB2 = 50
    	 Число степеней свободы по фактору В: Nb = 3
    	 Средняя сумма квадратов по числу степеней свободы: 
          SB2 = 16.6667
    	---------------------------------------------------------
    			 ОШИБКИ
    	 Ошибка суммы квадратов: Qo = 80
    	 Число степеней свободы: Nab = 12
    	 Средняя сумма квадратов ошибки: So2 = 6.66667
    	---------------------------------------------------------
    	 Общая сумма квадратов отклонений: Q = 3250
    	 Число степеней свободы: Nq = 19
    	---------------------------------------------------------
    		 РАСЧЕТНЫЕ СТАТИСТИКИ ФИШЕРА
    	 Статистика по фактору А: Fa = 117
    	 Статистика по фактору B: Fb = 2.5
    	---------------------------------------------------------
    		 КРИТИЧЕСКИЕ ТОЧКИ КРИТЕРИЯ ФИШЕРА
    	 Критическая точка по фактору А: Ffa = 5.41195
    	 Критическая точка по фактору B: Ffb = 5.95254
    	---------------------------------------------------------
    	 РЕЗУЛЬТАТЫ ДИСПЕРСИОННОГО АНАЛИЗА
    	 ПО ПРОВЕРКЕ ГИПОТЕЗ ВЛИЯНИЯ ФАКТОРОВ
    	 НА УРОВНЕ ЗНАЧИМОСТИ a = 0.01
    
    	 1) Гипотезу о влиянии фактора А на отклик следует отверг-нуть,
    		так как Fa = 117 > Ffa = 5.41195
    	 2) Гипотезу о влиянии фактора B на отклик следует принять,
    		так как Fb = 2.5 < Ffb = 5.95254

    Задание 3

    В соответствии с номером компьютера (1, 2, 3, ...) напишите программы в MATLAB по решению приводимых ниже примеров, когда требуется проверить гипотезы о влиянии фактора $$А$$ и фактора $$В$$ на отклик $$Х$$, а также гипотезы, когда влияние взаимодействия факторов будет значимым.

    Компьютер № 1: при уровне значимости $$\alpha = 0.1$$

    x11=abs(11*normrnd(1,1,4,5));x12=abs(11*normrnd(1,1,4,5));x13=abs(11*normrnd(1,1,4,5));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 2: при уровне значимости $$\alpha = 0.02$$

    x11=abs(12*normrnd(2,1,5,6));x12=abs(12*normrnd(3,1,5,6));x13=abs(12*normrnd(4,1,5,6));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 3: при уровне значимости $$\alpha = 0.03$$

    x11=abs(13*normrnd(3,1,6,7));x12=abs(13*normrnd(4,1,6,7));x13=abs(13*normrnd(5,1,6,7));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 4: при уровне значимости $$\alpha = 0.04$$

    x11=abs(14*normrnd(4,.1,8,6));x12=abs(13*normrnd(5,.4,8,6));x13=abs(13*normrnd(6,.8,8,6));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 5: при уровне значимости $$\alpha = 0.05$$

    x11=abs(15*normrnd(1,.5,5,4));x12=abs(15*normrnd(1,.6,5,4));
    x13=abs(15*normrnd(1,.7,5,4)); x14=abs(15*normrnd(1,.8,5,4));  
    % Матрица данных эксперимента при m = 4 повторных опытах
    M = cat(4,x11,x12,x13,x14)

    Компьютер № 6: при уровне значимости $$\alpha = 0.06$$

    x11=abs(16*normrnd(2,1,6,4));x12=abs(16*normrnd(3,1,6,4));
    x13=abs(16*normrnd(4,1,6,4)); x14=abs(16*normrnd(1,.8,6,4));  
    % Матрица данных эксперимента при m = 4 повторных опытах
    M = cat(4,x11,x12,x13,x14)

    Компьютер № 7: при уровне значимости $$\alpha = 0.07$$

    x1=abs(17*normrnd(7,.7,7,5));x2=abs(17*normrnd(8,.72,7,5));
    x3=abs(17*normrnd(9,.73,7,5)); x4=abs(17*normrnd(10,2,7,5));
    x5=abs(17*normrnd(11,1,7,5));  
    % Матрица данных эксперимента при m = 4 повторных опытах
    M = cat(4,x1,x2,x3,x4,x5)

    Компьютер № 8: при уровне значимости $$\alpha = 0.08$$

    x1=abs(18*normrnd(8,1,8,6));x2=abs(18*normrnd(9,1,8,6));
    x3=abs(18*normrnd(10,1,8 ,6));x4=abs(18*normrnd(11,1,8,6)); 
    x5=abs(18*normrnd(12,1,8,6));  x6=abs(18*normrnd(13,1,8,6));
    % Матрица данных эксперимента при m = 4 повторных опытах
    M = cat(4,x1,x2,x3,x4,x5,x6)

    Компьютер № 9: при уровне значимости $$\alpha = 0.09$$

    x11=abs(9*normrnd(1,1,4,5));x12=abs(9*normrnd(1,1,4,5));x13=abs(9*normrnd(1,1,4,5));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Компьютер № 10: при уровне значимости $$\alpha = 0.01$$

    x11=abs(10*normrnd(2,1,5,6));x12=abs(10*normrnd(3,1,5,6));x13=abs(10*normrnd(4,1,5,6));
    % Матрица данных эксперимента при m = 3 повторных опытах
    M = cat(3,x11,x12,x13)

    Примечание. Матрица данных эксперимента $$М$$ — многомерная матрица, которая представляет собой данные повторных опытов или наблюдений.

    Контрольные вопросы

  • Что такое факторы в дисперсионном анализе?
  • С какой целью применяют дисперсионный анализ?
  • Что такое многофакторный дисперсионный анализ?
  • Что называется факторной дисперсией в дисперсионном анализе?
  • Что такое остаточная дисперсия в дисперсионном анализе?
  • Как производится проверка значимости влияния фактора?
  • В каком случае влияние качественного фактора на выходную переменную отсутствует?
  • Как рассчитывается несмещенная оценка выборочной дисперсии?
  • Вернуться к учебному плану