EssayAI
Блог
Блог
Математика и алгоритмы

МНК: нормальная система уравнений и её решение

11 июня 2026Время чтения: 8 минут
#метод наименьших квадратов#нормальная система#линейная регрессия#МНК#коэффициент детерминации

Метод наименьших квадратов (МНК) - главный инструмент подбора кривой по экспериментальным точкам. Его суть: найти параметры модели так, чтобы сумма квадратов отклонений наблюдаемых значений от модельных была минимальной. Из этого условия минимума вытекает нормальная система - набор линейных уравнений, решив которые, вы получаете оптимальные коэффициенты. Ниже - интерактивный калькулятор: задайте параметры модели и уровень шума, и он немедленно составит нормальную систему, решит её и покажет результат на графике.

Что такое нормальная система МНК

Пусть у вас есть nn пар измерений (xi,yi)(x_i,\, y_i), и вы хотите аппроксимировать их линейной функцией y^=a+bx\hat{y} = a + bx. Критерий МНК требует минимизировать сумму квадратов остатков:

S(a,b)=i=1n(yiabxi)2min.S(a,\,b) = \sum_{i=1}^{n} \bigl(y_i - a - b\,x_i\bigr)^2 \to \min.

Необходимые условия минимума - равенство нулю частных производных по aa и bb:

Sa=2i=1n(yiabxi)=0,\frac{\partial S}{\partial a} = -2\sum_{i=1}^{n}(y_i - a - b\,x_i) = 0,

Sb=2i=1nxi(yiabxi)=0.\frac{\partial S}{\partial b} = -2\sum_{i=1}^{n}x_i(y_i - a - b\,x_i) = 0.

Раскрывая суммы и перегруппировывая, приходим к нормальной системе МНК:

