DEV//UNIT

Линейная регрессия

Прямая через точки с минимальной суммой квадратов ошибок: y = kx + b.

время O(n)память O(1)уровень: начальный
Что происходит сейчас0/0
Нажмите Play, чтобы запустить сценарий
TypeScript — активная строка подсвечена шагом
1function linearRegression(pts: Array<[x: number, y: number]>): [k: number, b: number] {
2 const n = pts.length
3 const sx = pts.reduce((s, p) => s + p[0], 0)
4 const sy = pts.reduce((s, p) => s + p[1], 0)
5 const sxy = pts.reduce((s, p) => s + p[0] * p[1], 0)
6 const sxx = pts.reduce((s, p) => s + p[0] * p[0], 0)
7
8 const k = (n * sxy - sx * sy) / (n * sxx - sx * sx)
9 const b = (sy - k * sx) / n
10 return [k, b]
11}

Проблема

Прямая через точки с минимальной суммой квадратов ошибок: y = kx + b.

Что вы видите

Каждая точка вносит вклад в суммы Σx, Σy, Σxy, Σx²; из них формулы дают k и b.

Как это работает

Метод наименьших квадратов: минимизируем Σ(y − kx − b)²; приравнивание производных к нулю даёт закрытые формулы. Если данные линейны — это оптимальная прямая.

Пошаговый разбор

  1. 01

    Суммы

    Σx, Σy, Σxy, Σx².

  2. 02

    Наклон

    k по формуле ковариации.

  3. 03

    Сдвиг

    b из средних.

Complexity и ограничения

time
O(n)
space
O(1)

Сложность см. в шапке страницы.

Edge cases

  • Пустой вход

    Корректная тривиальная обработка.

  • Вырожденный случай

    Минимум работы — сразу ответ.

Где встречается в реальности

Прогнозы

Тренды метрик, бюджеты, погода.

A/B

Оценка эффекта изменений.

Финансы

Модель стоимости, бета-коэффициенты.

Связанные алгоритмы

Shorts

«Прямая через точки: математика прогнозов»

Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.

Shorts 9:16

Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.

Прямая через точки: математика прогнозов
Нажмите Play
Бит 1/6 · 0–2 с
Hook
script-setup.ru/algorithms/linear-regression