Метод наименьших квадратов

Реализация алгоритма:

  1. Подготовка данных
    В коде данные представлены в виде массива points, где каждая точка имеет координаты x и y. Также для каждой точки предусмотрена возможность перетаскивания (свойство dragging):
  2. Вычисление коэффициентов уравнения линии

    Основная часть алгоритма – это расчет коэффициентов прямой y=mx+b, где:

    m – наклон линии (коэффициент при x),
    b – точка пересечения линии с осью y.

    Для этого собираются следующие суммы:

    • sumX: сумма всех x-координат,
    • sumY: сумма всех y-координат,
    • sumXY: сумма произведений x-координат на соответствующие y-координаты,
    • sumX2: сумма квадратов x-координат.
  3. Отрисовка линии и точек

    Каждый раз, когда точки перетаскиваются, пересчитываются коэффициенты m и b, и график перерисовывается:

    • Линия регрессии: Используются пересчитанные коэффициенты для отрисовки линии от x=0 до x=ширина_канваса:
    • Точки: Каждая точка отображается в виде синего круга. Координаты точек можно изменять перетаскиванием:
  4. Перетаскивание точек

    Пользователь может перетаскивать точки, что вызывает пересчет регрессии:

    • При клике определяется ближайшая к указателю точка:
    • При перемещении мыши перетаскиваемая точка обновляет свои координаты, и график перерисовывается: