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

Нормальные уравнения МНК: множественная регрессия пошагово

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

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

Постановка задачи: что минимизирует МНК

Линейная модель с двумя факторами имеет вид:

Y^i=b0+b1Xi1+b2Xi2,i=1,,n.\hat Y_i = b_0 + b_1 X_{i1} + b_2 X_{i2}, \quad i = 1, \dots, n.

Остаток ii-го наблюдения - разность между фактом и предсказанием: ei=YiY^ie_i = Y_i - \hat Y_i. МНК требует минимизировать суммарную квадратическую ошибку:

S(b0,b1,b2)=i=1nei2=i=1n(Yib0b1Xi1b2Xi2)2min.S(b_0, b_1, b_2) = \sum_{i=1}^{n} e_i^2 = \sum_{i=1}^{n} \bigl(Y_i - b_0 - b_1 X_{i1} - b_2 X_{i2}\bigr)^2 \to \min.

Квадратичная форма SS выпукла и гладка, у неё единственный глобальный минимум. Условие минимума - обращение в нуль всех частных производных по b0b_0, b1b_1, b2b_2.

Схема МНК: нормальные уравнения связывают суммы наблюдений с вектором коэффициентов регрессии
Схема МНК: нормальные уравнения связывают суммы наблюдений с вектором коэффициентов регрессии

Вывод нормальных уравнений

Берём частные производные функции SS по каждому коэффициенту и приравниваем к нулю.

По b0b_0:

Sb0=2i=1n(Yib0b1Xi1b2Xi2)=0.\frac{\partial S}{\partial b_0} = -2\sum_{i=1}^{n}\bigl(Y_i - b_0 - b_1 X_{i1} - b_2 X_{i2}\bigr) = 0.

По b1b_1:

Sb1=2i=1nXi1(Yib0b1Xi1b2Xi2)=0.\frac{\partial S}{\partial b_1} = -2\sum_{i=1}^{n} X_{i1}\bigl(Y_i - b_0 - b_1 X_{i1} - b_2 X_{i2}\bigr) = 0.

По b2b_2:

Sb2=2i=1nXi2(Yib0b1Xi1b2Xi2)=0.\frac{\partial S}{\partial b_2} = -2\sum_{i=1}^{n} X_{i2}\bigl(Y_i - b_0 - b_1 X_{i1} - b_2 X_{i2}\bigr) = 0.

После раскрытия скобок и группировки по b0,b1,b2b_0, b_1, b_2 получаем систему трёх линейных уравнений - нормальную систему МНК:

b0n  +  b1X1  +  b2X2=Y,b0X1+b1X12+b2X1X2=X1Y,b0X2+b1X1X2+b2X22=X2Y.\begin{aligned} b_0 \, n \;+\; b_1 \sum X_1 \;+\; b_2 \sum X_2 &= \sum Y, \\ b_0 \sum X_1 + b_1 \sum X_1^2 + b_2 \sum X_1 X_2 &= \sum X_1 Y, \\ b_0 \sum X_2 + b_1 \sum X_1 X_2 + b_2 \sum X_2^2 &= \sum X_2 Y. \end{aligned}

Все суммы берутся по nn наблюдениям (X1=i=1nXi1\sum X_1 = \sum_{i=1}^n X_{i1} и т.д.). Это три уравнения с тремя неизвестными b0,b1,b2b_0, b_1, b_2 - классическая линейная система, решаемая любым стандартным методом.

Перед составлением нормальной системы удобно построить вспомогательную таблицу восьми сумм: n, Σx1, Σx2, Σy, Σx1², Σx2², Σx1x2, Σx1y, Σx2y. Все коэффициенты системы - это именно эти суммы. Ошибки в них - главный источник неправильного ответа.

Структура нормальной системы

Коэффициенты нормальной системы устроены симметрично. Запишем систему в матричном виде Ab=cA \, \mathbf{b} = \mathbf{c}:

