Регрессионный анализ
Что такое регрессионный анализ
Регрессионный анализ — это способ установить зависимость между одной переменной (обычно её называют зависимой или откликом, обозначается \(y\)) и одной или несколькими другими (их называют независимыми или факторами, обозначаются \(x_1, x_2, \dots, x_n\)).
Мы ищем модель — формулу, которая приближённо описывает, как \(y\) зависит от \(x\):
Где:
- \(f(x_i)\) — это регрессионная функция (наша модель зависимости),
- \(\varepsilon_i\) — случайная ошибка (остаток), то есть насколько наблюдаемое значение \(y_i\) отличается от предсказанного моделью.
Что такое ε (эпсилон)
\(\varepsilon_i\) — это всё, что модель не смогла учесть.
Это случайные колебания, шум, измерительная погрешность, индивидуальные особенности наблюдений и т.д.
Если упростить:
\(\varepsilon_i\) показывает, насколько реальность отклонилась от нашей формулы.
При хорошем подборе модели ошибки \(\varepsilon_i\):
- распределены случайно (без закономерностей),
- имеют среднее значение около нуля,
- не растут с увеличением \(x\).
Что такое регрессионная модель
Регрессионная модель — это уравнение, связывающее \(y\) и \(x\).
Например:
- Линейная: \(y = a + bx\)
- Квадратичная: \(y = a + bx + cx^2\)
- Показательная: \(y = ae^{bx}\)
- Логарифмическая: \(y = a + b\ln x\)
- Степенная: \(y = ax^b\)
Главная цель — подобрать такие коэффициенты (\(a\), \(b\), \(c\), …), чтобы модель наилучшим образом описывала данные.
Линейность по параметрам
Модель линейна по параметрам, если её можно записать так:
где \(a_1, a_2, \dots, a_k\) — коэффициенты, которые мы ищем,
а \(z_1, z_2, \dots, z_k\) — функции от исходных переменных.
Говорят, что функция линейна по параметрам, если она является линейной комбинацией этих параметров, то есть в каждом параметре стоит только первая степень, и они не перемножаются между собой и не входят под нелинейные операции (корень, экспонента, синус и т.п.).
Важно:
- Линейность — по параметрам, а не по \(x\).
- То есть выражение может быть нелинейным по \(x\), но линейным по коэффициентам.
Примеры:
- Линейна по параметрам: \(y = a + bx + cx^2\)
(коэффициенты \(a\), \(b\), \(c\) входят линейно) - Нелинейна по параметрам: \(y = a e^{bx}\)
(параметр \(b\) в показателе экспоненты, то есть нелинейно)
| Пример функции | Линейна по параметрам? | Причина |
|---|---|---|
| \(y = a x + b\) | Да | Параметры в первой степени |
| \(y = a x^2 + b x + c\) | Да | Всё линейно по \(a,b,c\) |
| \(y = a e^{b x}\) | Нет | \(b\) в экспоненте |
| \(y = a + b/x\) | Нет | \(b\) в знаменателе |
| \(y = a \sin x + b \cos x\) | Да | \(a,b\) в первой степени |
| \(y = a^2 x\) | Нет | \(a\) во второй степени |
| \(y = a_1 a_2 x\) | Нет | параметры перемножаются |
Как подбирают модель
- Смотрят на график данных.
Если точки расположены примерно вдоль прямой — пробуем линейную модель.
Если кривая — берём квадратичную, степенную, показательную и т.д. - Проверяют линейность по параметрам.
Если можно привести к виду \(y = a_1 z_1 + a_2 z_2 + \dots\) — значит, можно применять метод наименьших квадратов (МНК). - Оценивают качество модели через коэффициент детерминации \(R^2\) (см. ниже).
Метод наименьших квадратов (МНК)
Чтобы оценить параметры \(a, b, c, \dots\), применяют метод наименьших квадратов (МНК).
Он ищет такие коэффициенты, при которых сумма квадратов ошибок минимальна:
Где \(\hat{y}_i = f(x_i)\) — предсказанное моделью значение.
Для линейных по параметрам моделей это сводится к решению системы нормальных уравнений (СНУ).
Подробности их решения здесь не разбираем, но именно этот инструмент используется для нахождения коэффициентов.
Пример 1. Линейная регрессия
Дано:
| x | y |
|---|---|
| 1 | 2 |
| 2 | 3 |
| 3 | 5 |
| 4 | 4 |
| 5 | 6 |
Хотим найти модель \(y = a + bx\).
Применим МНК, решим систему нормальных уравнений и найдём:
Итоговая модель:
Проверка:
Если \(x = 4\), то \(\hat{y} = 1.4 + 0.9 \cdot 4 = 5.0\) — неплохое приближение к реальному \(y = 4\).
Пример 2. Квадратичная регрессия
Дано:
| x | y |
|---|---|
| 1 | 1 |
| 2 | 3 |
| 3 | 4 |
| 4 | 4 |
| 5 | 5 |
Модель: \(y = a + bx + cx^2\).
Применим МНК, решим СНУ и найдём:
Модель:
Пример 3. Показательная регрессия
Дано:
| x | y |
|---|---|
| 1 | 2.7 |
| 2 | 7.4 |
| 3 | 20.1 |
| 4 | 54.6 |
Модель: \(y = a e^{bx}\).
Чтобы применить МНК, прологарифмируем обе части:
Обозначим \(Y = \ln y\), \(A = \ln a\).
Тогда модель становится линейной по параметрам:
Применяем МНК, решаем систему, находим:
Тогда \(a = e^{A} = e^{1.0} \approx 2.72\).
Итоговая модель:
Коэффициент детерминации (\(R^2\))
Коэффициент детерминации показывает, насколько хорошо модель объясняет данные.
Формула:
Где:
- \(\sum (y_i - \hat{y}_i)^2\) — сумма квадратов остатков (ошибок модели);
- \(\sum (y_i - \bar{y})^2\) — общая дисперсия данных относительно среднего \(\bar{y}\).
Смысл:
- \(R^2\) показывает, какую долю изменчивости \(y\) объясняет модель.
- Чем ближе \(R^2\) к 1, тем лучше модель описывает данные.
- Если \(R^2 = 0.9\), значит, модель объясняет 90% вариации данных, а 10% остаются “шумом”.
Интерпретация:
- \(R^2 \approx 1\) — модель почти идеально описывает данные.
- \(R^2 \approx 0\) — модель бесполезна, не объясняет зависимость.
- \(R^2\) может даже быть отрицательным (если модель хуже, чем просто среднее \(\bar{y}\)).
Сводная таблица типов регрессий
| Тип модели | Уравнение | Как линеаризуется | Замечания |
|---|---|---|---|
| Линейная | \(y = a + bx\) | — | Простая форма |
| Квадратичная | \(y = a + bx + cx^2\) | — | Позволяет описывать кривизну |
| Кубическая | \(y = a + bx + cx^2 + dx^3\) | — | Ещё гибче |
| Показательная | \(y = a e^{bx}\) | \(\ln y = \ln a + bx\) | Линеаризуется логарифмом |
| Степенная | \(y = a x^b\) | \(\ln y = \ln a + b\ln x\) | Подходит для степенных зависимостей |
| Логарифмическая | \(y = a + b\ln x\) | — | Хороша при замедляющемся росте |
Итог
- Регрессионный анализ ищет формулу зависимости \(y\) от \(x\).
- Линейность по параметрам — ключевое свойство, которое позволяет применять МНК.
- МНК минимизирует сумму квадратов ошибок.
- Коэффициент детерминации \(R^2\) показывает, насколько хорошо модель объясняет данные.
- Всегда важно анализировать остатки и подбирать форму модели осознанно, а не “на глаз”.