Содержание
Содержание
Введение2
1. Теоретические основы регрессионного анализа3
2. Практическое применение регрессионного анализа11
Заключение27
Список литературы30
Выдержка из текста работы
Научное исследование реальной действительности предполагает создание и использование математических моделей, которые формализовано описывают связь комплекса начальных условий с группой критериев качества изучаемого объекта, системы или процесса. Математическое моделирование информационно обеспечивает оптимальные (или рациональные) характеристики наукоемких изделий, высоких технологий, интеллектуальных средств измерений, новых материалов и совершенствование существующих решений.
Математические модели позволяют установить причинные, структурные и количественные связи между начальными условиями и потребительскими свойствами создаваемых изделий, технологических процессов. Получение математических моделей базируется на принятых предпосылках множественного регрессионного анализа, которые должны выполняться по отношению к моделируемой реальной действительности.
Принятые предпосылки многофакторного регрессионного анализа предопределяют обоснованность полученных результатов и свойств моделей, обеспечивают решение абстрактной или реальной задачи и, в конечном счете, создают научную обоснованность и прикладную полезность решения.
В большинстве случаев моделирование сложных систем проводится с использованием экспериментально-статистических методов. К моделям предъявляются требования многофакторности, многокритериальности, устойчивости структур моделей и их коэффициентов
Для успешного получения статистических моделей необходимо решить проблему формирования наилучших исходных условий получения многофакторных статистических моделей в виде последовательного планирования многофакторных экспериментов с использованием регулярных планов экспериментов.
1. Планирование эксперимента
Планирование эксперимента резко повышает точность и уменьшает объем экспериментальных исследований. Оно позволяет находить оптимум функции, характеризующей исследуемый процесс. Модель процесса описывается уравнением регрессии, коэффициенты которого определяются при помощи специальных методов (например, методом наименьших квадратов). Для поиска оптимума применяются различные градиентные и безградиентные методы; крутого восхождения, симплексные.
1.1 Определения и терминология
Содержание планирования эксперимента проиллюстрируем исследованием «черного ящика», в качестве которого возьмем объект, имеющий n входов х1, х2, …, хn и m выходов у1, у2, …, уm (рис. 1.1). Входами могут быть какие-нибудь внешние для объекта воздействия или параметры самого объекта. Выходными величинами могут быть состояния или параметры — количественные и качественные характеристики объекта. Например, объектом исследования может быть электронное устройство. В этом случае входными величинами будут: частота и напряжение питания, параметры активных и пассивных элементов, температура и влажности окружающей среды.
Рисунок 1.1 — Схема «черного ящика».
Переменные х1, х2, …. хn принято называть факторами
Выходными величинами в случае электронного устройства могут быть: передаточная функция, коэффициент усиления, входное и выходное сопротивление, помехо- и виброустойчивость, надежность и точность. Выходные величины также могут быть разнородными: измеряемыми и неизменяемыми. В зависимости от условий решаемой задачи выходная величина называется откликом, функцией цели, функцией отклика, параметром оптимизации. Обычно аналитическая связь между входом и выходом (модель объекта) неизвестна, а известны факторы xi и подлежащие исследованию выходные величины уi.
Определим одну выходную величину, являющеюся неизвестной функцией k факторов:
(1.1)
В этом случае задачами планирования эксперимента могут быть:
1. Раскрытие механизма явления, т.е. нахождение такого аналитического выражения:
, (1.2)
которое в области возможных значений факторов xi достаточно точно совпадает с неизвестной зависимостью (1.1). Область возможных или допустимых значений факторов xi называется областью определения и обозначается Щ. Область определения двух факторов х1, х2 — часть плоскости х1, 0, х2; эта область называется двухфакторным пространством, а эксперимент — двухфакторным экспериментом. По аналогии могут быть одно- и многофакторные пространства и эксперименты. Эксперименты по раскрытию механизма явления называются иногда интерполяционными или регрессионными.
2. Определение экстремума (максимума или минимума) отклика в области определения Щ. Такие эксперименты называются экстремальными.
3. Выбор подходящей модели для описания объекта или определение параметров известной функциональной зависимости.
Рассмотрим (рис. 1.2) принцип исследования отклика двух факторов. Сначала эксперимент ставится в области щ1 с центром О1 и определяются значения отклика у11, у12, у13, у14 в угловых точках области первого эксперимента щ1 — точки 1.1; 1.2; 1.3; 1.4. Затем, если необходимо, осуществляется переход в область щ2 и определяются значения отклика у21, у22, у23, у24 и т. д. Все области щ1, щ2 … принадлежат области определения факторов Щ, которая называется областью исследования.
Рисунок 1.2 — Схема исследования отклика двух факторов
В каждой области і-гo эксперимента щi проводятся четыре опыта (по числу вершин области щi) и каждый фактор принимает только два значения, которые можно обозначить 0 и 1 или —1 и +1. Эти значения называются уровнями факторов.
Рассмотрим (рис. 1.3) область щ одного двухфакторного эксперимента. По оси ординат отложены значения отклика в отдельных точках 1.1; 1.2; 1.3; 1.4. В данном случае два уровня факторов отмечены индексами «н», «в» (нижний, верхний).
Рисунок 1.3 — Результаты двухфакторного эксперимента
Сочетания двух факторов на двух уровнях дают N = 22 =4 набора, или 4 опыта. При каждом наборе факторов (в каждом опыте) измеряется отклик у1, в результате получаются четыре точки у11, у12, у13, у14, которые образуют некоторую поверхность отклика у1, (х1, х2). Если на двух уровнях варьируется k факторов, то число всех наборов — N = 2k. Число наборов определяет число опытов — измерений отклика в данном эксперименте.
При проведении трехфакторного эксперимента область щ представляет собой параллелепипед или куб, число вершин которого равно числу опытов (N — 23 = 8), и в случае k-факторного эксперимента — гиперкуб с N = 2к вершинами, в каждой из которых должен быть поставлен опыт: измерено значение отклика.
Таким образом, число опытов в одном эксперименте равно числу различных наборов факторов. В свою очередь, число экспериментов в области исследования Щ зависит от задач исследования и от соотношения между размерами области одного эксперимента щ и области Щ. Иногда используются не все N = 2k наборов факторов, и факторы могут варьироваться не на двух, а на трех уровнях.
1.2 Выбор факторов
Приступая к планированию эксперимента, необходимо выбрать факторы и определить: влияние их на выходную величину у; какими из них можно задаваться по желанию экспериментатора; и какие неуправляемы или случайны; точность аппаратуры, с помощью которой задаются значения варьируемых факторов и измеряются значения выхода у; являются ли факторы независимыми или зависимыми величинами.
Выбранные факторы должны быть доступны измерению с точностью примерно на порядок большей, чем измерение выходной величины. Они должны быть совместны (например, при исследовании электронной аппаратуры величины токов и сопротивлений должны быть такими, чтобы рассеиваемая мощность и температура элементов не превосходили допустимых значений), независимыми величинами (при взаимной зависимости факторов их следует объединить в один обобщенный). Необходимо выбрать для каждого эксперимента интервал варьирования факторов I, которым называется половина разности между большим (верхним) и меньшим (нижним) значением фактора (х1н, х1в, х2н, х2в). Значение фактора в центре области эксперимента щ (рис. 1.4, а) точка О1 называется его основным уровнем и отмечается подстрочным индексом «О» (х10, х20 …).
Рисунок 1.4 — Область эксперимента для факторов:
а — физических, б — кодированных.
Интервал варьирования физического фактора Ii должен быть таким, чтобы его величина примерно на порядок превосходила погрешность установки и измерения величины xi, вершины любой области эксперимента щ находились внутри области определения факторов Щ; аппроксимирующая функция (1.2) незначительно отличалась от искомой зависимости (1.1) — требование адекватности модели; при переходе от одного опыта к другому в области щ изменение отклика было достаточно ощутимым, т.е. в несколько раз превосходило погрешность отклика (рис. 1.3, у11, у21, у31, у41).
Для удобства записи плана эксперимента и обработки экспериментальных данных обычно пользуются кодированными значениями факторов, которые обозначаются малыми буквами х1, х2 … Кодированные хi и физические Xi переменные связаны между собой следующим соотношением:
(1.3)
Кодирование факторов равносильно переносу начала координат в точку основного уровня факторов (центральная точка эксперимента О1) и изменению масштаба. Все кодированные факторы — безразмерные и нормированные величины. В процессе эксперимента они могут принимать значения -1, 0, +1.
1.3 Модель процесса
Выбор модели (уравнение модели) в методе планирования эксперимента — неформализованный этап, который основывается обычно на интуитивных соображениях с учетом предыдущего опыта экспериментатора, а количественное определение коэффициентов выбранных уравнений модели — на результатах эксперимента. Поэтому правильный выбор модели должен подтверждаться экспериментально.
Модель определяется переменными хi и постоянными параметрами вi и в общем случае имеет вид:
(1.4)
В планировании эксперимента чаще всего применяются модели линейные относительно переменных хi и параметров вi:
(1.5)
1.4 Построение планов полного факторного эксперимента
Полным факторным называется такой эксперимент, в котором реализуются все возможные комбинации (наборы) уровней факторов. Если k факторов варьируется на двух уровнях, то число всех возможных наборов — N2= 2k. Если k факторов варьируется на трех уровнях, то N3 = 3k. В полном факторном эксперименте число опытов равно числу различных наборов, т.е. различных точек факторного пространства. С увеличением числа факторов k быстро растет число опытов.
Используя полученные данные (рис.1.3; 1.4,б), представляем план эксперимента в виде таблицы-матрицы (табл. 1). Матрица содержит четыре (22) строки и два основных столбца переменных х1 и х2. В остальных столбцах записываются измерения отклика у в отдельных точках факторного пространства.
Таблица 1.1 — Матрица двухфакторного эксперимента.
№ опыта |
Уровни переменных |
Отклики |
||||
х1 |
х2 |
yu1 |
yu2 |
yuj |
||
1 |
-1 |
-1 |
y11 |
y12 |
y1j |
|
2 |
+1 |
-1 |
y21 |
y22 |
y2j |
|
3 |
-1 |
+1 |
y31 |
y32 |
y3j |
|
4 |
+1 |
+1 |
y41 |
y42 |
y4j |
План эксперимента задается графами 2 и 3. Первая строка соответствует точке 1 (рис. 1.4,б) с координатами (—1. —1). В первой строке матрицы записаны эти значения координат х1, x2 и результаты измерения отклика в точке 1.
В каждой точке может проводиться несколько опытов пи, которые называют параллельными. Для проведения эксперимента значения факторов разделяются на уровни, задаваемые соответствующими строками. После этого измеряются значения отклика. Если производится одна серия опытов, то заполняется одна графа (табл. 1.1): у11, у21, у31, у41 (рис. 1.3, аппликаты). При низкой точности измерений от клика или при действии случайных факторов повторяется и записывается еще одна серия результатов: у12, у22, y32, у42. Для повышения точности серии измерений могут повторяться несколько раз (параллельные опыты).
1.5 Трехфакторный эксперимент
Для построения плана полного 23 необходимо составить все возможные комбинации из трех факторов, когда каждый варьируется на двух уровнях (±1). Воспользуемся моделью трехфакторного пространства (рис. 1.5).
Рисунок 1.5 — Модель ПФЭ 23
Начало кодированных координат помещается в центр куба, вершины которого соответствуют отдельным опытам (различным наборам факторов при двух уровнях варьирования ±1). Совокупность наборов (табл. 1.2) дает матрицу планирования полного факторного эксперимента (ПФЭ) 23, в котором отдельные уровни факторов обозначаются символами + (плюс) и — (минус).
Таблица 1.2 — Матрица трехфакторного эксперимента.
№ опыта |
Уровни переменных |
|||
x1 |
x2 |
x3 |
||
1 |
— |
— |
— |
|
2 |
+ |
— |
— |
|
3 |
— |
+ |
— |
|
4 |
+ |
+ |
— |
|
5 |
— |
— |
+ |
|
6 |
+ |
— |
+ |
|
7 |
— |
+ |
+ |
|
8 |
+ |
+ |
+ |
Отсюда следует правило получения матрицы ПФЭ 23, в которой матрица ПФЭ 22 повторяется дважды при x3=-1, второй — x3=+1, что соответствует нижней и верхней граням куба (рис. 1.5).
1.6 Определение коэффициентов модели
Введя фиктивную переменную х0=+1, уравнение простейшей двухфакторной линейной модели (1.5) удобно записывать в виде:
(1.6)
С учетом значений фиктивной переменной матрица планирований эксперимента 22 имеет вид (табл. 1.3.). По аналогии фиктивную переменную можно ввести в любой план эксперимента.
Таблица 1.3 — Матрица двухфакторного эксперимента с фиктивной переменной
№ опыта |
Уровни переменных |
Отклик уu |
|||
х0 |
х1 |
х2 |
|||
1 |
+ |
— |
— |
у1 |
|
2 |
+ |
+ |
— |
у2 |
|
3 |
+ |
— |
+ |
у3 |
|
4 |
+ |
+ |
+ |
у4 |
Уравнение модели (1.6) содержит неизвестные коэффициенты вi. Если эти коэффициенты определяются по статистическим данным, то получаются не точные их значения, а статистические оценки, которые в математической статистике обозначаются малыми латинскими буквами (а, b, т…), в отличие от точных значений, обозначаемых малыми греческими буквами (б, в, м …).
Из-за случайности величин уu получают не точное уравнение модели, а его оценку:
(1.7)
Уравнение (1.7) называется моделью или уравнением регрессии, а функция у(х1, …, хn) — поверхностью или (при i > 2) гиперповерхностью регрессии.
1.7 Метод наименьших квадратов (МНК)
Для отыскания оценок bi применяется метод наименьших квадратов, а сама процедура отыскания называется регрессионным анализом. В задачах регрессионного анализа принимается обычно следующее принципиальное допущение: все независимые переменные факторы х1, х2,…, хk задаются абсолютно точно и являются неслучайными величинами. Предполагается, что случайная величина уu распределена по нормальному закону, а ее дисперсии в отдельных точках факторного пространства — однородны. При невыполнении этих условий необходимо применять специальные методы.
Согласно МНК, сумма квадратов невязок минимальна, если коэффициенты регрессии определены из условия:
(1.8)
Для двух факторного эксперимента:
Задача отыскания коэффициентов сводится к отысканию минимума функции ш(bi) трех переменных b0, b1, b2 из условий:
или в развернутом виде:
Откуда получаем систему нормальных уравнений относительно х0u, х1u, х2u.
(1.9)
При планировании эксперимента следует предусмотреть, чтобы определитель системы отличался от нуля. Тогда вычислительная процедура упрощается. Основные достоинства планов ПФЭ — простота определения коэффициентов уравнения регрессии, возможность учета произведений взаимодействия факторов без изменения плана основного эксперимента. Преимущества любой матрицы ПФЭ достигаются за счет особого построения плана эксперимента, при котором матрица обладает свойствами ортогональности, нормировки, симметрии и рототабельности.
Свойство ортогональности: сумма построчных произведений элементов любых двух граф равна нулю.
(1.10)
где i, j- номер столбца или номер фактора, i=0, 1, 2…,k ( k- общее количество факторов); u — номер набора факторов или номер строки; N- общее число различных наборов или число строк матрицы ПФЭ.
Свойство нормировки: сумма квадратов элементов любой графы равна числу различных опытов — строк N.
(1.11)
Свойство симметрии: алгебраическая сумма элементов любого реального фактора равна нулю (условие баланса положительных и отрицательных значений каждой переменной).
(1.12)
Свойство рототабельности: дисперсии предсказанных значений отклика на равных расстояниях от центра плана постоянны и минимальны.
Применяя свойства (1.10 — 1.12) к системе (1.9), получаем, что в левых частях уравнений все суммы смешанных произведений обращаются в нуль, каждая сумма квадратов факторов равна числу опытов N = 4. Так как х0u = 1 по смыслу фиктивной переменной, система принимает вид:
(1.13)
Отсюда легко определяются оценки коэффициентов регрессии в общем виде:
, (1.14)
где i = 0, 1, 2…
Формула (1.14) для определения оценок коэффициентов регрессии bi по экспериментальным данным матрицы ПФЭ 2k =N справедлива при выполнении условий (1.10 — 1.12).
При проведении n параллельных опытов в данной строчке в формулу (1.14) подставляются средние значения отклика
2. Обработка и оценка экспериментальных данных
В результате многофакторного эксперимента получают значения отклика yuj в N точках факторного пространства (табл. 2.1).
Таблица 2.1 — «Матрица многофакторного эксперимента»
u |
yuj |
y~u |
||||
j |
||||||
1 |
2 |
… |
n |
|||
1 |
y11 |
y12 |
… |
y1n |
y~1 |
|
2 |
y21 |
y22 |
… |
y2n |
y~2 |
|
… |
… |
… |
… |
… |
… |
|
N |
yN1 |
yN2 |
… |
yNn |
y~n |
Для повышения точности экспериментальных данных отклик во многих случаях измеряется в u-й строке (точке) плана одинаковое число (n) раз: ставятся параллельные опыты.
Из-за погрешностей измерения и действия неконтролируемых возмущающих факторов (помех) все полученные значения yui — независимые случайные величины, а их отдельные значения — выборка из гипотетической совокупности.
Обработка экспериментальных данных в теории планирования эксперимента в значительной мере формализована, проходит с помощью ЭВМ. Обработка делится на отдельные этапы, содержащие часто операции условного перехода, допускающие переход к последующему этапу при выполнении некоторого условия. Если условие не выполняется, то вычисления прекращаются и делаются необходимые изменения в планировании эксперимента. Характер изменений и направление дальнейших действий определяет экспериментатор. Рассмотрим отдельные этапы и возможные варианты неформализованных решений (табл. 2.1).
Для исключения явно аномальных, грубых погрешностей, которые могут значительно исказить результаты, в отдельных строках проводится проверка однородности значений уuj. Для этого воспользуемся критерием Стьюдента:
, (2.1)
где — наименьшее или наибольшее значение отклика в u-й строке, которое полагают ошибочным; — среднее значение отклика в и-й строке, вычисленное без учета значения .
где — число опытов без одного, в котором .
где — оценка среднего квадратического отклонения; — оценка дисперсии в u-й точке плана без учета сомнительного результата .
Случайная величина t, определяемая по формуле (2.1), имеет f = nu— 1 степеней свободы. По числу степеней свободы и заданному уровню значимости б из таблиц распределения Стьюдента находят значение критерия tp. Уровень значимости принимают обычно таким: б= 0,05. Если значение критерия tp окажется больше табличного (tp > tm), то с надежностью вывода Р=0,95 можно утверждать, что — грубая погрешность и должен быть исключен из дальнейшей обработки. В противном случае при tp < tm результат согласуется с данными u-й строки и оставляется для дальнейшей обработки. При планировании эксперимента желательно, чтобы число опытов во всех строках (табл. 2.1) было одним и тем же:
Средние значения отклика в отдельных точках факторного пространства (табл. 2.1) рассчитываются после проверки однородности измерений. Во всех точках плана рассчитываются средние значения yu и заносятся в последнюю графу (табл. 2.1).
Среди всех значений одно будет наименьшим — , одно наибольшим — . Можно считать, что эксперимент содержит очень мало информации об объекте исследования, если разность статистически незначима.
Значимость разности средних yu также проверяется по критерию Стьюдента. Расчетное значение критерия определяется по формуле:
, (2.2)
где — оценка дисперсии воспроизводимости; nmax, nmin — число опытов в строках соответственно максимального и минимального средних значений отклика.
Табличное значение критерия определяют по уровню значимости а=0,05 и числу степеней свободы f, которое в данном случае равно сумме f=nmax+nmin. Если tp < tT, средние yu отличаются статистически незначимо. В подобном случае экспериментальные данные нельзя признать удовлетворительными и необходимо поставить такой эксперимент, в котором значение отклика в отдельных точках отличалось бы более существенно. Этот результат может быть достигнут изменением масштабов переменных интервалов варьирования факторов, применением планов второго порядка или перенесением области эксперимента в другое место области исследования Щ.
Оценки построчных дисперсий рассчитываются по формуле:
, (2.3)
где u = 1, 2, …, N — число всех точек плана, равное числу строк; число степеней свободы, которое равно числу параллельных опытов без одного.
Однородность дисперсий (при одинаковых количествах опытов в каждой строке ) проверяется по критерию Кохрена GР:
(2.4)
Величина Gp связана числом степеней свободы fmах=n—1 и fУ=N0. По уровню значимости б=0,05 и числам степеней свободы находят табличное значение критерия GT. Если выполняется неравенство Gp < GT, принимается гипотеза об однородности дисперсий. Если Gp>GT гипотеза об однородности отклоняется. Тогда надо принимать неформализованные решения, чтобы добиться выполнения условия Gp<GT. Один из возможных путей — переход к другому виду функции отклика. В тех случаях, когда число опытов в различных строках плана различно, применяется критерий Бартлета. Однородность построчных дисперсий свидетельствует о том, что в статистических данных нет систематических ошибок и измерения во всех точках плана имеют примерно одну и ту же точность.
Дисперсией воспроизводимости , или дисперсией опытов называется величина, определяемая соотношением:
(2.5)
При она имеет вид:
(2.6)
где N(n—1)=fy — число степеней свободы. Дисперсия воспроизводимости вычисляется по данным о построчных дисперсиях. В этом случае выражение принимает вид:
, (2.7)
где f1, f2, …, fN — числа степеней свободы дисперсий соответственно , , ….,.
Если число параллельных опытов n во всех точках плана одно и тоже f1=f2=…=fN=n-1. Тогда формула (2.7) принимает простой и наглядный вид:
(2.8)
Из формулы (2.8) следует, что дисперсия воспроизводимости есть среднее арифметическое построчных дисперсий. Дисперсия воспроизводимости характеризует точность эксперимента. Из выражений (2.5; 2.6)следует, что дисперсия воспроизводимости может быть вычислена только при nu>1.
Если в каждой строке ставится только один опыт, дисперсия не может быть вычислена. Ее величина оценивается косвенно — по известным метрологическим характеристикам измерительных приборов.
Отметим еще одно важное положение. Свойство ортогональности планирования сохраняется при условии, что во всех строках плана имеется одинаковое количество наблюдений, равное п. Если число уuj в разных строках различно, то для определения коэффициентов регрессии bi нельзя пользоваться формулами (1.13; 1.14). Статистическая значимость коэффициентов регрессии (возможность принять значение некоторого коэффициента bi равным нулю) проверяется по критерию Стьюдента, расчетное значение которого:
(2.9)
где , a — дисперсия i-го коэффициента регрессии.
Эту величину можно найти из равенств (1.14):
(2.10)
где — дисперсия среднего арифметического, которая определяется выражением:
Подставляя это выражение в (2.10), получаем:
(2.11)
Из сравнения (2.6) и (2.11) следует:
(2.12)
Значит, дисперсии всех коэффициентов одинаковы и дисперсия коэффициента в Nn раз меньше дисперсии воспроизводимости. Извлекая, квадратный корень из обеих частей равенства, получаем соотношение между погрешностью опытов и погрешностью коэффициентов регрессии:
Полученное равенство показывает очень важное свойство многофакторного эксперимента: погрешность коэффициентов регрессии постоянна и в раз меньше погрешности опытов, иначе говоря — уменьшается с увеличением числа N строк плана. В полном многофакторном эксперименте N=2К, следовательно, с увеличением числа факторов уменьшается погрешность и соответственно увеличивается точность описания объекта уравнением регрессии.
Определив погрешность по формуле (2.1), находим tp. Число степеней свободы величины tp равно числу степеней свободы дисперсии опытов (2.12), т. е. fbi=fy=N(n—1). По числу степеней свободы fbi и уровню значимости б=0,05 находим табличное значение критерия tТ. Если окажется, что tp<tТ, гипотезу о возможном равенстве коэффициента нулю следует принять, а соответствующий член из уравнения регрессии исключить. Если tp>tТ, то bi?0. Исключая член bixi из уравнения регрессии, считаем, что фактор xi существенно не влияет на отклик у. Это утверждение может оказаться ложным, хотя и выполняется условие tp<tТ. Дело в том, что иногда коэффициент bi оказывается малым из-за малого интервала варьирования, поэтому перед принятием решения об исключении члена bixi надо выяснить причину того, что коэффициент мал. После проверки значимости коэффициентов bi уравнение регрессии принимает следующий вид:
(2.13)
В заключение следует проверить адекватность модели по имеющимся статистическим данным. Для этого сравним дисперсии адекватности и воспроизводимости. Под дисперсией адекватности понимается характеристика разброса средних значений уu относительно поверхности отклика, предсказанной уравнением регрессии:
(2.14)
где — число степеней свободы дисперсии адекватности; l — число значимых коэффициентов в уравнении регрессии; — среднее значение отклика, записанное в последней графе (табл. 2.1); — значение отклика в u-й точке плана, вычисленное по уравнению регрессии (2.13).
Адекватность определяется по критерию Фишера. Подсчитывается значение:
(2.15)
и сравнивается со значением критерия FT, которое определяется из таблиц критерий Фишера по заданному уровню значимости (обычно б=0,05) и двум числам степеней свободы:
Условием адекватности является выполнение неравенства:
При Fp>FT модель не адекватна. В последнем случае для получения адекватной модели необходимы следующие творческие действия: уменьшить интервалы варьирования всех или некоторых факторов; увеличить число параллельных опытов; ввести новые, ранее неучтенные факторы; учесть взаимодействия, более высокого порядка; изменять функцию отклика (например, вместо функции y рассматривать функцию или какую-либо другую).
3. Алгоритм получения статистической модели
1. Выбираются факторы (параметры), влияющие на целевую функцию.
2. Выбирается вид уравнения регрессии (линейный или нелинейный).
3. Проводится эксперимент или заполняется матрица полного фактора эксперимента в случае использования статистического материала.
4. Оцениваются результаты функции отклика.
4.1 Производится проверка на однородность значений, т.е. исключаются случайный величины (Стьюдент).
4.2 Производится проверка на однородность дисперсий выборки по критерию Кохрена, т.е. проверяется точность измерений.
4.3 Определяется дисперсия воспроизводимости, т.е. характеризуется точность эксперимента.
4.4 Проверка значимости различия средних значений измерений по критерию Стьюдента.
5. Рассчитывается коэффициенты уравнения регрессии.
6. Поверяется значимость коэффициентов уравнения регрессии (Стьюдент).
7. Производится проверка полученной модели на адекватность.
8. Если да, то все ОКеу, если нет — п. 1.
4. Ручной счет алгоритма
Построение модели кожухотрубного конденсатора по результатам активного эксперимента.
В качестве факторов принимаются: температура хладагента на входе в конденсатор х1, температура охлаждающей воды на входе в конденсатор х2, расход охлаждающей воды на входе в конденсатор х3; в качестве отклика — температура конденсации
Задаемся средними значениями факторов (основными уровнями)
х10 = 80° С;
х20 = 18° С;
х30 = 20 м3/ч
и шагами варьирования
h1= 5° С; h2= 6° С; h3 = 5 м3/ч
Тогда уровни варьирования факторов
= [75; 85]° С; = [12; 24]° С; = [15; 25] м3/ч.
Модель строится в следующей последовательности: выбирается вид уравнения; проводится эксперимент, оцениваются его результаты, подсчитываются коэффициенты уравнения, проверяется их значимость; проверяется адекватность полученной модели исследуемому объекту.
Таблица 3.1 — Результаты эксперимента
№ опыта |
Уровни переменных |
Отклики |
||||||||
y |
||||||||||
x0 |
x1 |
x2 |
x3 |
1 |
2 |
3 |
4 |
|||
1 |
+ |
— |
— |
— |
15.90 |
15.85 |
16.20 |
16.05 |
16 |
|
2 |
+ |
+ |
— |
— |
21.80 |
22.10 |
22.15 |
22.30 |
22.088 |
|
3 |
+ |
— |
+ |
— |
25.85 |
25.90 |
26.00 |
26.05 |
25.95 |
|
4 |
+ |
+ |
+ |
— |
32.00 |
32.10 |
32.10 |
32.20 |
32.1 |
|
5 |
+ |
— |
— |
+ |
12.05 |
12.10 |
12.00 |
12.05 |
12.05 |
|
6 |
+ |
+ |
— |
+ |
18.10 |
18.10 |
17.80 |
17.70 |
17.925 |
|
7 |
+ |
— |
+ |
+ |
22.00 |
22.05 |
21.75 |
21.80 |
21.9 |
|
8 |
+ |
+ |
+ |
+ |
27.75 |
28.00 |
28.10 |
28.20 |
28.012 |
В рассматриваем примере уравнение модели ищем в виде:
Объект исследуется с помощью полного факторного эксперимента (табл. 3.1). В этом случае число опытов .
Эксперимент повторялся 4 раза, поэтому для каждой точки факторного пространства имеются 4 значения отклика «y».
Оценим полученные данные.
1. Проверка однородности значений yuj по строкам. Среднее квадратическое отклонение.
Наибольшие значения отклика в строке:
Среднее значения отклика без учета сомнительного результата:
СКО:
Расчетное значение критерия Стьюдента:
Из таблицы распределения Стьюдента находим значения критерия при:
‚†ЃЃ‚Ћ-‚PЃЃ‚S-‚PЃЃ‚R
бЃЃ0.05
Поскольку все расчетные коэффициенты Стьюдента меньше табличного, то значения y* согласуется с данными строк и участвует в дальнейших расчетах.
После проверки однородности измерений во всех точках плана подсчитываем средние значения отклика в каждой точке плана и заносим их в последнюю графу (табл. 3.1).
2. Расчет построчных дисперсий и проверка их однородности.
Сумма дисперсий:
Максимальное значение построчных дисперсий: 0.044
Расчетное значение критерия Кохрена:
Табличное значение критерия Кохрена:
При степенях свободы:
‚†1ЃЃ‚Ћ-‚PЃЃ‚S-‚PЃЃ‚R
‚†2ЃЃNЃЃ‚W
бЃЃ0.05
Поскольку расчетное значение критерия Кохрена меньше табличного допустимого, то дисперсии однородны.
3. Определение дисперсии воспроизводимости.
Погрешность воспроизводимости:
4. Расчет средних значений отклика в отдельных точках факторного пространства и проверка значимости их различия
Расчетное значение критерия Стьюдента:
Табличное значение критерия Стьюдента , при степени свободы и уровне значимости б=0.05.
Поскольку , различия между значениями отклика в разных точках плана существенны.
5. Определение коэффициентов регрессии.
Уравнение регрессии принимает вид:
6. Определение статистической значимости коэффициентов уравнения регрессии.
Расчетное значение критерия Стьюдента:
Табличное значение критерия определяем при степени свободы и уровне значимости б=0.05.
Поскольку все коэффициенты уравнения регрессии значимы.
7. Проверка адекватности уравнения регрессии. Для каждой точки плана определяем значение отклика вычисленное по уравнению регрессии.
Рассчитаем дисперсию адекватности:
Расчетное значение критерия Фишера:
При степенях свободы
и уровне значимости б=0.05, табличное значение критерия Фишера:
Поскольку , можно сделать вывод, что полученная модель адекватна исследуемому объекту.
5. Блок схема программы, реализующей данный алгоритм
Рисунок 4.1 — Структура программы
6. Листинг программы
6.1 main.pas Form1:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ComCtrls, Menus, XPMan, ExtCtrls, ShellAPI{, TDateTime};
type
TForm1 = class(TForm)
Panel1: TPanel;
MainMenu1: TMainMenu;
XPManifest1: TXPManifest;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
pc: TPageControl;
tidata: TTabSheet;
todata: TTabSheet;
GroupBox1: TGroupBox;
idata: TStringGrid;
Button1: TButton;
Button2: TButton;
GroupBox2: TGroupBox;
Button3: TButton;
savehtml: TSaveDialog;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
memo1: TMemo;
Button4: TButton;
Button5: TButton;
N10: TMenuItem;
Jxbcnbnmkju1: TMenuItem;
Button6: TButton;
Button7: TButton;
N11: TMenuItem;
procedure filldata;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
function validation : boolean;
procedure filldefault;
procedure Button3Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure htmlexport(path : string);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure normalize_row(num : integer);
procedure Button7Click(Sender: TObject);
procedure logmessage(it : boolean; text : string);
procedure N8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const rowc = 9;
colc = 10;
tablkstud = 3.18;
tablkkoch = 0.4377;
tablkstud2 = 2.306;
tablkstudregr = 2.06;
tablkfish = 2.78;
Form1: TForm1;
i, j, m, n : integer;
sregr : array [1..4] of real;
implementation
uses about, ycalc;
{$R *.dfm}
procedure tform1.filldata;
begin
With idata do begin
cells[0, 0] := ‘№’;
cells[0, 1] := ‘1’; cells[0, 2] := ‘2’;
cells[0, 3] := ‘3’; cells[0, 4] := ‘4’;
cells[0, 5] := ‘5’; cells[0, 6] := ‘6’;
cells[0, 7] := ‘7’; cells[0, 8] := ‘8’;
//—————————————-
cells[1, 0] := ‘x0’; cells[2, 0] := ‘x1’;
cells[3, 0] := ‘x2’; cells[4, 0] := ‘x3’;
cells[5, 0] := ‘y1’; cells[6, 0] := ‘y2’;
cells[7, 0] := ‘y3’; cells[8, 0] := ‘y4’;
cells[9, 0] := ‘y[среднее]’;
end;
end;
function tform1.validation : boolean;
var valvar : real;
begin
result := true;
// проверка x0 — x3 на плюсики-минусики
for i:=1 to rowc-1 do
for j:=1 to 4 do
if not ((idata.Cells[j, i] = ‘+’) or (idata.Cells[j, i] = ‘-‘)) then result := false;
// проверка на вменяемость измерений или пользователя
for i:=1 to rowc-1 do
for j:=5 to rowc-1 do
try valvar := StrToFloat(idata.Cells[j, i])
except result := false;
end;
end;
function kstud_calc(vis : array of real) : real;
var max, avg, avg0, sko, kstud : real;
maxn : integer;
begin
max := vis[0]; maxn :=0;
for i:=0 to 3 do if vis[i] > max then begin
max := vis[i];
maxn := i;
end;
{avg0 := 0;
for i:=0 to 3 do avg0 := avg0 + vis[i];
avg0 := avg0 / 4; maxn := 0;
max := abs(avg0 — vis[0]);
for i:=0 to 3 do if abs(avg0 — vis[i]) > max then begin
max := abs(avg0 — vis[i]);
maxn := i;
end;
max := vis[maxn]; }
avg := 0; sko := 0; result:=0;
for i:=0 to 3 do if i<>maxn then avg := avg + vis[i];
avg := avg/3;
for i:=0 to 3 do if i<>maxn then sko := sko + sqr(avg — vis[i]);
sko := sqrt(sko/3);
result := abs(max — avg)/sko;
end;
procedure errmessage(text : string);
begin
showmessage(text);
//Form1.Button1Click(Form1);
end;
procedure tform1.logmessage(it : boolean; text : string);
begin
if it then begin
memo1.lines.add(»);
memo1.lines.add(‘[‘+TimeToStr(now)+’] > ‘+text);
memo1.lines.add(»);
end else memo1.lines.add(text);
end;
function avgcount(vs : array of real) : real;
var maxn : integer;
begin
result := 0;
if kstud_calc(vs) <= tablkstud then begin
for i:=0 to 3 do result := result + vs[i];
result := result/4;
end else result := -1;
form1.logmessage(false, ‘| ‘+FloatToStr(kstud_calc(vs))+’ | ‘+FloatToStr(result));
end;
procedure tform1.normalize_row(num : integer);
var z, mt : integer;
avg, mot : real;
begin
mt := 0; avg := 0;
for z:=1 to 4 do avg := avg + StrToFloat(idata.Cells[z+4, num]);
avg := avg/4;
mot := abs(avg — Strtofloat(idata.cells[5, num]));
for z:=1 to 4 do if abs(avg — Strtofloat(idata.cells[z+4, num])) > mot then begin
mot := abs(avg — Strtofloat(idata.cells[z+4, num]));
mt := z;
end;
avg := 0;
for z:=1 to 4 do if z <> mt then avg := avg + strtofloat(idata.Cells[z+4, num]);
idata.Cells[mt+4, num] := floattostr(avg/3); idata.Cells[9, num] := ‘none’;
end;
procedure tform1.filldefault;
begin
with idata do begin
// знаки от [1, 1] до [4, 9] по дефолту
for i:=1 to rowc-1 do begin
cells[1, i] := ‘+’;
if odd(i) then cells[2, i] := ‘-‘ else cells[2, i] := ‘+’;
if (i=1) or (i=2) or (i=5) or (i=6) then cells[3, i] := ‘-‘ else cells[3, i] := ‘+’;
if i<=4 then cells[4, i] := ‘-‘ else cells[4, i] := ‘+’;
end;
// знаки от [5, 1] до [8,8] — замеры приборов y1 — y4
cells[5, 1] := ‘15,90’; cells[6, 1] := ‘15,85’; cells[7, 1] := ‘16,20’; cells[8, 1] := ‘16,05’;
cells[5, 2] := ‘21,80’; cells[6, 2] := ‘22,10’; cells[7, 2] := ‘22,15’; cells[8, 2] := ‘22,30’;
cells[5, 3] := ‘25,85’; cells[6, 3] := ‘25,90’; cells[7, 3] := ‘26,00’; cells[8, 3] := ‘26,05’;
cells[5, 4] := ‘32,00’; cells[6, 4] := ‘32,10’; cells[7, 4] := ‘32,10’; cells[8, 4] := ‘32,20’;
cells[5, 5] := ‘12,05’; cells[6, 5] := ‘12,10’; cells[7, 5] := ‘12,00’; cells[8, 5] := ‘12,05’;
cells[5, 6] := ‘18,10’; cells[6, 6] := ‘18,10’; cells[7, 6] := ‘17,80’; cells[8, 6] := ‘17,70’;
cells[5, 7] := ‘22,00’; cells[6, 7] := ‘22,05’; cells[7, 7] := ‘21,75’; cells[8, 7] := ‘21,80’;
cells[5, 8] := ‘27,75’; cells[6, 8] := ‘28,00’; cells[7, 8] := ‘28,10’; cells[8, 8] := ‘28,20’;
end; //
end;
procedure tform1.htmlexport(path : string);
var qr : textfile;
c : integer;
begin
assignfile(qr, path);
rewrite(qr);
writeln(qr, ‘<html>’+#10#13+'<head>’);
writeln(qr, ‘<title>Отчет программы «‘+Form1.Caption+'»</title>’);
writeln(qr, ‘<meta http-equiv=»Content-Type» content=»text/html; charset=UTF-8″></head>’);
writeln(qr, ‘<body background=»t2.bmp» text=»white»> <font face=»tahoma» color=»blue» size=»3″>’);
writeln(qr, ‘<h2 align=center> Отчет сгенерирован ‘+DateTimeToStr(now)+'</h2></font>’);
writeln(qr, ‘<h4>1. Сводная таблица результатов эксперимента</h4><br>’);
writeln(qr, ‘<table border=1 cellspacing=2 width=600px’);
writeln(qr, ‘<tr align=»center»> <td rowspan=»2″><b> № Опыта </b></td><td colspan=»4″><b> Уровни переменных </b></td><td colspan=»5″><b>Отклики</b></td></tr>’);
writeln(qr, ‘<tr align=»center»> <td><b>x0</b></td><td><b>x1</b></td><td><b>x2</b></td><td><b>x3</b></td><td><b>y1</b></td><td><b>y2</b></td><td><b>y3</b></td><td><b>y4</b></td><td><b>y[среднее]</b></td> </tr>’);
for c:=1 to rowc-1 do with idata do begin
write(qr, ‘<tr align=»center»> <td>’+IntToStr(c)+'</td><td>’+cells[1,c]+'</td><td>’+cells[2,c]+'</td><td>’+cells[3,c]+'</td><td>’+cells[4,c]+'</td>’);
writeln(qr, ‘<td>’+cells[5,c]+'</td><td>’+cells[6,c]+'</td><td>’+cells[7,c]+'</td><td>’+cells[8,c]+'</td><td>’+cells[9,c]+'</td> </tr>’);
end;
writeln(qr, ‘</table><br><br>’);
writeln(qr, ‘<h4>2. Лог программы</h4><pre>’);
for c:=0 to memo1.Lines.Count-1 do writeln(qr, memo1.lines[c]);
writeln(qr, ‘</pre></body></html>’);
closefile(qr);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
filldata;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=1 to rowc-1 do
for j:=1 to colc-1 do
idata.Cells[j, i] := »;
logmessage(true, ‘Таблица измерений очищена.’);
Button2.Enabled := True;
end;
procedure TForm1.Button2Click(Sender: TObject);
var strng, kstudregr : array [1..4] of real;
disper : array [0..9] of real;
y_tilda : array [1..8] of real;
ok , norm: boolean; t : string;
kkoch, kstud2, sdisp_sko, smax, smin, savg, adisp, kfish : real;
begin
if not validation then begin
ShowMessage(‘Данные в таблице измерений не прошли валидацию!’);
logmessage(true, ‘Данные в таблице измерений не прошли валидацию!’);
Button7.Enabled := false;
Mainmenu1.Items[1].Items[1].Enabled := false;
end else begin
Button2.Enabled := false;
ok := true;
// для начала — подсчет средних (проверка однородности игреков)
logmessage(true, ‘Выполнение подсчета Y[среднее], проверка однородности табличных замеров’);
logmessage(false, ‘Табличный Коэфф. Стьюдента = ‘+FloatToStr(tablkstud));
logmessage(false, ‘__________________________________’);
logmessage(false, ‘| Коэфф. Стьюдента | Среднее значение’);
norm := true;
while norm do begin
norm := false;
for n:=1 to 4 do strng[n] := 0;
for n:=1 to rowc-1 do begin
for m:=1 to 4 do strng[m] := StrToFloat(idata.cells[m+4, n]); // 5-1 => 8-1
idata.Cells[9, n] := »;
idata.cells[9, n] := FloatToStr(avgcount(strng));
end;
for n:=1 to rowc-1 do if strToFloat(idata.Cells[9, n]) = -1 then begin
norm := true;
errmessage(‘Большая погрешность измерений.’);
logmessage(false, ‘Ряд ‘+inttostr(n)+’ измерений неоднороден; слишком велика погрешность измерений’);
if messagedlg(‘Выполнить автоматическую коррекцию исходных данных ряда ‘+inttostr(n)+’ ?’, mtcustom, [mbYes, mbNo], 0) = mrYes then
normalize_row(n) else
norm := false;
// ok := false; реализовать кнопку Нет !!!
break;
end;
end;
logmessage(true, ‘Рассчет оценок построчной дисперсии и проверка их однородности.’);
// а вот теперь — рассчет оценок построчной дисперсии и проверка их однородности.
if ok then begin
for n:=1 to rowc-1 do begin
disper[n] := 0;
for m:=1 to 4 do
disper[n]:=disper[n] + sqr(strtofloat(idata.cells[m+4, n])-strtofloat(idata.cells[9, n]));
disper[n] := disper[n]/3;
end;
disper[9] := 0;
disper[0] := disper[1]; // disper[0] — максимальная дисперсия
logmessage(false, ‘| Дисперсии:’);
for n:=1 to rowc-1 do begin
disper[9] := disper[9] + disper[n]; // disper[9] — сумма дисперсий
if disper[n] > disper[0] then disper[0] := disper[n];
logmessage(false, ‘| ‘+floattostr(disper[n]));
end;
logmessage(false, »);
logmessage(false, ‘Максимальная дисперсия = ‘+floattostr(disper[0]));
logmessage(false, ‘Сумма дисперсий = ‘+floattostr(disper[9]));
logmessage(false, »);
kkoch := disper[0]/disper[9];
logmessage(false, ‘Табличный коэффициент Кохрена = ‘+floattostr(tablkkoch));
logmessage(false, ‘Рассчетный коэффициент Кохрена = ‘+floattostr(kkoch));
if tablkkoch <= kkoch then begin // а надо <=
logmessage(true, ‘Дисперсия неоднородна. Обнаружены систематические ошибки измерений’);
errmessage(‘Дисперсия неоднородна. Обнаружены ‘+#10#13+’систематические ошибки измерений’);
ok := false;
end else begin
logmessage(false, »);
logmessage(false,’Однородность дисперсии в пределах нормы.’);
end;
end;
// —————————————
// Опрeделение дисперсии воспроизводимости, скв_дисперсии
// —————————————
if ok then begin
logmessage(true, ‘Рассчет коэффициента Стьюдента для MAX и MIN средних откликов’);
sdisp_sko := sqrt(disper[9]/8);
logmessage(false, ‘Дисперсия воспроизводимости = ‘+floattostr(disper[9]/8));
logmessage(false, ‘Погрешность дисперсии воспроизводимости = ‘+floattostr(sdisp_sko));
// рассчет срзн. откликов, проверка их значимости
smax := 0; smin :=32747;
for n:=1 to rowc-1 do begin
savg := 0;
for m:=1 to 4 do savg := savg + strtofloat(idata.cells[m+4, n]);
savg := savg / 4;
if smax < savg then smax := savg;
if smin > savg then smin := savg;
end;
kstud2 := (smax — smin) / sdisp_sko*sqrt(1/2);
logmessage(false, »);
logmessage(false, ‘Табл. зн. коэфф. Стьюдента для MAX и MIN средних откликов = ‘+floattostr(tablkstud2));
logmessage(false,’Рассч. зн. коэфф. Стьюдента для MAX и MIN средних откликов = ‘+floattostr(kstud2));
if tablkstud2 > kstud2 then begin
logmessage(true, ‘Средние отклики отличаются незначительно, экспериментальные данные нельзя признать удовлетворительными’);
ok := false;
end else logmessage(false, »);
end;
for n:=1 to 4 do sregr[n] := 0;
if ok then begin
for n:=1 to 4 do begin
for m:=1 to rowc-1 do
if idata.Cells[n, m] = ‘+’ then sregr[n] := sregr[n] + strtofloat(idata.cells[9, m])
else sregr[n] := sregr[n] — strtofloat(idata.cells[9, m]);
sregr[n] := sregr[n]/8;
end;
logmessage(false, ‘Уравнение регрессии статистической модели: ‘);
t := ‘Y = ‘+floattostr(sregr[1]);
for n:=2 to 4 do t := t + ‘ + ‘+floattostr(sregr[n]) + ‘ *X’ + inttostr(n-1);
logmessage(false, t);
// >> проверка погрешности значимости b[i]
// 1. погрешность одного опыта
logmessage(true, ‘Определение статической значимости коэффициентов уравнения линейной регрессии’);
logmessage(false, ‘Погрешность одного опыта = ‘+floattostr(sdisp_sko / sqrt(32)));
// 2. рассчет значений критерия Стьюдента
logmessage(false, »);
logmessage(false, ‘Табличный коэффициент Стьюдента для ур-я регрессии = ‘+floattostr(tablkstudregr));
logmessage(false, ‘Значения критерия Стьюдента’);
logmessage(false, ‘___________________________’);
for n := 1 to 4 do begin
kstudregr[n] := sregr[n] / (sdisp_sko / sqrt(32));
logmessage(false, ‘| ‘+floattostr(kstudregr[n]));
end;
for n := 1 to 4 do
if abs(tablkstudregr) > abs(kstudregr[n]) then begin
logmessage(false, ‘Незначимый коэффициент регрессии [‘+inttostr(n)+’]= ‘+floattostr(sregr[n])+’. Откидывается.’);
sregr[n] := 0;
end;
logmessage(false, »);
logmessage(false, ‘Проверка….’);
logmessage(false, ‘Проверка коэффициентов регрессии на значимость завершена.’);
// >> Проверка адекватности уравнения регрессии
logmessage(true, ‘Проверка адекватности уравнения регрессии’);
logmessage(false, ‘Рассчет откликов по уравнению регрессии (Y~[i]):’);
logmessage(false, ‘_________’);
for n := 1 to rowc-1 do begin
y_tilda[n] := 0;
for m := 1 to 4 do
if idata.Cells[m, n] = ‘+’ then y_tilda[n] := y_tilda[n] + sregr[m]
else y_tilda[n] := y_tilda[n] — sregr[m];
logmessage(false, ‘| ‘+floattostr(y_tilda[n]));
end;
// рассчет дисперсии адекватности
logmessage(true, ‘Рассчет диспесии адекватности :’);
m := 1; adisp := 0;
for n := 2 to 4 do if sregr[n] <> 0 then inc(m);
for n := 1 to rowc-1 do adisp := adisp + sqr(strtofloat(idata.cells[9, n]) — y_tilda[n]);
adisp := adisp * (4 / (8 — m));
logmessage(false, ‘Дисперсия адекватности = ‘+floattostr(adisp));
// Нахождение рассчетного значения критерия Фишера
logmessage(true, ‘Нахождение рассчетного значения критерия Фишера :’);
kfish := adisp / (disper[9] / 8);
logmessage(false, ‘Табличный коэффициент Фишера = ‘+ floattostr(tablkfish));
logmessage(false, ‘Рассчетный коэффициент Фишера = ‘+floattostr(kfish));
logmessage(false, »);
if kfish > tablkfish then logmessage(false, ‘[ ! ] На основании проведенных исследований математическая модель исследуемого объекта признана неадекватной.’)
else begin
logmessage(false, ‘[ + ] Математическая модель исследуемого объекта признана адекватной.’);
logmessage(false, »);
t := ‘Y = ‘+floattostr(sregr[1]);
for n:=2 to 4 do if (sregr[n] <>0) then t := t + ‘ + ‘+floattostr(sregr[n]) + ‘ *X’ + inttostr(n-1);
logmessage(false, ‘Уравнение регрессии : ‘);
logmessage(false, t);
Button7.Enabled := true;
Mainmenu1.Items[1].Items[1].Enabled := true;
end;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
filldefault;
logmessage(true, ‘Заполнение стандартными данными…’);
Button2.Enabled := true;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TForm1.N2Click(Sender: TObject);
var h : hwnd;
begin
with savehtml do begin
defaultext := ‘htm’;
FileName := ‘.\SIT_StatRank_log.htm’;
Filter := ‘HTML — файлы|*.htm; *.html’;
end;
if savehtml.Execute then begin
logmessage(true,’Данные вычислений экспортированы в HTML-отчет’);
htmlexport(savehtml.FileName);
end;
if messagedlg(‘Просмотреть HTML-отчет?’, mtcustom, [mbYes, mbNo], 0) = mrYes then
ShellExecute(h, ‘open’, pansichar(savehtml.FileName), », ‘.’, sw_shownormal);
end;
procedure TForm1.N3Click(Sender: TObject);
begin
if messagedlg(‘Сохранить лог рассчетов перед выходом?’, mtcustom, [mbYes, mbNo], 0) = mrYes then
N10Click(Form1);
close;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
memo1.Text := »;
end;
procedure TForm1.N10Click(Sender: TObject);
begin
with savehtml do begin
defaultext := ‘txt’;
FileName := ‘.\SIT_StatRank_log.txt’;
Filter := ‘Текстовые файлы|*.txt’;
end;
if savehtml.Execute then memo1.Lines.SaveToFile(savehtml.FileName);
end;
procedure TForm1.Button7Click(Sender: TObject);
var fx : integer;
begin
fx := 1;
with Form3 do begin
Show;
lb0.Caption := floattostr(sregr[1]); lb1.Caption := floattostr(sregr[2]);
lb2.Caption := floattostr(sregr[3]); lb3.Caption := floattostr(sregr[4]);
//for n := 1 to 4 do ((‘lb’+inttostr(n)) as TLabel).Caption := floattostr(sregr[n]);
//lb0.Text := floattostr();
end;
end;
procedure TForm1.N8Click(Sender: TObject);
var h : hwnd;
begin
// Showmessage(‘В данной версии развернутая справка недоступна.’+#10#13+’Обратитесь к автору программы или технической документации по СИТ.’);
ShellExecute(h, ‘open’, pansichar(‘help.txt’), », ‘.’, sw_shownormal);
end;
end.
6.2 about.pas Form 2:
unit about;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, xpman;
type
TForm2 = class(TForm)
Panel1: TPanel;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Form2: TForm2;
implementation
uses main;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
MessageBeep(mb_ok);
Form2.Hide;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Form1.N8Click(Sender);
end;
end.
6.3 Скриншоты программы:
планирование эксперимент статистический программа алгоритм
Заключение
В результате выполнения данного курсового проекта была разработана программа анализа статической оценки качества проектируемой системы.
Полученная математическая модель может быть использована для последующих решений: для исследования точности и надежности устройства, выбора оптимальных параметров и т.п. Если цель оптимизации устройства, то используется линейное уравнение регрессии, по которому определяется направление градиента и организуется движение к оптимуму.
Список использованной литературы
1. Кринецкий И.И. «Основы научных исследований». Киев — Одесса, Высш. шк., 1981. — 208 с.
2. ГОСТ 19.701-90 «Схемы алгоритмов, программы, данных и систем»
3. http://ru.wikipedia.org/wiki/Блок-схема
4. Гмурман В.Е. «Теория вероятностей и математическая статистика». М.: Высш. шк., 2003.— 479 с.
5. Радченко С.Г. «Устойчивые методы оценивания статистических моделей»: Монография — К.: ПП «Санспарель», 2005. — 504 с.
6. Хомоненко А. Д. «Разработка приложений в Delphi 7». М.: BHV, 2010. — 1136 с.
7. Белов В. В., Чистякова В. И. «Программирование в Delphi: процедурное, объектно-ориентированное, визуальное». М.: Горячая Линия-Телеком, 2009. — 734 с.
Размещено на