A=(nX1X2X1X12X1X2X2X1X2X22),c=(YX1YX2Y).A = \begin{pmatrix} n & \sum X_1 & \sum X_2 \\ \sum X_1 & \sum X_1^2 & \sum X_1 X_2 \\ \sum X_2 & \sum X_1 X_2 & \sum X_2^2 \end{pmatrix}, \quad \mathbf{c} = \begin{pmatrix} \sum Y \\ \sum X_1 Y \\ \sum X_2 Y \end{pmatrix}.

Матрица AA симметрична (A=ATA = A^\mathsf{T}) и совпадает с произведением XTXX^\mathsf{T} X, где XX - дизайн-матрица с первым столбцом из единиц. Правая часть c=XTy\mathbf{c} = X^\mathsf{T} y. Поэтому нормальная система - это просто XTXb=XTyX^\mathsf{T} X \, \mathbf{b} = X^\mathsf{T} y.

Для модели с kk факторами матрица AA разрастается до (k+1)×(k+1)(k+1)\times(k+1), но симметрия и та же структура сохраняются: по диагонали стоят суммы квадратов, вне диагонали - суммы попарных произведений.

Пример расчёта с двумя факторами

Возьмём учебный набор из 6 наблюдений, где X1X_1 - объём рекламы (у.е.), X2X_2 - цена (у.е.), YY - продажи (шт.):

iiX1X_1X2X_2YY
12812
24718
36624
43914
55522
64619

Считаем вспомогательные суммы: n=6n = 6, X1=24\sum X_1 = 24, X2=41\sum X_2 = 41, Y=109\sum Y = 109, X12=106\sum X_1^2 = 106, X22=291\sum X_2^2 = 291, X1X2=159\sum X_1 X_2 = 159, X1Y=461\sum X_1 Y = 461, X2Y=729\sum X_2 Y = 729.

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

6b0+24b1+41b2=109,24b0+106b1+159b2=461,41b0+159b1+291b2=729.\begin{aligned} 6 b_0 + 24 b_1 + 41 b_2 &= 109, \\ 24 b_0 + 106 b_1 + 159 b_2 &= 461, \\ 41 b_0 + 159 b_1 + 291 b_2 &= 729. \end{aligned}

Решив методом Гаусса или Крамера (или через матрицу), получаем приближённые значения: b03,2b_0 \approx 3{,}2, b12,8b_1 \approx 2{,}8, b20,9b_2 \approx -0{,}9. Уравнение регрессии: Y^=3,2+2,8X10,9X2\hat Y = 3{,}2 + 2{,}8 X_1 - 0{,}9 X_2. Знаки совпадают с интуицией: реклама повышает продажи, цена их снижает.

Пример нормальной системы МНК для двух факторов: матрица сумм, вектор правой части и решение b0, b1, b2
Пример нормальной системы МНК для двух факторов: матрица сумм, вектор правой части и решение b0, b1, b2

Матричная форма: связь с нормальной системой

Если обозначить дизайн-матрицу XX (первый столбец - единицы, далее значения факторов) и вектор откликов yy, то нормальная система записывается компактно:

XTXb=XTy.X^\mathsf{T} X \, \mathbf{b} = X^\mathsf{T} y.

Когда матрица XTXX^\mathsf{T} X невырождена (факторы линейно независимы), решение единственно:

b=(XTX)1XTy.\mathbf{b} = (X^\mathsf{T} X)^{-1} X^\mathsf{T} y.

Это та же нормальная система, записанная через обратную матрицу. Все статистические пакеты (Python, R, Excel ЛИНЕЙН) вычисляют именно это выражение, только численно устойчивее - через QR- или SVD-разложение вместо явного обращения, что важно при плохой обусловленности. Подробнее о матричной технике - в разделе множественная регрессия: расчёт коэффициентов.

Число уравнений при kk факторах

Общее правило: модель с kk объясняющими переменными даёт нормальную систему из k+1k+1 уравнений с k+1k+1 неизвестными (b0,b1,,bkb_0, b_1, \dots, b_k). Структура остаётся той же: в jj-м уравнении роль «правого множителя» играет XjX_j (или единица для уравнения по b0b_0), а в левой части стоят суммы всех попарных произведений факторов.