{na+(xi)b=yi,(xi)a+(xi2)b=xiyi.\begin{cases} n\,a + \left(\sum x_i\right)b = \sum y_i, \\ \left(\sum x_i\right)a + \left(\sum x_i^2\right)b = \sum x_i y_i. \end{cases}

Система содержит только пять статистик набора данных: nn, xi\sum x_i, yi\sum y_i, xi2\sum x_i^2, xiyi\sum x_i y_i - всё, что нужно, чтобы перейти от точек к формулам.

Как добавление каждой новой точки изменяет прямую МНК: при малом шуме прямая стабилизируется быстро, при большом - колеблется заметнее, но всегда минимизирует суммарный квадрат остатков

Как решить нормальную систему

Нормальная система для линейного случая - это 2×22 \times 2. Решается подстановкой или формулами Крамера.

Обозначим суммы коротко:

Sx=i=1nxi,Sy=i=1nyi,Sx2=i=1nxi2,Sxy=i=1nxiyi.S_x = \sum_{i=1}^n x_i, \quad S_y = \sum_{i=1}^n y_i, \quad S_{x^2} = \sum_{i=1}^n x_i^2, \quad S_{xy} = \sum_{i=1}^n x_i y_i.

Тогда определитель системы:

D=nSx2Sx2.D = n\,S_{x^2} - S_x^2.

По формулам Крамера:

b=nSxySxSyD,a=SybSxn.b = \frac{n\,S_{xy} - S_x\,S_y}{D}, \qquad a = \frac{S_y - b\,S_x}{n}.

Условие D0D \neq 0 выполняется всегда, если точки xix_i не все одинаковы (что очевидно для реального эксперимента).

Геометрический смысл МНК: остатки - вертикальные отрезки от точек до прямой; их квадраты суммируются и минимизируются нормальной системой
Геометрический смысл МНК: остатки - вертикальные отрезки от точек до прямой; их квадраты суммируются и минимизируются нормальной системой

Геометрически каждое слагаемое S(a,b)S(a,b) - это площадь квадрата со стороной, равной вертикальному отклонению точки от прямой. МНК выбирает прямую, при которой суммарная «площадь» всех таких квадратов наименьша.

Числовой пример: шаг за шагом

Возьмём 5 точек: (1;  2,1)(1;\;2{,}1), (2;  3,9)(2;\;3{,}9), (3;  6,2)(3;\;6{,}2), (4;  8,0)(4;\;8{,}0), (5;  9,8)(5;\;9{,}8).

Шаг 1. Вычислим суммы:

iixix_iyiy_ixi2x_i^2xiyix_i y_i
112,112,1
223,947,8
336,2918,6
448,01632,0
559,82549,0
Сумма1530,055109,5

Шаг 2. Составим нормальную систему (n=5n=5):

{5a+15b=30,0,15a+55b=109,5.\begin{cases} 5a + 15b = 30{,}0, \\ 15a + 55b = 109{,}5. \end{cases}

Шаг 3. Найдём определитель и решим:

D=555152=275225=50,D = 5 \cdot 55 - 15^2 = 275 - 225 = 50,

b=5109,51530,050=547,545050=97,550=1,95,b = \frac{5 \cdot 109{,}5 - 15 \cdot 30{,}0}{50} = \frac{547{,}5 - 450}{50} = \frac{97{,}5}{50} = 1{,}95,

a=30,01,95155=30,029,255=0,755=0,15.a = \frac{30{,}0 - 1{,}95 \cdot 15}{5} = \frac{30{,}0 - 29{,}25}{5} = \frac{0{,}75}{5} = 0{,}15.

Итог: y^=0,15+1,95x\hat{y} = 0{,}15 + 1{,}95\,x.

Коэффициент детерминации R^2

После нахождения коэффициентов естественно проверить, насколько хорошо прямая описывает данные. Это делает коэффициент детерминации R2R^2:

R2=1SSresSStot,SSres=(yiy^i)2,SStot=(yiyˉ)2,R^2 = 1 - \frac{SS_\text{res}}{SS_\text{tot}}, \quad SS_\text{res} = \sum(y_i - \hat{y}_i)^2,\quad SS_\text{tot} = \sum(y_i - \bar{y})^2,

где yˉ=Sy/n\bar{y} = S_y/n - среднее значение yy. Значение R2[0;1]R^2 \in [0;\,1]: R2=1R^2 = 1 означает идеальное совпадение прямой с данными, R20R^2 \approx 0 - полное отсутствие линейной зависимости.

Для нашего примера: yˉ=6,0\bar{y} = 6{,}0,

SStot=(2,16)2++(9,86)2=33,8,SSres0,125,SS_\text{tot} = (2{,}1-6)^2 + \ldots + (9{,}8-6)^2 = 33{,}8, \quad SS_\text{res} \approx 0{,}125,

R210,12533,80,996.R^2 \approx 1 - \frac{0{,}125}{33{,}8} \approx 0{,}996.

Высокое R2R^2 подтверждает: линейная модель описывает данные превосходно.

Откуда берётся прямая МНК: матричная интерпретация

Запишем задачу компактно. Пусть y=(y1,,yn)T\mathbf{y} = (y_1, \ldots, y_n)^T - вектор наблюдений, c=(a,b)T\mathbf{c} = (a, b)^T - вектор неизвестных коэффициентов, а матрица плана:

A=(1x11x21xn).A = \begin{pmatrix} 1 & x_1 \\ 1 & x_2 \\ \vdots & \vdots \\ 1 & x_n \end{pmatrix}.

Тогда модель - AcyA\mathbf{c} \approx \mathbf{y}, и критерий МНК - Acy2min\|A\mathbf{c} - \mathbf{y}\|^2 \to \min. Минимум достигается в точке, где AcyA\mathbf{c} - \mathbf{y} ортогонален столбцам AA, то есть AT(Acy)=0A^T(A\mathbf{c} - \mathbf{y}) = \mathbf{0}. Это и есть нормальная система в матричной форме:

ATAc=ATy.A^T A\,\mathbf{c} = A^T \mathbf{y}.

Перемножьте ATAA^T A вручную - получите в точности матрицу нормальной системы из предыдущего раздела: элемент (1,1)=n(1,1) = n, (1,2)=Sx(1,2) = S_x, (2,2)=Sx2(2,2) = S_{x^2} и т. д. Матричная запись удобна для обобщений: достаточно изменить AA, чтобы перейти от линейной модели к любому другому набору базисных функций.

Нормальная система для полиномиальной модели

МНК обобщается на произвольный полином y^=a0+a1x+a2x2++akxk\hat{y} = a_0 + a_1 x + a_2 x^2 + \ldots + a_k x^k. Нормальная система тогда содержит k+1k+1 уравнение и строится по тому же принципу - приравниваем нулю частные производные по каждому коэффициенту:

(nSxSx2SxSx2Sx3Sx2Sx3Sx4)(a0a1a2)=(SySxySx2y).\begin{pmatrix} n & S_x & S_{x^2} \\ S_x & S_{x^2} & S_{x^3} \\ S_{x^2} & S_{x^3} & S_{x^4} \end{pmatrix} \begin{pmatrix} a_0 \\ a_1 \\ a_2 \end{pmatrix} = \begin{pmatrix} S_y \\ S_{xy} \\ S_{x^2 y} \end{pmatrix}.

Матрица нормальной системы называется матрицей Грама (или матрицей информации). Для практических расчётов с k2k \geq 2 удобнее использовать матричную форму ATAc=ATyA^T A\,\mathbf{c} = A^T \mathbf{y}, где AA - матрица плана. Именно в таком виде МНК реализован во всех пакетах численных расчётов.

Выбирайте степень полинома минимальной, при которой $R^2$ перестаёт заметно расти. Добавление лишних коэффициентов ведёт к переобучению: прямая «прижимается» к каждой точке, теряя предсказательную силу.

Практические применения МНК

МНК применяется всякий раз, когда нужно построить модель по данным с погрешностями. Несколько типичных учебных ситуаций:

  • Физический эксперимент. Измерение зависимости сопротивления от температуры R(T)=R0(1+αT)R(T) = R_0(1 + \alpha T): это линейная модель, два параметра R0R_0 и α\alpha находятся нормальной системой.
  • Графическая поверка закона. Если линеаризованный вид закона Хука (F=kΔl)(F = k\Delta l) дать на вход МНК, наклон прямой сразу даст жёсткость пружины kk с наименьшей погрешностью.
  • Демография и экономика. Линейный тренд временного ряда (выручка, население) - классическое применение нормальной системы с xix_i = номер года.
  • Химия. Калибровочная кривая спектрофотометра: оптическая плотность линейно зависит от концентрации, МНК восстанавливает эту зависимость из серии стандартных образцов.

Во всех этих задачах алгоритм одинаков: составить таблицу суммарных статистик, подставить в формулы нормальной системы и найти aa, bb.

Частые ошибки

  • Забывают перевести xix_i в числа при таблично заданных данных (например, года или даты). Нормальная система работает только с числами.
  • Делят суммы на nn до подстановки. Систему нужно составлять именно из сырых сумм xi\sum x_i, xi2\sum x_i^2 и т. д., а не из средних - деление вносит ошибку в уравнения.
  • Путают SSresSS_\text{res} и SStotSS_\text{tot} при расчёте R2R^2. SStotSS_\text{tot} - разброс относительно среднего yˉ\bar{y}, SSresSS_\text{res} - относительно прямой. Поменять местами - получить R2>1R^2 > 1 или отрицательное.
  • Ставят прочерк при D=0D = 0. Если все xix_i одинаковы, определитель обращается в ноль и система вырождена. В таком случае надо менять набор данных, а не искать другую формулу.
  • Не проверяют остатки на систематику. Высокое R2R^2 не означает правильность модели: если остатки образуют дугу, линейная модель неправильна, нужна парабола.

FAQ

Почему нормальная система называется «нормальной»? Название исторически связано с понятием нормали в геометрии: условие минимума суммы квадратов эквивалентно тому, что вектор остатков e=yAc\mathbf{e} = \mathbf{y} - A\mathbf{c} ортогонален (нормален) столбцам матрицы плана AA. Именно это ортогональное условие и записывается в виде системы ATAc=ATyA^T A\,\mathbf{c} = A^T \mathbf{y}.

Можно ли применять МНК, если ошибки yiy_i неодинаковы? Да, это взвешенный МНК: каждое наблюдение умножается на вес wi=1/σi2w_i = 1/\sigma_i^2. Нормальная система приобретает вид ATWAc=ATWyA^T W A\,\mathbf{c} = A^T W \mathbf{y}, где W=diag(wi)W = \mathrm{diag}(w_i). При равных весах взвешенный МНК совпадает с обычным.

Что делать, если данных мало (например, n=3n = 3) и нужна парабола? При числе параметров модели равном числу точек система имеет единственное решение, и R2=1R^2 = 1 автоматически - прямая (или парабола) проходит через все точки. Это не МНК-оптимизация, а точная интерполяция. Смысл МНК как аппроксимации появляется только при n>k+1n > k+1.

Коротко

Нормальная система МНК получается из условия минимума суммы квадратов остатков: приравнивая нулю частные производные по всем коэффициентам, мы получаем линейную систему с матрицей Грама. Для линейной модели y^=a+bx\hat{y} = a + bx система имеет размер 2×22 \times 2 и решается явными формулами через пять статистик набора данных. Качество подгонки оценивается коэффициентом детерминации R2R^2: чем он ближе к 1, тем лучше модель описывает разброс данных.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также