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

Нелинейная регрессия: линеаризация и МНК

11 июня 2026Время чтения: 10 минут
#нелинейная регрессия#линеаризация#МНК#эконометрика#степенная функция

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

Что такое линеаризация и зачем она нужна

Линеаризация - это замена переменных, которая превращает нелинейное уравнение в линейное. Применив такую замену, к данным можно приложить обычный МНК, получить коэффициенты прямой в новых координатах, а потом пересчитать их обратно в параметры исходной кривой.

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

Как степенная кривая y = a·x^b (левая панель) после логарифмирования обеих осей становится прямой ln y = ln a + b·ln x (правая панель). Параметр b отвечает за наклон, а точки данных выстраиваются вдоль прямой

Формально: если у нас есть нелинейная модель y=f(x;a,b)y = f(x; a, b), и существует замена Y=g(y)Y = g(y), X=h(x)X = h(x) такая, что уравнение принимает вид Y=A+bXY = A + b \cdot X, - это и есть линеаризация. При этом AA и bb находятся как коэффициенты обычной парной регрессии, а параметры исходной модели aa и bb восстанавливаются обратным преобразованием.

Степенная модель: замена ln y и ln x

Самая распространённая нелинейная модель в эконометрике - степенная (или степенно-функциональная):

y=axby = a \cdot x^b

Прологарифмируем обе части:

lny=lna+blnx\ln y = \ln a + b \cdot \ln x

Обозначим Y=lnyY = \ln y, X=lnxX = \ln x, A=lnaA = \ln a. Получаем обычную линейную модель:

Y=A+bXY = A + b \cdot X

По МНК находим наклон bb и свободный член AA, после чего параметр масштаба a=eAa = e^A. Важно: в степенной модели показатель bb напрямую интерпретируется как коэффициент эластичности - насколько процентов меняется yy при изменении xx на 1 %. Если b<1b < 1, зависимость «тупеющая» (убывающая отдача), если b>1b > 1 - «разгоняющаяся» (возрастающая отдача).

Пример: если по данным о производстве и затратах получили A=1,2A = 1{,}2 и b=0,6b = 0{,}6, то исходная модель имеет вид y=e1,2x0,63,32x0,6y = e^{1{,}2} \cdot x^{0{,}6} \approx 3{,}32 \cdot x^{0{,}6}. При увеличении xx в два раза затраты возрастают лишь в 20,61,522^{0{,}6} \approx 1{,}52 раза - эффект масштаба налицо.

Показательная модель: замена ln y

Показательная (экспоненциальная) модель:

y=aebxy = a \cdot e^{b x}

Логарифмируем только yy:

lny=lna+bx\ln y = \ln a + b \cdot x

Здесь Y=lnyY = \ln y, X=xX = x (без преобразования), A=lnaA = \ln a. Линейная зависимость Y=A+bXY = A + b \cdot X снова подчиняется МНК. Эта модель используется везде, где переменная растёт или убывает с постоянным относительным темпом: демографические данные, банковские вклады, ВВП при постоянном темпе роста, радиоактивный распад.

Коэффициент bb здесь интерпретируется по-другому: при b=0,05b = 0{,}05 это означает, что при увеличении xx на 1 единицу yy растёт примерно на 5 % (при малых bb величина eb1be^b - 1 \approx b). При b<0b < 0 кривая убывает, при b>0b > 0 - возрастает.

Гиперболическая модель: замена 1/x

Гиперболическая модель насыщения:

y=a+bxy = a + \frac{b}{x}

Здесь достаточно ввести X=1/xX = 1/x - и уравнение немедленно становится линейным:

y=a+bXy = a + b \cdot X

Область применения - зависимости, стремящиеся к конечному пределу при росте xx: средние издержки на единицу продукции при большом объёме выпуска, предельная производительность труда, насыщение рынка. При больших xx величина 1/x01/x \to 0, и yay \to a: именно aa задаёт уровень насыщения. Если b>0b > 0, кривая убывает к aa сверху (например, средние постоянные издержки); если b<0b < 0 - возрастает снизу.