При k=1k=1 система сворачивается в привычные два нормальных уравнения парного МНК. При k=3k=3 добавляется четвёртое уравнение с суммами X3\sum X_3, X1X3\sum X_1 X_3, X2X3\sum X_2 X_3, X32\sum X_3^2, X3Y\sum X_3 Y.

Если два фактора линейно зависимы (например, один - линейная комбинация другого), матрица A вырождена и система не имеет единственного решения. Это мультиколлинеарность: нужно убрать один из факторов или применить гребневую регрессию.

Связь нормальных уравнений с остатками

Нормальные уравнения имеют удобную геометрическую интерпретацию: каждое из них выражает, что вектор остатков e=yXb\mathbf{e} = y - X\mathbf{b} ортогонален соответствующему столбцу матрицы XX:

XT(yXb)=0.X^\mathsf{T}(y - X\mathbf{b}) = \mathbf{0}.

Первое уравнение (j=0j=0, столбец единиц) означает ei=0\sum e_i = 0 - при наличии свободного члена остатки в среднем равны нулю. Второе и третье - Xi1ei=0\sum X_{i1} e_i = 0 и Xi2ei=0\sum X_{i2} e_i = 0 - факторы некоррелированы с остатками. Эти три свойства одновременно выполняются только в МНК-решении.

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

  • Не включают столбец единиц при матричном расчёте: тогда первое нормальное уравнение пропадает, и свободный член b0b_0 не определяется корректно.
  • Путают правую часть системы: в jj-м уравнении справа стоит XjY\sum X_j Y, а не Xj2\sum X_j^2 - типичная механическая ошибка при переписывании.
  • Ошибаются в знаке при вычислении сумм: если X2X_2 - убывающий ряд, X2Y\sum X_2 Y будет меньше, чем ожидается интуитивно, и коэффициент получится не того знака.
  • Не проверяют невырожденность матрицы AA: если определитель близок к нулю, система практически несовместна и коэффициенты будут огромными с нулевой интерпретационной ценностью.
  • Решают систему «на одно уравнение»: из первого нормального уравнения выражают b0b_0 через b1b_1 и b2b_2, подставляют, но забывают подставить в третье уравнение и решают только двухуравневую подсистему - пропускается одно ограничение.

FAQ

Почему система называется «нормальной»? Термин восходит к латинскому «norma» (правило, перпендикуляр): каждое уравнение системы фиксирует ортогональность (нормальность) вектора остатков к одному из векторов-факторов. Гаусс вывел систему именно в таком геометрическом контексте в начале XIX века.

Можно ли обойтись без нормальных уравнений и сразу применить матричную формулу? Да, результат тот же: матричная формула b=(XTX)1XTy\mathbf{b} = (X^\mathsf{T} X)^{-1} X^\mathsf{T} y - это компактная запись решения нормальной системы. При ручном счёте для двух факторов проще выписать три уравнения и решить их методом Гаусса, чем вычислять обратную матрицу 3×33\times3 вручную.

Как изменится система, если добавить третий фактор X3X_3? Добавится четвёртое уравнение, а в каждом из трёх существующих появится слагаемое b3XjX3b_3 \sum X_j X_3. Матрица AA расширяется с 3×33\times3 до 4×44\times4. Структура та же, объём вычислений растёт в кубе от числа факторов - именно поэтому для больших kk переходят к матричным алгоритмам, а не решают систему «в лоб».

Коротко

Нормальные уравнения МНК для множественной регрессии с kk факторами - это система из k+1k+1 линейных уравнений, полученная приравниванием нулю частных производных суммы квадратов остатков. Коэффициенты системы - суммы квадратов и попарных произведений факторов, правая часть - суммы произведений факторов на отклик. В матричной форме система записывается как XTXb=XTyX^\mathsf{T} X\,\mathbf{b} = X^\mathsf{T} y, а её решение b=(XTX)1XTy\mathbf{b} = (X^\mathsf{T} X)^{-1} X^\mathsf{T} y - это вектор МНК-оценок. При наличии свободного члена остатки в МНК-решении всегда суммируются в нуль, а каждый фактор ортогонален вектору остатков.

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

Открыть EssayAI

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

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