В мире машинного обучения есть много всего интересного, но тем, кто только начинает свой путь в этой области часто бывает многое непонятно. В этой статье мы попробуем разобраться с линейной регрессией.

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

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

Линейная регрессия является основополагающей в науке о данных и машинном обучении по нескольким причинам:

Простота и интерпретируемость: Линейная модель проста, что позволяет легко интерпретировать ее и объяснять другим, особенно заинтересованным лицам, которые могут не иметь технического образования.

Основа для более сложных моделей: Понимание линейной регрессии помогает понять более сложные модели и алгоритмы. Она является основой для таких продвинутых методов, как логистическая регрессия, полиномиальная регрессия и даже нейронные сети.

Применение в реальном мире

Линейная регрессия широко используется в различных отраслях — от прогнозирования продаж и цен на акции до оценки рисков и распределения ресурсов. Это не просто теоретическая концепция; она имеет множество практических применений, с которыми вы можете столкнуться в реальных условиях. Вот несколько примеров:

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

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

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

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

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

Допущения линейной регрессии

Прежде чем приступить к использованию линейной регрессии, необходимо понять ее основные допущения. Эти допущения гарантируют, что модель обеспечивает надежные и точные прогнозы. Если эти предположения нарушаются, результаты могут быть ошибочными и в таком случае линейную регрессию лучше не использовать. Давайте разберем эти ключевые допущения и поймем их лучше.

Линейность

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

Допустим, вы пытаетесь предсказать зарплату сотрудников на основе их стажа работы. Если вы отложите годы опыта на оси x, а зарплату — на оси y, вы должны увидеть линейную тенденцию, при которой зарплата увеличивается по мере роста лет опыта. Если связь не линейная (например, темпы роста зарплаты ускоряются или замедляются), то линейная регрессия может не подойти, и вам, возможно, придется рассмотреть другие модели или преобразовать переменные.

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

Независимость

Наблюдения должны быть независимыми друг от друга. Независимость означает, что значение одного наблюдения не влияет на значение другого. Это особенно важно для данных временных рядов, где наблюдения могут коррелировать во времени.

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

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

Постоянная дисперсия ошибок.

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

Чтобы проверить наличие дисперсии, можно построить график остатков (ошибок) и поискать закономерности. В идеале остатки должны быть беспорядочно разбросаны вокруг нуля, не образуя никакой заметной закономерности.

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

Нормальность ошибок

Ошибки должны быть нормально распределены. Остатки (ошибки) модели должны иметь нормальное распределение, особенно когда делаются выводы о коэффициентах. Это предположение очень важно для проверки гипотез и построения доверительных интервалов. Вы можете проверить это, построив гистограмму или Q‑Q график остатков.

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

Почему эти допущения важны

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

Пример: Если вы используете линейную регрессию для прогнозирования цен на акции и игнорируете эти предположения, ваши прогнозы могут оказаться ошибочными, что приведет к принятию неверных инвестиционных решений. Убедитесь, что ваша модель соответствует этим предположениям, и это поможет сохранить целостность ваших прогнозов и анализов.

Как устранить нарушения

Мы можем устранить нарушения линейности используя полиномиальные или другие нелинейные преобразования, если зависимость не является линейной.

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

Дисперсию можно устранить с помощью преобразования переменных или использования надежных стандартных ошибок.

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

Как работает линейная регрессия

Понимание того, как работает линейная регрессия, даст вам основу для применения этой мощной техники к вашим данным. Давайте шаг за шагом рассмотрим процесс подгонки и оценки модели линейной регрессии.

Использование метода наименьших квадратов

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

Функция стоимости, часто называемая функцией потерь в машинном обучении, определяет, насколько хорошо работает ваша модель. Для линейной регрессии наиболее распространенной функцией затрат является средняя квадратичная ошибка (MSE). Она рассчитывается как среднее значение квадратичной разницы между наблюдаемыми и предсказанными значениями:

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

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

Оценка модели

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

R‑squared измеряет долю дисперсии зависимой переменной, которая предсказуемо зависит от независимых переменных. Он варьируется от 0 до 1, где:

0 означает, что модель не объясняет ни одной дисперсии.

1 означает, что модель объясняет всю дисперсию.

Здесь y — среднее значение наблюдаемых величин.

Более высокое значение R‑квадрат указывает на лучшее соответствие, но будьте осторожны — очень высокое значение R‑квадрат может указывать на чрезмерную подгонку, особенно в случае сложных моделей или небольших наборов данных.

Пример: Предположим, вы оцениваете линейную регрессионную модель, предсказывающую цены на жилье на основе площади. Значение R‑квадрат 0,85 означает, что 85% изменчивости цен на жилье объясняется площадью жилья.

Скорректированный R‑квадрат