Три нелинейные кривые и их линеаризованный вид: степенная (двойной логарифм), показательная (полулогарифм), гиперболическая (1/x). Каждый раз нелинейное облако данных становится прямой полосой
Три нелинейные кривые и их линеаризованный вид: степенная (двойной логарифм), показательная (полулогарифм), гиперболическая (1/x). Каждый раз нелинейное облако данных становится прямой полосой

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

Формулы МНК после линеаризации

После замены переменных вычисляем параметры линейной модели Y=A+bXY = A + b \cdot X стандартными формулами. Пусть есть nn наблюдений (Xi,Yi)(X_i, Y_i):

b=nXiYiXiYinXi2(Xi)2b = \frac{n \sum X_i Y_i - \sum X_i \sum Y_i}{n \sum X_i^2 - \left(\sum X_i\right)^2} A=YˉbXˉA = \bar{Y} - b \cdot \bar{X}

где Xˉ\bar{X} и Yˉ\bar{Y} - средние значения. Затем выполняется обратное преобразование к параметрам исходной модели. Для степенной и показательной a=eAa = e^A, для гиперболической aa и bb берутся напрямую.

Альтернативная запись формулы наклона через дисперсию и ковариацию:

b=Cov(X,Y)Var(X)=(XiXˉ)(YiYˉ)(XiXˉ)2b = \frac{\operatorname{Cov}(X, Y)}{\operatorname{Var}(X)} = \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})}{\sum (X_i - \bar{X})^2}

Эта форма удобна для проверки знака bb без полного расчёта: если в линеаризованных координатах данные явно возрастают - наклон положителен, убывают - отрицателен.

Коэффициент детерминации после линеаризации

Чтобы оценить качество подгонки, вычисляют R2R^2 - но уже в линеаризованных координатах:

R2=1(YiY^i)2(YiYˉ)2R^2 = 1 - \frac{\sum (Y_i - \hat{Y}_i)^2}{\sum (Y_i - \bar{Y})^2}

где Y^i=A+bXi\hat{Y}_i = A + b X_i - значения, предсказанные линейной моделью. Значение R21R^2 \approx 1 говорит о хорошем соответствии. Важно понимать: R2R^2 в преобразованных координатах не совпадает с R2R^2, посчитанным по исходным yiy_i и y^i\hat{y}_i, - это разные величины. Обычно сообщают именно первую, поскольку МНК оптимален именно в линейном пространстве.

Пример: при степенной модели с a=2a = 2, b=0,6b = 0{,}6 и n=10n = 10 синтетическими точками с 12 % шумом R2R^2 в лог-лог координатах обычно составляет 0{,}97–0{,}99 - шум малый, и линеаризованная прямая хорошо описывает данные. Это можно проверить прямо в калькуляторе выше.

Какую модель выбрать

Выбор модели опирается на содержательные соображения и визуальный анализ:

  • График yy от xx имеет выраженный параболический или степенной характер, и данные строго положительны - вероятно, степенная модель.
  • Кривая монотонно убывает к нулю при росте xx, или наоборот, взрывной рост с постоянным относительным приростом - показательная модель.
  • Данные убывают «по закону 1/x» и явно стремятся к горизонтальной асимптоте - гиперболическая.

Практический приём - построить точечные диаграммы в разных системах координат (лог-лог, полулог, 1/x1/x против yy) и посмотреть, в какой из них данные лежат «прямее» всего. Там же сравнивают R2R^2: у какой системы он выше - та модель лучше соответствует данным. Впрочем, это лишь описательный критерий; формальная проверка требует анализа остатков.

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

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

Рассмотрим набор из пяти наблюдений: x=[1,2,3,4,5]x = [1, 2, 3, 4, 5], y=[1,8;2,9;3,7;4,3;4,9]y = [1{,}8; 2{,}9; 3{,}7; 4{,}3; 4{,}9]. Предположим степенную форму y=axby = a \cdot x^b.

Шаг 1. Логарифмируем: Xi=lnxiX_i = \ln x_i, Yi=lnyiY_i = \ln y_i.

xix_iyiy_iXi=lnxiX_i = \ln x_iYi=lnyiY_i = \ln y_i
11,800,0000,588
22,900,6931,065
33,701,0991,308
44,301,3861,459
54,901,6091,589

Шаг 2. Считаем суммы: Xi4,787\sum X_i \approx 4{,}787, Yi6,009\sum Y_i \approx 6{,}009, Xi26,461\sum X_i^2 \approx 6{,}461, XiYi6,547\sum X_i Y_i \approx 6{,}547.

