2024-10-14 22:56:34 +03:00
|
|
|
|
import numpy as np
|
|
|
|
|
|
|
|
|
|
class zadacha2:
|
|
|
|
|
def calculate_coefficients(self, X, Y):
|
|
|
|
|
"""
|
|
|
|
|
Функция для расчета коэффициентов b0 и b1 по методу наименьших квадратов (МНК)
|
|
|
|
|
:param X: массив значений независимой переменной
|
|
|
|
|
:param Y: массив значений зависимой переменной
|
|
|
|
|
:return: коэффициенты b0 и b1
|
|
|
|
|
"""
|
|
|
|
|
n = len(X)
|
|
|
|
|
|
|
|
|
|
# Вычисляем средние значения X и Y
|
|
|
|
|
mean_x = np.mean(X)
|
|
|
|
|
mean_y = np.mean(Y)
|
|
|
|
|
|
|
|
|
|
# Вычисляем коэффициент b1
|
|
|
|
|
numerator = np.sum((X - mean_x) * (Y - mean_y))
|
|
|
|
|
denominator = np.sum((X - mean_x) ** 2)
|
|
|
|
|
b1 = numerator / denominator
|
|
|
|
|
|
|
|
|
|
# Вычисляем коэффициент b0
|
|
|
|
|
b0 = mean_y - b1 * mean_x
|
|
|
|
|
|
|
|
|
|
return b0, b1
|
|
|
|
|
|
|
|
|
|
def predict(self, X, b0, b1):
|
|
|
|
|
"""
|
|
|
|
|
Функция для предсказания значений Y на основе коэффициентов b0 и b1
|
|
|
|
|
:param X: массив значений независимой переменной
|
|
|
|
|
:param b0: коэффициент b0 (свободный член)
|
|
|
|
|
:param b1: коэффициент b1 (коэффициент при X)
|
|
|
|
|
:return: предсказанные значения Y
|
|
|
|
|
"""
|
|
|
|
|
return b0 + b1 * X
|