Скорректированный R‑квадрат корректирует значение R‑квадрата в зависимости от количества предикторов в модели. Это важно, поскольку добавление большего количества предикторов может искусственно увеличить значение R‑квадрат, даже если эти предикторы не улучшают модель значительно.

Здесь n — количество наблюдений, а p — количество предикторов.

Пример: Вы можете добавить в модель цены на жилье дополнительные переменные, такие как количество спален и местоположение. Скорректированный R‑квадрат покажет вам, действительно ли эти дополнительные переменные улучшают предсказательную силу вашей модели или просто увеличивают значение R‑квадрата.

Средняя квадратичная ошибка (MSE)

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

Корневая средняя квадратичная ошибка (RMSE)

RMSE — это квадратный корень из MSE. Он выражен в тех же единицах, что и зависимая переменная, что делает его более интерпретируемым.

Пример: Если вы прогнозируете ежемесячные продажи в долларах, RMSE, равный 500, означает, что в среднем ваши прогнозы ошибаются на 500 долларов. Более низкие значения RMSE указывают на более высокую эффективность модели.

Сведем все воедино

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

R‑квадрат: Показывает, насколько хорошо ваша модель объясняет изменчивость времени доставки.

Скорректированный R‑квадрат: Гарантирует, что любые дополнительные предикторы действительно улучшают модель.

MSE и RMSE: дают четкое представление об ошибках прогнозирования в минутах.

Пошаговое руководство по выполнению линейной регрессии

Первым шагом в любом проекте по анализу данных является сбор данных, с которыми вы будете работать. Они могут поступать из различных источников: внутренних баз данных, API, публичных наборов данных или опросов. Ваша цель — собрать полный набор данных, относящихся к проблеме, которую вы пытаетесь решить.

Пример: Представьте, что вы работаете над проектом по прогнозированию оттока клиентов для сервиса подписки. Вы можете собрать данные о взаимодействии с клиентами, сведения о подписке и журналы использования сервиса. Эти данные могут быть собраны из базы данных вашей компании или с помощью опросов клиентов.

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

Очистка данных: Удаление или исправление неточностей, дубликатов и нерелевантных данных. Например, если в вашем наборе данных об оттоке клиентов есть дубликаты записей или отклоняющиеся значения, их следует устранить.

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

Нормализация/стандартизация данных: Нормализуйте или стандартизируйте данные, если признаки различаются по масштабу. Это гарантирует, что ни один признак не будет доминировать из‑за своего масштаба. Например, если вы используете такие характеристики, как доход и возраст, доход может исчисляться тысячами, а возраст — годами. Стандартизация этих признаков к общей шкале (например, z‑коэффициентам) может улучшить производительность модели.

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

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

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

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

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

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

Чтобы построить надежную модель, необходимо разделить данные на обучающие и тестовые наборы. Это поможет оценить, насколько хорошо ваша модель работает на невидимых данных:

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

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

Пример: Для прогнозирования цен на недвижимость вы можете использовать 80% данных для обучения и 20% для тестирования. Оценив свою модель на тестовом наборе, вы сможете определить ее точность и внести необходимые коррективы перед развертыванием.

Заключение

Завершая наше путешествие по линейной регрессии, давайте подведем итоги и сделаем основные выводы. Линейная регрессия — это фундаментальный метод анализа данных и машинного обучения, предлагающий мощный способ моделирования и понимания взаимосвязей между переменными.

С помощью линейной регрессии мы можем прогнозировать различные события, но не стоит забывать, что данный вид алгоритмов не всегда применим и во многих случаях необходимо использовать другие методы машинного обучения.


Если вы только начинаете путь в анализ данных и хотите уверенно освоить базовые алгоритмы машинного обучения — присмотритесь к курсу «Machine Learning. Basic» от OTUS. Здесь вы научитесь не просто запускать линейную регрессию, а понимать, как и зачем это делать, чтобы решать реальные задачи.

А пока — рекомендуем два бесплатных открытых урока:

23 июня в 18:00 — «Технологии продвинутого Data Science: что под капотом?»
3 июля в 18:00 — «Как правильно готовить данные для ML‑моделей?»

Они помогут вам сделать уверенные первые шаги — без перегрузки теорией, с упором на практику и применение. Присоединяйтесь!

Комментарии (2)


  1. pavelsha
    19.06.2025 10:30

    Спасибо за выбор темы вне LLM- /AGI- хайпа. Держите Плюс.

    Вопрос может быть только один. Регрессии - это довольно старый (в смысле давно известный) аппарат. Разве не нашлось бы русскоязычного источника подобного толка? ИМХО, перевод мог быть лишним шагом.


  1. CrazyElf
    19.06.2025 10:30

    Нормальность ошибок устраняется с помощью преобразования ...

    Перевод кривоват. Нормальность ошибок - это то, к чему мы стремимся, а не то, что мы хотим исправить. %)