Шаг 3. МНК-оценки:

b=56,5474,7876,00956,4614,787232,73528,76532,30522,9163,9709,3890,423b = \frac{5 \cdot 6{,}547 - 4{,}787 \cdot 6{,}009}{5 \cdot 6{,}461 - 4{,}787^2} \approx \frac{32{,}735 - 28{,}765}{32{,}305 - 22{,}916} \approx \frac{3{,}970}{9{,}389} \approx 0{,}423 A=6,00950,4234,78751,2020,405=0,797A = \frac{6{,}009}{5} - 0{,}423 \cdot \frac{4{,}787}{5} \approx 1{,}202 - 0{,}405 = 0{,}797

Шаг 4. Обратное преобразование: a=e0,7972,219a = e^{0{,}797} \approx 2{,}219.

Итог: y2,22x0,42y \approx 2{,}22 \cdot x^{0{,}42} - степенная кривая с показателем меньше 1 (убывающая отдача).

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

  • Не проверить знак исходных данных. Логарифм не определён при y0y \le 0 или x0x \le 0 - если данные включают нули или отрицательные значения, степенная и показательная линеаризации неприменимы напрямую.
  • Перепутать обратное преобразование aa. После МНК находят A=lnaA = \ln a; параметр исходной модели a=eAa = e^A, а не AA. Ошибка приводит к тому, что в ответе фигурирует коэффициент прямой, а не кривой.
  • Интерпретировать R2R^2 в линеаризованных координатах как R2R^2 по исходным данным. Это разные числа; сравнивать их некорректно и нельзя делать вывод о качестве подгонки к исходным yy.
  • Использовать линеаризацию, когда зависимость не принадлежит выбранному классу. Хорошее R2R^2 в лог-лог координатах не доказывает степенную природу - нужна содержательная обоснованность.
  • Не обсуждать корректность линеаризации при нарушении предпосылок. Преобразование меняет структуру ошибок, и обычные формулы стандартных ошибок коэффициентов строго применимы лишь при гомоскедастичности в новых координатах.

FAQ

Чем отличается линеаризация от нелинейной регрессии методом МНК? Линеаризация - это предварительная замена переменных, после которой задача сводится к стандартному линейному МНК. Нелинейный МНК напрямую минимизирует сумму квадратов остатков в исходных координатах, обычно итеративно (алгоритм Гаусса-Ньютона, Левенберга-Марквардта). Нелинейный МНК точнее с точки зрения статистических свойств, но требует начального приближения и сложнее; линеаризация быстрее и прозрачнее, поэтому её используют в учебных задачах и как первое приближение.

Можно ли линеаризовать полиномиальную регрессию? Полином y=b0+b1x+b2x2+y = b_0 + b_1 x + b_2 x^2 + \dots - это уже линейная модель по параметрам bib_i, просто с нелинейными предикторами xkx^k. Замена переменных Xk=xkX_k = x^k переводит её в стандартную множественную линейную регрессию - без логарифмов. Это случай, когда «нелинейность по аргументу» не означает «нелинейность по параметрам».

Как проверить, подходит ли выбранная нелинейная форма? Постройте график остатков линеаризованной модели против XX: если остатки случайны и не имеют систематического паттерна - форма выбрана верно. Если остатки образуют дугу или «S» - нужна другая функциональная форма. Дополнительно можно использовать тест Рамсея (RESET) или сравнить информационные критерии AIC/BIC для нескольких конкурирующих форм.

Коротко

Линеаризация нелинейной регрессии - замена переменных (логарифмирование, обращение), после которой нелинейная модель принимает вид прямой. МНК применяется к данным в новых координатах, а коэффициенты исходной модели восстанавливаются обратным преобразованием. Наиболее часто линеаризуют степенную (lny\ln y и lnx\ln x, коэффициент bb - эластичность), показательную (lny\ln y при xx, коэффициент bb - темп роста) и гиперболическую (yy при 1/x1/x, параметр aa - асимптота) модели. Качество оценивается по R2R^2 в линеаризованных координатах, а выбор типа кривой - по визуальному анализу и содержательным соображениям.

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

Открыть EssayAI

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

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