Моделирование систем. Моделирование систем 2е издание, исправленное
Скачать 5.72 Mb.
|
4. Проверьте, доставляет ли максимум функции правдоподобия найденная оценка параметра экспоненциального распределения?2. Оценка параметра биномиального распределения Поставим задачу оценки параметра биномиального распределения методом максимального правдоподобия. Биномиальное распределение описывает схему Бернулли испытания случайной дискретной величины в соответствии со следующей формулой (формула Бернулли): (7.10) где , — биномиальные коэффициенты. Биномиальный закон распределения (7.10) представляет собой закон распределения числа наступлений события (удачного испытания) в независимых испытаниях, в каждом из которых оно может произойти с одной и той же вероятностью . Таким образом, параметром биномиального распределения выступает вероятность наступления события Характеристики биномиального распределения Математическое ожидание: (7.11) дисперсия: (7.12) Величину — неуспех испытания — часто обозначают через . k11 = errordlg('\bfЧисло успешных испытаний k должно быть положительным целым числом и меньше общего числа испытаний N','Ошибка ввода числа k'); return end % КОНТРОЛЬ ВЕЛИЧИНЫ ЗНАЧЕНИЙ N и k nums = (N-k+1) : N; dens = 1 : k; nums = nums./dens; c = round(prod(nums)); if c > 1e+015 global Nk Nk = errordlg('\bfПроизведение N*k велико......','Ошибка'); return end syms p % ФОРМИРОВАНИЕ ФУНКЦИИ % МАКСИМАЛЬНОГО ПРАВДОПОДОБИЯ % см. help nchoosek L = nchoosek(N,k)*p^k*(1-p)^(N-k);%m^(length(t))*exp(-m*sum(t)); % ЛОГАРИФМИЧЕСКАЯ ФУНКЦИЯ МАКСИМАЛЬНОГО ПРАВДОПОДОБИЯ Lg = log(L); % ДИФФЕРЕНЦИРОВАНИЕ dLg = diff(Lg,p); % ПРЕОБРАЗОВАНИЕ СИМВОЛЬНОЙ ПЕРЕМЕННОЙ % К СТРОКОВОЙ dLg = char(dLg); % РЕШЕНИЕ УРАВНЕНИЯ ПРАВДОПОДОБИЯ ap1 = double(solve(dLg)); % ВЫВОД РЕЗУЛЬТАТОВ В КОМАНДНОЕ ОКНО fprintf('\n\t БИНОМИАЛЬНОЕ РАСПРЕДЕЛЕНИЕ:\n') fprintf('\t Число испытаний N = %d\n',N) fprintf('\t Число успешных испытаний k = %d\n',k) fprintf('\t Оценка параметра биномиального распределения: p = %g\n',ap1) % РЯД РАСПРЕДЕЛЕНИЯ БИНОМИАЛЬНОГО ЗАКОНА for J = 0:N m = m+1; P(m) = (factorial(N)/(factorial(J)*factorial(N-J)))*ap1^J*(1-ap1)^(N-J); end options.Resize = 'on'; options.WindowStyle = 'normal'; options.Interpreter = 'tex'; global r1 CreateStruct.WindowStyle = 'replace'; CreateStruct.Interpreter = 'tex'; r1 = msgbox('\bfРезультаты смотрите в командном окне...........','Help', CreateStruct); fprintf('\t Максимальное значение вероятности успеха в N испытаниях Pmax = %g\n', max(P)) Pmax = find(P == max(P)); % УСЛОВИЕ РАСПОЛОЖЕНИЯ НАДПИСИ if Pmax - 1 < N/2 % ДИАГРАММА РАСПРЕДЕЛЕНИЯ ВЕРОЯТНОСТЕЙ stem(0:N,P,'filled','r'), hold on set(gca,'ygrid','on') title('\bf Эмпирическое биномиальное распределение') set(gcf,'color','w'), ylim([0 1.1*max(P)]) promt = sprintf('p = %g',ap1); text(mean(0:N)+0.5*mean(0:N),0.95*max(P),['\bf',promt]) elseif Pmax - 1 >= N/2 stem(0:N,P,'filled','r'), set(gca,'ygrid','on') title('\bfЭмпирическое биномиальное распределение') promt = sprintf('p = %g',ap1); end xlabel('\bf Случайная величина') ylabel('\bf Вероятность') ylim([0 1.1*max(P)]) set(gcf,'color','w') Задание 2 1. В соответствии с номером компьютера задайте следующие значения числа испытаний и число успешных испытаний : № 1: N = 10, k = 7; № 2: N = 22, k = 12; № 3: N = 23, k = 13; № 4: N = 24, k = 14; № 5: N = 35, k = 25; № 6: N = 36, k = 16; № 7: N = 37, k = 17; № 8: N = 38, k = 28; № 9: N = 29, k = 19; № 10: N = 40, k = 12. 2. Напишите программу оценки по методу максимального правдоподобия параметра биномиального распределения, если в независимых испытаниях событие появилось раз и в независимых испытаниях событие появилось раз. Число испытаний и число успешных событий принимайте в зависимости от номера компьютера: № 1: N1 = 10, k1 = 7, N2 = 11, k2 = 6; № 2: N1 = 12, k1 = 2, N2 = 13, k2 = 12; № 3: N1 = 13, k = 3, N2 = 3, k2 = 2; № 4: N1 = 14, k1 = 4, N2 = 10, k2 = 8; № 5: N1 = 15, k1 = 5, N2 = 5, k2 = 3; % КОНТРОЛЬ ВЕЛИЧИНЫ ЗНАЧЕНИЙ N и k N0 = N + m - 1; nums = (N0 - m +1):N0; dens = 1:m ; nums = nums./dens; c = round(prod(nums)); if c > 1e+015 Nm = errordlg('Произведение N*m велико.','Ошибка'); pause(1) break end %-------------------------------------------------- %%% Определение символьной переменной syms p % ФОРМИРОВАНИЕ ФУНКЦИИ % МАКСИМАЛЬНОГО ПРАВДОПОДОБИЯ ПРИ N = 0 % см. help nchoosek L0 = nchoosek(0+m-1,0)*p^m*(1-p)^0; dL0 = diff(L0); dL0char = char(dL0); % РЕШЕНИЕ УРАВНЕНИЯ ПРАВДОПОДОБИЯ ПРИ N=0 x10 = solve(dL0char); x20 = double(x10); u = find(x20); if length(u) == length(x20) x0 = 0; elseif length(u) < length(x20) x20(u); u1 = find(x20 > 0); x20(u1); x0 = mean(x20); end if N > 0 % ФОРМИРОВАНИЕ ФУНКЦИИ % МАКСИМАЛЬНОГО ПРАВДОПОДОБИЯ ПРИ N>0 for I = 1:N k = k + 1; L = nchoosek(I + m-1,m-1)*p^m*(1-p)^I; % ЛОГАРИФМИЧЕСКАЯ ФУНКЦИЯ % МАКСИМАЛЬНОГО ПРАВДОПОДОБИЯ Lg = log(L); % ДИФФЕРЕНЦИРОВАНИЕ dLg = diff(Lg,p); % ПРЕОБРАЗОВАНИЕ СИМВОЛЬНОЙ ПЕРЕМЕННОЙ % К СТРОКОВОЙ dLg = char(dLg); % РЕШЕНИЕ УРАВНЕНИЯ ПРАВДОПОДОБИЯ ap1 = solve(dLg); ap(k) = double(ap1); end app = mean([ap,x0]); % ВЫВОД РЕЗУЛЬТАТОВ В КОМАНДНОЕ ОКНО fprintf('\n\t ОТРИЦАТЕЛЬНОЕ БИНОМИАЛЬНОЕ РАСПРЕДЕЛЕНИЕ:\n\t %s%d\n\t %s%d\n', 'Число испытаний Бернулли: N = ', N,'Число успешных испытаний: m = ',m) fprintf('\n\t Оценка параметра: p = %g\n', app) % РЯД РАСПРЕДЕЛЕНИЯ ВЕРОЯТНОСТЕЙ % ОТРИЦАТЕЛЬНОГО БИНОМИАЛЬНОГО ЗАКОНА k = 0; for J = 0:N k = k+1; P(k) = (factorial(J+m-1)/(factorial(J)*factorial(m-1)))*app^m*(1-app)^J; end fprintf('\t Максимальное значение вероятности при N = %d испытаниях: Pmax = %g\n', N, max(P)) n = find(P == max(P)); fprintf('\t Номер испытания с максимальной вероятностью: n = %d\n', n-1) r1 = helpdlg('Результаты смотрите в командном окне','Help'); % ДИАГРАММА РАСПРЕДЕЛЕНИЯ ВЕРОЯТНОСТЕЙ if n < N/2 h2 = figure(2); text(mean(0:N)+0.5*mean(0:N),0.95*max(P),sprintf('%sp = %g','\bf',app)) elseif n >= N/2 h2 = figure(2); stem(0:N,P,'filled','r'), set(gca,'ygrid','on') text(N/20,0.95*max(P),sprintf('%sp = %g','\bf',app)) end end title('\bf Эмпирическое отрицательное биномиальное распределение') xlabel('\bf Случайная величина') ylabel('\bf Вероятность') ylim([0 1.1*max(P)]), Задание 3 1. Для приведенной программы в соответствии с номером компьютера задайте следующие входные данные для оценки параметра (вероятности успеха) отрицательного биномиального распределения: № 1: N = 11, m = 3; № 2: N = 12, m = 4; № 3: N = 13, m = 5; № 4: N = 14, m = 6; № 5: N = 15, m = 16; № 6: N = 26, m = 6; № 7: N = 17, m = 17; № 8: N = 18, m = 8; № 9: N = 19, m = 9; № 10: N = 20, m = 10. 2. Постройте график изменения максимальной вероятности отрицательного биномиального распределения в зависимости от числа успешных испытаний ( ) при заданном числе испытаний ( ) в соответствии с номером компьютера (см. п. 1). Диапазон изменения числа успешных испытаний принимайте от 1 до 10. 3. Проверьте диаграмму распределения вероятностей отрицательного биномиального распределения с помощью функции с выбором для заданного числа испытаний и произведенной оценки параметра. качественном исследовании объектов различной природы. При однофакторном анализе проверяется действие одного фактора на выходную переменную по результатам экспериментов с дублирующими опытами. Общее количество экспериментов равно . Результаты эксперимента наблюдений могут быть сведены в таблицу ( табл. 8.1 ), где означает среднее значение выходной переменной в одной серии дублирующих опытов [3] Количество экспериментов соответствует возможным уровням фактора . Под уровнем фактора понимаются возможные его качественные значения. Поэтому если производится экспериментов, то это означает, что рассматриваются возможных уровней фактора, которые оказывают влияние на значение выходной переменной системы или объекта исследования. Таблица 8.1. Результаты наблюдений однофакторного эксперимента Номер уровня фактора Дублирующие опыты Среднее дублирующего опыта 1 2 1 2 Среднее серий из повторных (дублирующих) опытов для каждого уровня фактора определяется по формуле (8.1) Общее среднее всех наблюдений по всем уровням фактора определяется по формуле Несмещенная общая оценка дисперсии по всем наблюдениям определяется по формуле (8.5) с числом степеней свободы (8.6) Выборочная дисперсия внутри серий ( ) дублирующих опытов определяется по формуле (8.7) с числом степеней свободы (8.8) Выборочная дисперсия внутри серий ( ) по уровням определяется по формуле (8.9) с числом степеней свободы (8.10) Проверка значимости влияния фактора производится с помощью критерия Фишера при заданном уровне значимости (% или относительная величина) по формуле Результаты обработки данных табл. 8.2 принято сводить в таблицу следующего вида: Таблица 8.3. Сводная таблица данных Источник изменчивости Сумма квадратов Число степеней свободы Средняя сумма квадратов Расчетная статистика Фактор Таблица 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 Так как ставится задача изучения влияния одного качественного фактора — способа измерения, применим однофакторный дисперсионный анализ при числе параллельных (дублирующих) опытов при числе уровней факторов Программный код решения примера: 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 Средние значения дублирующих наблюдений: \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 1-й компьютер: 2-й компьютер: 3-й компьютер: 4-й компьютер: 5-й компьютер: 6-й компьютер: 7-й компьютер: 8-й компьютер: 9-й компьютер: 10-й компьютер: 2. Однофакторный дисперсионный анализ с неодинаковым числом испытаний на различных уровнях Пример 2. В соответствии с данными эксперимента, приведенными в табл. 8.5 , требуется при уровне значимости 0.05 проверить нулевую гипотезу о равенстве групповых средних (числовые данные для примера 2 взяты из [6] ). Таблица 8.5. Данные эксперимента Номер испытания Уровни фактора 1 2 3 4 5 6 37 47 40 60 – – 60 86 67 92 95 98 69 100 98 – – – 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, '') 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); 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 Часть результатов выполнения программы ------------------------------------------------------------------ MATLAB: Компьютер № 3: считая, что имеются 3 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB: Компьютер № 4: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB: Компьютер № 5: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB: Компьютер № 6: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB: Компьютер № 7: считая, что имеются 4 уровня одного фактора, проверьте нулевую гипотезу о равенстве групповых средних при испытаниях, получаемых при обращении к встроенным функциям MATLAB: Таблица 8.6. Данные двухфакторного эксперимента Уровни фактора Уровни фактора 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 Обозначим: — число уровней фактора ; — число уровней фактора ; — общее число наблюдений (опытов) в эксперименте; — матрица эксперимента. Программный код решения примера: 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 Число уровней фактора 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) % СУММА КВАДРАТОВ ОТКЛОНЕНИЙ ПО ФАКТОРУ В 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') 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 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: при уровне значимости 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: при уровне значимости 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) Примечание. Матрица данных эксперимента — многомерная матрица, которая представляет собой данные повторных опытов или наблюдений. Контрольные вопросы 1. Что такое факторы в дисперсионном анализе? 2. С какой целью применяют дисперсионный анализ? 3. Что такое многофакторный дисперсионный анализ? 4. Что называется факторной дисперсией в дисперсионном анализе? 5. Что такое остаточная дисперсия в дисперсионном анализе? |