Математики нашли точную формулу для вычисления k и b! Не нужно ничего перебирать.
Формулы вычисления k и b:
\(k = \frac{\text{сумма}((x - \text{среднее_x}) \cdot (y - \text{среднее_y})}{\text{сумма}((x-\text{среднее_x})^2)}\)
- Числитель: показывает, как вместе изменяются X и Y
- Если когда X больше среднего, Y тоже больше среднего → произведение положительное
- Если когда X больше среднего, Y меньше среднего → произведение отрицательное
- Знаменатель: просто масштабирует результат
Проще говоря: k
показывает, насколько сильно Y реагирует на изменения X.
\(b = \text{среднее_y} - k \cdot \text{среднее_x}\)
- Это гарантирует, что наша линия пройдет через "центр тяжести" данных — точку
(среднее_x, среднее_y)
- Линия как бы "закрепляется" в центре всех данных
Алгоритм нахождения коэффициентов линейной регрессии:
ВХОД: массивы X и y (одинаковой длины)
ВЫХОД: коэффициенты k и b
ШАГ 1: Найти средние значения
среднее_x = сумма всех x / количество
среднее_y = сумма всех y / количество
ШАГ 2: Вычислить отклонения от среднего
Для каждой точки i:
отклонение_x[i] = x[i] - среднее_x
отклонение_y[i] = y[i] - среднее_y
ШАГ 3: Вычислить числитель для k
числитель = 0
Для каждой точки i:
числитель = числитель + (отклонение_x[i] × отклонение_y[i])
ШАГ 4: Вычислить знаменатель для k
знаменатель = 0
Для каждой точки i:
знаменатель = знаменатель + (отклонение_x[i])²
ШАГ 5: Найти k
k = числитель / знаменатель
ШАГ 6: Найти b
b = среднее_y - k × среднее_x
ШАГ 7: Вернуть k и b