Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛБ6_Каширина.docx
Скачиваний:
0
Добавлен:
20.06.2026
Размер:
91.24 Кб
Скачать

Ход работы

  1. На основании экспериментальных данных и методики полного факторного эксперимента с помощью программы Python разработан алгоритм и программа расчета коэффициентов уравнения и регрессионного анализа (ПРИЛОЖЕНИЕ А);

  2. Проведен расчет коэффициентов уравнения регрессии и составлено уравнение (таблица 3);

  3. Выполнена проверка дисперсии на однородность по критерию Кохрена, результаты которой представлены в таблице 3;

  4. Оценена значимость коэффициентов регрессии по критерию Стьюдента (таблица 3);

  5. Проведена проверка полученной модели на адекватность по критерию Фишера, результаты которой представлены в таблице 3.

Результаты исследований

Таблица 3 – Результаты исследований

Исследование

Результат

Расчет коэффициентов уравнения регрессии

b0 = 21,921; b1 = -3,566; b2 = 3,034

Уравнение регрессии:

Оценка дисперсии воспроизводимости (оценка ошибки опыта)

Выборочные дисперсии: S2_1 = 0,224, S2_2 = 0,080, S2_3 = 0,135, S2_4 = 0,168

sum_S2 = 0,608

Критерий Кохрена: G = 0,3693

Так как 0,3693 < 0,9065, то дисперсия однородна

Оценка значимости коэффициентов по критерию Стьюдента

S_vospr2 = 0.1520

tb0 = 112,468, tb1 = 18,297, tb2 = 15,565

Коэффициент регрессии b0 значим так как 112,468 > 2,78

Коэффициент регрессии b1 значим так как 18,297 > 2,78

Коэффициент регрессии b2 значим так как 15,565 > 2,78

Уравнение будет иметь вид: = 21,921 - 3,566 * X1 + 3,034 * X2

Проверка модели на адекватность по критерию Фишера

Y = 22,454; 15,321; 28,521; 21,389

S_ost2 = 0,196

F = 1,289

Так как 1,289 < 3,8, уравнение регрессии адекватно

Вывод: в ходе данной лабораторной работы освоены методы планирования эксперимента. На основании имеющейся входной информации о химико-технологическом процессе составлена матрица планирования для двух факторов: концентрации и температуры. На основании экспериментальных данных найдены коэффициенты уравнения регрессии и составлено уравнение. Проведена оценка дисперсии воспроизводимости по критерию Кохрена, который составил 0,3693 и так как 0,3693 < 0,9065, то дисперсия однородна. Оценена значимость коэффициентов по критерию Стьюдента: коэффициент регрессии b0 значим так как 112,468 > 2,78, b1 значим так как 18,297 > 2,78 и коэффициент регрессии b2 значим так как 15,565 > 2,78. Модель была проверена на адекватность по критерию Фишера, уравнение регрессии адекватно так как 1,289 < 3,8.

ПРИЛОЖЕНИЕ А

Программа расчета коэффициентов уравнения и регрессионного анализа

X0 = [+1, +1, +1, +1]

X1 = [-1, +1, -1, +1]

X2 = [-1, -1, +1, +1]

Y1 = [22.34, 15.3, 28.04, 21.32]

Y2 = [23.01, 14.9, 28.56, 21.9]

Y3 = [22.9, 15.13, 28.34, 21.55]

b0 = 0

b1 = 0

b2 = 0

n = 2

l = 2

numbers = l**n

L = n + 1

print("Расчет коэффициентов регрессии:")

Ysr = [i for i in range(numbers)]

for i in range(numbers):

Ysr[i] = (Y1[i] + Y2[i])/2

print(f"Ysr : [Ysr1 = {Ysr[0]:.3f}, Ysr2 = {Ysr[1]:.3f}, Ysr3 = {Ysr[2]:.3f}, Ysr4 = {Ysr[3]:.3f}]")

for i in range(numbers):

b0 = b0 + Ysr[i]/numbers

b1 = b1 + Ysr[i] *X1[i]/numbers

b2 = b2 + Ysr[i] *X2[i]/numbers

print(f"b0 = {b0:.3f}, b1 = {b1:.3f}, b2 = {b2:.3f}")

Yr = [i for i in range(numbers)]

for i in range(numbers):

Yr[i] = b0 + b1 * X1[i] + b2 * X2[i]

print(f"Yr : [Yr1 = {Yr[0]:.3f}, Yr2 = {Yr[1]:.3f}, Yr3 = {Yr[2]:.3f}, Yr4 = {Yr[3]:.3f}]")

print("Уравнение регрессии:")

print(f"Y^ = {b0:.3f} + {b1:.3f} * X1 + {b2:.3f} * X2, end='\n\n'")

# Регрессионный анализ

print("1. Оценка дисперсии воспроизводимости (оценка ошибки опыта)")

S2 = [i for i in range(numbers)]

for i in range(numbers):

S2[i] = (Y1[i]-Ysr[i])**2 + (Y2[i]-Ysr[i])**2

print(f"S2 : [S2_1 = {S2[0]:.3f}, S2_2 = {S2[1]:.3f}, S2_3 = {S2[2]:.3f}, S2_4 = {S2[3]:.3f}]")

S2_sum = sum(S2)

print(f"sum_S2 = {S2_sum:.3f}")

print("Критерий Кохрена:")

G = max(S2)/S2_sum

print(f"G = {G:.4f}")

Gt = 0.9065

if G < Gt:

print(f"Так как {G:.4f} < {Gt}, то дисперсия однородна", end='\n\n')

else:

print(f"Так как {G:.4f} > {Gt}, то дисперсия не однородна", end='\n\n')

print("2. Оценка значимости коэффициентов по критерию Стьюдента")

S_vospr2 = sum(S2)/numbers

print(f"S_vospr2 = {S_vospr2:.4f}")

Sb2 = S_vospr2/numbers

tb = [j for j in range(3)]

b = [b0, b1, b2]

for j in range(3):

tb[j] = abs(b[j])/Sb2**0.5

print(f"tb0 = {tb[0]:.3f}, tb1 = {tb[1]:.3f}, tb2 = {tb[2]:.3f}")

tt = 2.78

Y = [i for i in range(numbers)]

for j in range(3):

if tb[j] > tt:

print(f"Коэффициент регрессии b{j} значим так как {tb[j]:.3f} > {tt}")

elif tb[j] < tt:

print(f"Коэффициент регрессии b{j} не значим, так как {tb[j]:.3f} < {tt}, поэтому b{j} приравнивается к 0 и исключается из уравнения")

b[j] = 0

print(f"Уравнение будет иметь вид: Y^ = {b[0]:.3f} + {b[1]:.3f} * X1 + {b[2]:.3f} * X2")

print("3. Проверка модели на адекватность по критерию Фишера")

for i in range(numbers):

Y[i] = b[0] + b[1] * X1[i] + b[2] * X2[i]

print(f"Y = {Y[0]:.3f}, {Y[1]:.3f}, {Y[2]:.3f}, {Y[3]:.3f}")

S_ost2 = 0

for i in range (numbers):

S_ost2 += ((Ysr[i] - Y[i])**2) * 1/(numbers-L)

print(f"S_ost2 = {S_ost2:.3f}")

F = S_ost2/S_vospr2

print(f"F = {F:.3f}")

Ft = 3.8

if F < Ft:

print(f"Так как {F:.3f} < {Ft}, уравнение регрессии адекватно")

elif F > Ft:

print(f"Так как {F:.3f} > {Ft}, уравнение регрессии неадекватно")