Анализ данных • 08 ноября 2024 • 5 мин чтения

Что такое регрессионный анализ

Регрессионный анализ — инструмент математической статистики для тех, кто хочет понимать, как одни факторы зависят от других. Расскажем, как им пользоваться и где он применяется.

Регрессионный анализ — определение

Регрессионный анализ — это статистический метод, позволяющий исследовать связь переменных. Основная цель регрессионного анализа — предсказать значение одной переменной (зависимой переменной, или отклика) на основе одной или нескольких других переменных (независимых переменных, или предикторов). При этом регрессионный анализ помогает выявить, насколько тесно эти переменные связаны и как одна из них влияет на другую.

В основе регрессионного анализа лежит построение математической модели, которая описывает, как изменения независимых переменных приводят к изменениям зависимой переменной. Наиболее известной формой регрессии является линейная регрессия, которая предполагает, что зависимость между переменными можно описать линейной функцией. Однако регрессионный анализ включает множество других методов, подходящих для более сложных взаимосвязей, таких как логистическая регрессия и полиномиальная регрессия.

На курсе «Специалист по Data Science» студенты учатся языку Python, изучают библиотеки и, в том числе, регрессионный анализ.

Методы регрессионного анализа

Линейная регрессия. Основной метод, предполагающий линейную зависимость между зависимой и независимой переменными. Цель линейной регрессии — найти такую прямую линию, которая наилучшим образом описывает данные. Этот метод широко применяется благодаря простоте и наглядности.

Линейная регрессия

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

Логистическая регрессия

Применение регрессионного анализа

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

Этапы проведения регрессионного анализа

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

2. Сбор и подготовка данных. Данные для анализа могут поступать из различных источников: опросов, измерений, баз данных. Важным этапом является подготовка данных, которая включает:

● обработку пропущенных значений;
● удаление выбросов (значений, слишком сильно отклоняющихся от остальных);
● масштабирование данных, чтобы все переменные были в сопоставимых единицах;
● преобразование категориальных переменных (например, пол, город) в числовой вид.

3. Выбор метода регрессии. В зависимости от задачи и типа данных выбирается соответствующий метод регрессии (линейная, логистическая, полиномиальная и т. д.).

4. Построение и обучение модели. Модель «учится» на данных, то есть подбирает коэффициенты, которые наилучшим образом описывают зависимость между переменными. Важно контролировать процесс, чтобы избежать переобучения, когда модель слишком хорошо описывает обучающие данные, но плохо работает на новых.

5. Оценка качества модели. Для проверки точности модели используют метрики оценки, такие как среднеквадратичная ошибка (MSE), средняя абсолютная ошибка (MAE), коэффициент детерминации (R²).

6. Интерпретация результатов. На этом этапе анализируются коэффициенты модели и делаются выводы о влиянии отдельных переменных. Например, если коэффициент у определённой переменной высок, это означает, что она сильно влияет на целевой показатель.

7. Прогнозирование и использование модели. После того как модель проверена, её можно использовать для прогнозирования или принятия решений.

8. Проверка и актуализация модели. Со временем изменения в данных или во внешних факторах могут потребовать актуализации модели. Этот процесс подразумевает, что модель должна периодически перепроверяться на новых данных для обеспечения точности прогнозов.

Преимущества и недостатки регрессионного анализа

Преимущества

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

Недостатки

  • Чувствительность к выбросам и аномалиям. Выбросы и экстремальные значения могут значительно искажать результаты регрессии, особенно линейной регрессии. Это требует дополнительных этапов очистки и подготовки данных.
  • Линейность зависимостей. Линейная регрессия предполагает, что зависимость между переменными линейная. В реальных данных такие зависимости встречаются нечасто, и использование линейной регрессии может привести к ошибкам, если зависимость сложнее.
  • Проблемы мультиколлинеарности. Когда независимые переменные сильно коррелируют друг с другом, регрессионная модель становится нестабильной. Мультиколлинеарность затрудняет интерпретацию влияния отдельных переменных, и это требует специальных методов для её устранения (например, ридж-регрессия).
  • Переобучение. При использовании слишком сложных моделей (например, полиномиальной регрессии высокой степени) возникает риск переобучения, когда модель слишком точно описывает обучающие данные, но плохо предсказывает на новых.
  • Зависимость от объёма и качества данных. Регрессионный анализ требует достаточно большого и качественного объёма данных. Использование небольших или нерепрезентативных выборок приводит к неточным моделям и ошибочным выводам.

Пример регрессионного анализа

Предположим, у нас есть данные о ценах на жилье y, а также данные о двух характеристиках домов:
x1 — площадь в квадратных метрах;
x2 — количество комнат.

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

y = b0 + b1x1 + b2x2 + ε

где:
y — зависимая переменная (цена дома);
x1 и x2 — независимые переменные (площадь и количество комнат);
b0 — свободный член (цена при x1 = x2 = 0);
b1 и b2 — коэффициенты, показывающие влияние каждой независимой переменной на 𝑦;
ε — случайная ошибка, представляющая отклонения от модели.

Для оценки коэффициентов b0, b1 и b2 используется метод наименьших квадратов. Задача метода состоит в минимизации суммы квадратов отклонений предсказанных значений ŷ от истинных y:

Минимизация этой функции приводит к системе нормальных уравнений, которую можно решить для нахождения b0, b1 и b2.

Предположим, у нас есть следующий набор данных:

Для этих данных мы можем использовать статистический пакет (например, Python) для расчёта коэффициентов. Пусть полученные коэффициенты следующие:

● b0 = -3,33;
● b1 = 5,33 (т. е. за каждый дополнительный квадратный метр цена увеличивается на 5,33 у. е.);
● b2 = 13,33 (т. е. каждая дополнительная комната добавляет 13,33 у. е. к цене).

Код для Python:

import numpy as np
from sklearn.linear_model import LinearRegression

x1 = np.array([50, 70, 80, 100, 120])
x2 = np.array([2, 3, 3, 4, 5])
y = np.array([300, 400, 450, 600, 700])

X = np.column_stack((x1, x2))

model = LinearRegression()
model.fit(X, y)

intercept = model.intercept_ # свободный член
coefficients = model.coef_ # коэффициенты при x1 и x2

Полученное уравнение регрессии: ŷ ̂= -3,33 + 5,33 ⋅ x1 + 13,33 ⋅ x2.

Теперь предположим, что мы хотим спрогнозировать цену дома площадью 90 м² и с четырьмя комнатами. Подставим эти значения в уравнение:

ŷ ̂= -3,33 + 5,33 ⋅ 90 + 13,33 ⋅ 4 = 529,69 у. е.

Таким образом, прогнозируемая цена дома площадью 90 м² и с четырьмя комнатами составляет 529,69 у. е.

Статью подготовили:
Богдан Сиротич
Яндекс Практикум
Редактор
Анастасия Павлова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Fri Nov 15 2024 13:44:53 GMT+0300 (Moscow Standard Time)