Регрессия — это мощный инструмент, который используется в самых разных реальных приложениях для прогнозирования, понимания взаимосвязей между переменными и выявления закономерностей в данных. Некоторые из наиболее распространенных применений регрессии включают:
- Экономика. Регрессия используется для моделирования экономических тенденций, прогнозирования будущих экономических условий и понимания взаимосвязи между различными экономическими переменными.
- Финансы. Регрессия используется для прогнозирования цен на акции, моделирования рисков портфеля и понимания взаимосвязи между процентными ставками и инфляцией.
- Медицина. Регрессия используется для моделирования связи между различными медицинскими параметрами, такими как кровяное давление и уровень холестерина, а также для прогнозирования риска заболевания.
- Маркетинг. Регрессия используется для прогнозирования поведения потребителей, понимания эффективности маркетинговых кампаний и моделирования взаимосвязи между различными маркетинговыми переменными.
- Проектирование. Регрессия используется для моделирования взаимосвязи между различными техническими переменными, такими как температура и нагрузка, а также для прогнозирования производительности инженерных систем.
- Спорт. Регрессия используется для прогнозирования результатов спортивных игр и моделирования взаимосвязи между различными переменными, такими как статистика команды и производительность игрока.
- Социальные науки. Регрессия используется для моделирования взаимосвязи между различными переменными, такими как доход и образование, а также для прогнозирования вероятности определенных результатов, таких как преступность или бедность.
- Прогнозирование. Регрессия используется для прогнозирования будущих тенденций и моделирования взаимосвязи между различными переменными, такими как погодные условия и экономические показатели.
Это всего лишь несколько примеров того, как регрессия используется в реальных приложениях. Гибкость и мощь регрессии делают ее ценным инструментом для понимания и прогнозирования сложных взаимосвязей в данных.
1. Что такое регрессия:
Регрессия — это статистический метод, используемый для моделирования связи между зависимой переменной (y) и одной или несколькими независимыми переменными (x). Цель регрессии — найти наиболее подходящую линию или модель, описывающую эту связь.
Существует два основных типа регрессии: линейная и нелинейная.
Линейная регрессия:
В линейной регрессии связь между независимыми и зависимыми переменными моделируется как прямая линия. Уравнение для простой модели линейной регрессии: y = mx + b, где m — наклон линии, а b — точка пересечения с осью y. В множественной линейной регрессии есть несколько независимых переменных.
Существует несколько типов линейной регрессии, в том числе:
- Простая линейная регрессия: этот тип линейной регрессии используется, когда имеется только одна независимая переменная. Цель состоит в том, чтобы найти наиболее подходящую линию, описывающую взаимосвязь между независимой переменной и зависимой переменной.
- Множественная линейная регрессия. Этот тип линейной регрессии используется при наличии нескольких независимых переменных. Цель состоит в том, чтобы найти наиболее подходящую линию, которая описывает взаимосвязь между независимыми переменными и зависимой переменной.
- Полиномиальная регрессия: этот тип линейной регрессии используется, когда связь между независимой переменной и зависимой переменной нелинейна. В этом случае наилучшей линией является полиномиальное уравнение.
- Логистическая регрессия: этот тип линейной регрессии используется, когда зависимая переменная является бинарной (например, 0 или 1) или категориальной (например, да или нет). Логистическая регрессия используется для моделирования вероятности возникновения определенного события.
- Регрессия гребня: этот тип линейной регрессии используется, когда данные содержат мультиколлинеарность (высокая корреляция между независимыми переменными). Гребневая регрессия помогает уменьшить стандартные ошибки коэффициентов и повысить устойчивость модели.
- Регрессия Лассо. Этот тип линейной регрессии используется, когда данные содержат много нерелевантных независимых переменных. Лассо-регрессия помогает уменьшить количество независимых переменных, уменьшая коэффициенты нерелевантных переменных до нуля.
- Эластичная сеть. Этот тип линейной регрессии представляет собой комбинацию регрессии гребня и регрессии Лассо. Метод эластичной сетки сочетает в себе штрафы L1 и L2 методов Лассо и Риджа.
Важно отметить, что эти типы линейной регрессии подходят для разных типов данных и задач. Выбор подходящего типа линейной регрессии зависит от характеристик данных и вопроса исследования.
Нелинейная регрессия:
В нелинейной регрессии связь между независимой переменной (переменными) и зависимой переменной моделируется с использованием функции, которая не является прямой линией.
Нелинейная регрессия требует более сложных моделей и методов, чем линейная регрессия. Некоторые распространенные типы нелинейной регрессии включают:
- Полиномиальная регрессия: этот тип нелинейной регрессии используется, когда отношение между независимой переменной и зависимой переменной представляет собой полиномиальное уравнение.
- Экспоненциальная регрессия: этот тип нелинейной регрессии используется, когда связь между независимой переменной и зависимой переменной представляет собой показательное уравнение.
- Логарифмическая регрессия. Этот тип нелинейной регрессии используется, когда связь между независимой переменной и зависимой переменной представляет собой логарифмическое уравнение.
- Степенная регрессия. Этот тип нелинейной регрессии используется, когда связь между независимой и зависимой переменными представляет собой уравнение степени.
- Логистическая регрессия: этот тип нелинейной регрессии используется, когда зависимая переменная является бинарной (например, 0 или 1) или категориальной (например, да или нет). Логистическая регрессия используется для моделирования вероятности возникновения определенного события.
- Нелинейная регрессия на основе нейронной сети: этот тип нелинейной регрессии используется, когда данные имеют сложные нелинейные отношения. Нейронная сеть — мощный инструмент нелинейной регрессии.
- Непараметрическая регрессия. Этот тип нелинейной регрессии не зависит от конкретной функциональной формы взаимосвязи между независимыми и зависимыми переменными. Он использует такие методы, как деревья решений, случайные леса и регрессия ядра, чтобы оценить взаимосвязь.
2. Математика регрессии:
Линейная регрессия — это метод, используемый для моделирования связи между зависимой переменной (y) и одной или несколькими независимыми переменными (x1, x2, …, xn). Цель состоит в том, чтобы найти наиболее подходящую линию, описывающую эту связь. Математическое уравнение для простой модели линейной регрессии с одной независимой переменной:
у = бета0 + бета1*х
Где y — зависимая переменная, x — независимая переменная, beta0 — точка пересечения с осью y, а beta1 — наклон линии.
Для множественной линейной регрессии с несколькими независимыми переменными уравнение выглядит следующим образом:
y = бета0 + бета1x1 + бета2x2 + … + бета_n*x_n
Где y — зависимая переменная, x1, x2, …, xn — независимые переменные, beta0, beta1, beta2, …, beta_n — коэффициенты независимых переменных, эти коэффициенты также называются весами, и они представляют отношение независимых переменная с зависимой переменной.
Этот алгоритм объясняет линейную связь между зависимой (выходной) переменной y и независимой (предикторной) переменной X с помощью прямой линии Y = B0 + B1 X.
Существует несколько методов, которые можно использовать для оценки значений бета0 и бета1 в модели линейной регрессии. Наиболее распространенным методом является метод наименьших квадратов.
А.Метод наименьших квадратов. Метод наименьших квадратов — это способ найти линию, которая лучше всего соответствует данным, путем минимизации суммы квадратов ошибок (SSE) между прогнозируемыми и фактическими значениями. Математическая формула метода наименьших квадратов для простой модели линейной регрессии с одной независимой переменной:
бета1 = СУММ((x_i — x_среднее)*(y_i — y_среднее)) / СУММ((x_i — x_среднее)²)
бета0 = y_среднее — бета1*x_среднее
Где x_i и y_i — независимые и зависимые переменные соответственно, x_mean и y_mean — средние значения независимых и зависимых переменных соответственно, а SUM обозначает сумму значений.
Для множественной линейной регрессии с несколькими независимыми переменными используется следующая формула:
бета = (X^TX)^-1X^T*y
Где X — матрица независимых переменных, X^T — транспонированная матрица X, y — вектор зависимой переменной, а бета — вектор коэффициентов или весов независимых переменных.
Случайная ошибка (остатки)
В регрессии разница между наблюдаемым значением зависимой переменной (yi) и прогнозируемым значением (предсказано) называется остатком.
εi = y(прогноз) — yi
где y(прогноз) = B0 + B1 Xi
Мы вычисляем MSE, используя простое линейное уравнение y=mx+b:
Математически наилучшая линия получается путем минимизации остаточной суммы квадратов (RSS).
Функция стоимости для линейной регрессии
Функция стоимости помогает найти оптимальные значения для B0 и B1, которые обеспечивают наилучшее соответствие для точек данных.
В линейной регрессии обычно используется функция стоимости Mean Squared Error (MSE), которая представляет собой среднее значение квадрата ошибки между y(прогноз) и yi. .
Мы вычисляем MSE, используя простое линейное уравнение y=mx+b:
Используя функцию MSE, мы обновим значения B0 и B1 таким образом, чтобы значение MSE установилось на минимуме. Эти параметры можно определить с помощью метода градиентного спуска таким образом, чтобы значение функции стоимости было минимальным.
Б. Градиентный спуск. Градиентный спуск — это алгоритм оптимизации, используемый для поиска значений коэффициентов, минимизирующих функцию стоимости. Функция стоимости определяется как среднеквадратическая ошибка между прогнозируемыми значениями и фактическими значениями. Алгоритм градиентного спуска итеративно обновляет значения коэффициентов, беря производную функции стоимости по каждому коэффициенту и вычитая ее из текущего значения коэффициента.
Вышеупомянутые методы являются наиболее популярными методами, используемыми для оценки значений бета0 и бета1 в линейной регрессии. Метод наименьших квадратов обычно используется для простой линейной регрессии и множественной линейной регрессии, тогда как градиентный спуск используется для более сложных моделей, таких как нелинейная регрессия.
Модель регрессии оптимизирует алгоритм градиентного спуска для обновления коэффициентов линии за счет уменьшения функции стоимости путем случайного выбора значений коэффициентов, а затем итеративного обновления значений для достижения функции минимальной стоимости.
Давайте возьмем пример, чтобы понять это. Представьте себе U-образную яму. И вы стоите на самой верхней точке ямы, и ваша цель — достичь дна ямы. Предположим, что на дне ямы есть сокровище, и вы можете сделать только дискретное количество шагов, чтобы добраться до дна. Если вы решите делать один шаг за раз, вы в конце концов доберетесь до дна ямы, но это займет больше времени. Если вы решите делать большие шаги каждый раз, вы можете достичь дна раньше, но есть вероятность, что вы можете перелететь через дно ямы и даже не приблизиться к дну. В алгоритме градиентного спуска количество шагов, которое вы делаете, можно рассматривать как скорость обучения, и это определяет, насколько быстро алгоритм сходится к минимуму.
Чтобы обновить B0 и B1, мы берем градиенты из функции стоимости. Чтобы найти эти градиенты, мы берем частные производные для B0 и B1.
Нам нужно минимизировать функцию стоимости J. Один из способов добиться этого — применить алгоритм пакетного градиентного спуска. При пакетном градиентном спуске значения обновляются на каждой итерации. (Последние два уравнения показывают обновление значений)
Частные производные — это градиенты, и они используются для обновления значений B0 и B1. Альфа — это скорость обучения.
3. Показатели производительности для регрессии:
Метрики оценки для регрессии используются для оценки производительности модели регрессии и определения того, насколько хорошо она соответствует данным. Они помогают понять точность и надежность прогнозов, сделанных моделью.
Есть несколько причин, по которым нам нужны метрики оценки для регрессии:
- Выбор модели: метрики оценки помогают сравнивать разные модели и выбирать лучшую для данной проблемы.
- Настройка модели: метрики оценки помогают понять, как различные параметры и настройки влияют на производительность модели, и точно настроить модель для повышения производительности.
- Проверка модели: метрики оценки помогают проверить модель, измеряя, насколько хорошо она обобщает новые данные.
- Интерпретация модели: метрики оценки помогают понять взаимосвязь между независимыми и зависимыми переменными и интерпретировать прогнозы модели.
- Обмен результатами: метрики оценки позволяют сообщать другим о производительности модели и принимать решения на основе данных.
Существует несколько показателей оценки, доступных для регрессии, таких как R-квадрат, среднеквадратическая ошибка (RMSE), средняя абсолютная ошибка (MAE), средняя абсолютная ошибка в процентах (MAPE) и т. д. У каждого показателя есть свои сильные и слабые стороны, и соответствующая метрика будет зависеть от конкретной проблемы и целей анализа
Существует несколько показателей оценки, которые можно использовать для оценки производительности регрессионной модели. Некоторые из наиболее распространенных показателей:
- Средняя абсолютная ошибка (MAE): MAE – это среднее значение абсолютной разницы между прогнозируемыми и фактическими значениями. Формула MAE:
MAE = (1/n) * СУММ(|y_i — y_pred_i|)
Где y_i — фактическое значение, y_pred_i — прогнозируемое значение, а n — количество наблюдений.
2. Среднеквадратическая ошибка (MSE): MSE представляет собой среднее квадратов разностей между прогнозируемыми и фактическими значениями. Формула MSE:
MSE = (1/n) * SUM((y_i — y_pred_i)²)
3. Среднеквадратичная ошибка (RMSE): RMSE представляет собой квадратный корень из MSE. Формула для RMSE:
RMSE = кврт (MSE)
. Математически это можно представить как,
Чтобы сделать эту оценку беспристрастной, необходимо разделить сумму квадратов невязок на степени свободы, а не на общее количество точек данных в модели. Затем этот термин называется Стандартная остаточная ошибка (RSE). Математически это можно представить как,
4.R-квадрат (R2). R-квадрат – это показатель того, насколько хорошо модель соответствует данным. Он находится в диапазоне от 0 до 1, при этом значение 1 указывает на идеальное соответствие. Формула для R-квадрата:
R2 = 1 — (ССЭ/ССТ)
- Сумма квадратов невязки (RSS) определяется как сумма квадратов невязки для каждой точки данных на графике/данных. Это мера разницы между ожидаемым и фактически наблюдаемым выходом.
- Общая сумма квадратов (TSS) определяется как сумма ошибок точек данных от среднего значения переменной ответа. Математически TSS,
где y — среднее значение выборочных точек данных.
Значение R-квадрата показано следующими цифрами:
5. Скорректированный R-квадрат. Скорректированный R-квадрат учитывает количество независимых переменных в модели и размер выборки. Формула для скорректированного R-квадрата:
Скорректированный R2 = 1 — [(1-R2) * (n-1) / (n-p-1)]
Где n — размер выборки, а p — количество независимых переменных в модели.
Это одни из наиболее часто используемых показателей оценки для регрессионных моделей. Выбор метрики будет зависеть от конкретной проблемы и целей анализа.
Каждая метрика имеет свои сильные и слабые стороны:
- R-квадрат (R2) — это мера того, насколько хорошо модель соответствует данным, при этом значение, близкое к 1, указывает на лучшее соответствие. Он рассчитывается как 1 минус отношение суммы квадратов ошибок (SSE) к общей сумме квадратов (SST). R2 — относительная мера соответствия, она не указывает на абсолютный размер ошибки. Он не наказывает за количество независимых переменных в модели, поэтому он может быть чрезмерно оптимистичным, когда количество независимых переменных в модели велико.
- Среднеквадратическая ошибка (RMSE) — это мера средней величины ошибки. Он рассчитывается как квадратный корень из среднеквадратичной ошибки (MSE) и является абсолютной мерой соответствия. Это мера разницы между прогнозируемыми значениями и фактическими значениями. Чем меньше значение RMSE, тем лучше модель соответствует данным. RMSE чувствителен к выбросам, поэтому на него может повлиять наличие выбросов в наборе данных.
- Средняя абсолютная ошибка (MAE) — это мера средней величины ошибки без учета направления ошибки. Он рассчитывается как среднее значение абсолютной разницы между прогнозируемыми значениями и фактическими значениями. Он более устойчив к выбросам, чем RMSE, поскольку на него не влияет наличие выбросов в наборе данных.
- Средняя абсолютная ошибка в процентах (MAPE) является мерой средней ошибки в процентах. Он рассчитывается как среднее значение абсолютной процентной разницы между прогнозируемыми значениями и фактическими значениями. Это полезно, когда вам нужно выразить ошибку в процентах. Это может быть проблематично, когда истинные значения близки к нулю, так как это приведет к большой процентной ошибке.
В заключение, каждая метрика имеет свои сильные и слабые стороны, и соответствующая метрика будет зависеть от конкретной проблемы и целей анализа.
4. Предположения в регрессии
Регрессия — это параметрический подход. «Параметрический» означает, что он делает предположения о данных для целей анализа. Из-за своей параметрической стороны регрессия носит ограничительный характер. Он не дает хороших результатов с наборами данных, которые не соответствуют его предположениям. Поэтому для успешного регрессионного анализа важно проверить эти предположения.
Итак, как бы вы проверили (подтвердили), соответствует ли набор данных всем предположениям регрессии? Вы проверяете это, используя графики регрессии (объясненные ниже) вместе с некоторым статистическим тестом.
Давайте рассмотрим важные допущения в регрессионном анализе:
- Должна существовать линейная и аддитивная взаимосвязь между зависимой (отклик) переменной и независимой (прогностической) переменной (переменными). Линейная зависимость предполагает, что изменение отклика Y из-за изменения X¹ на одну единицу является постоянным, независимо от значения X¹. Аддитивная зависимость предполагает, что влияние X¹ на Y не зависит от других переменных.
- Между остаточными (ошибочными) членами не должно быть корреляции. Отсутствие этого явления известно как автокорреляция.
- Независимые переменные не должны быть коррелированы. Отсутствие этого явления известно как мультиколлинеарность.
- Члены ошибки должны иметь постоянную дисперсию. Это явление известно как гомоскедастичность. Наличие непостоянной дисперсии относят к гетероскедастичности.
- Члены ошибки должны быть нормально распределены.
6. Что делать, если эти предположения нарушаются?
Давайте углубимся в конкретные предположения и узнаем об их результатах (если они нарушены):
1. Линейная и аддитивная: если вы подгоните линейную модель к нелинейному, неаддитивному набору данных, алгоритм регрессии не сможет математически зафиксировать тенденцию, что приведет к неэффективной модели. Кроме того, это приведет к ошибочным прогнозам для невидимого набора данных.
Как проверить. Ищите графики остаточных и подогнанных значений (объяснено ниже). Кроме того, вы можете включить в свою модель полиномиальные члены (X, X², X³), чтобы зафиксировать нелинейный эффект.
2. Автокорреляция: наличие корреляции в терминах ошибок резко снижает точность модели. Обычно это происходит в моделях временных рядов, где следующий момент зависит от предыдущего момента. Если члены ошибок коррелированы, предполагаемые стандартные ошибки имеют тенденцию занижать истинную стандартную ошибку.
Если это происходит, то доверительные интервалы и интервалы прогнозирования сужаются. Более узкий доверительный интервал означает, что 95-процентный доверительный интервал будет иметь меньшую, чем 0,95, вероятность того, что он будет содержать фактическое значение коэффициентов. Давайте разберемся с узкими интервалами прогнозирования на примере:
Например, коэффициент наименьших квадратов X¹ равен 15,02, а его стандартная ошибка равна 2,08 (без автокорреляции). Но при наличии автокорреляции стандартная ошибка уменьшается до 1,20. В результате интервал предсказания сужается до (13,82, 16,22) из (12,94, 17,10).
Кроме того, более низкие стандартные ошибки могут привести к тому, что соответствующие p-значения будут ниже фактических. Это заставит нас ошибочно заключить, что параметр является статистически значимым.
Как проверить: Найдите статистику Дурбина — Ватсона (DW). Оно должно находиться в диапазоне от 0 до 4. Если DW = 2, то автокорреляция отсутствует, 0 ‹ DW ‹ 2 подразумевает положительную автокорреляцию, а 2 ‹ DW ‹ 4 указывает на отрицательную автокорреляцию. Кроме того, вы можете увидеть график остаточной зависимости от времени и найти сезонную или коррелированную закономерность в остаточных значениях.
3. Мультиколлинеарность:
Поскольку мультиколлинеарность затрудняет определение того, какая переменная на самом деле способствует прогнозированию переменной отклика, это приводит к неверным выводам о влиянии переменной на целевую переменную. Хотя это не влияет на точность прогнозов, важно правильно обнаруживать и учитывать мультиколлинеарность, присутствующую в модели, поскольку случайное удаление любой из этих коррелирующих переменных из модели приводит к тому, что значения коэффициентов сильно колеблются и даже меняют знаки. .
Мультиколлинеарность может быть обнаружена с помощью следующих методов.
- Парные корреляции. Проверка парных корреляций между различными парами независимых переменных может дать полезную информацию для обнаружения мультиколлинеарности.
- Фактор инфляции дисперсии (VIF): парные корреляции не всегда могут быть полезны, поскольку возможно, что только одна переменная не сможет полностью объяснить какую-то другую переменную, но некоторые из объединенных переменных могут быть готовы сделать это. этот. Таким образом, для проверки такого рода отношений между переменными можно использовать VIF. VIF в основном объясняет связь одной независимой переменной со всеми другими независимыми переменными. VIF дается,
где i относится к переменной i, которая представлена как линейная комбинация остальных независимых переменных.
Обычная эвристика, используемая для значений VIF, заключается в том, что если VIF > 10, то значение определенно высокое, и его следует отбросить. И если VIF = 5, то он может быть действительным, но его следует проверить в первую очередь. Если VIF ‹ 5, то это считается хорошим значением vif.
4. Гетероскедастичность: наличие непостоянной дисперсии в терминах ошибки приводит к гетероскедастичности. Как правило, непостоянная дисперсия возникает при наличии выбросов или экстремальных значений кредитного плеча. Похоже, эти значения получают слишком большой вес, что непропорционально влияет на производительность модели. Когда происходит это явление, доверительный интервал для предсказания вне выборки имеет тенденцию быть нереалистично широким или узким.
Как проверить: вы можете посмотреть на график остаточных и подогнанных значений. Если существует гетероскедастичность, график будет иметь форму воронки (показанную в следующем разделе). Также для выявления этого явления можно использовать тест Бреуша-Пагана/Кука — Вейсберга или общий тест Уайта.
5. Нормальное распределение ошибок: если ошибки распределены ненормально, доверительные интервалы могут стать слишком широкими или узкими. Как только доверительный интервал становится нестабильным, это приводит к трудностям в оценке коэффициентов на основе минимизации наименьших квадратов. Наличие ненормального распределения предполагает, что есть несколько необычных точек данных, которые необходимо тщательно изучить, чтобы сделать лучшую модель.
Как проверить: вы можете посмотреть на график QQ (показан ниже). Вы также можете выполнять статистические тесты нормальности, такие как тест Колмогорова-Смирнова, тест Шапиро-Уилка.
7. Интерпретация графиков регрессии
До сих пор мы узнали о важных предположениях регрессии и методах, которые следует предпринять, если эти предположения нарушаются.
Но это еще не конец. Теперь вы также должны знать решения для устранения нарушения этих предположений. В этом разделе я объяснил 4 графика регрессии, а также методы преодоления ограничений на предположения.
1. Остаточные и подобранные значения
На этом графике рассеяния показано распределение остатков (ошибок) по сравнению с подобранными значениями (прогнозируемые значения). Это один из самых важных сюжетов, который должен выучить каждый. Он показывает различные полезные идеи, включая выбросы. Выбросы на этом графике помечены номером наблюдения, что упрощает их обнаружение.
Есть две основные вещи, которым вы должны научиться:
- Если на этом графике есть какая-либо закономерность (может быть, параболическая форма), считайте это признаками нелинейности данных. Это означает, что модель не фиксирует нелинейные эффекты.
- Если на графике видна форма воронки, расценивайте это как признаки непостоянной дисперсии, т. е. гетероскедастичности.
Решение. Чтобы преодолеть проблему нелинейности, вы можете выполнить нелинейное преобразование предикторов, таких как log (X), √X или X², преобразовать зависимую переменную. Чтобы преодолеть гетероскедастичность, можно преобразовать переменную отклика, такую как log(Y) или √Y. Кроме того, вы можете использовать взвешенный метод наименьших квадратов для устранения гетероскедастичности.
2. Нормальный график Q-Q
Этот qq или квантиль-квантиль представляет собой график рассеяния, который помогает нам проверить предположение о нормальном распределении в наборе данных. Используя этот график, мы можем сделать вывод, поступают ли данные из нормального распределения. Если да, то график будет показывать довольно прямую линию. Отсутствие нормальности в ошибках видно по отклонению на прямой.
Если вам интересно, что такое «квантиль», вот простое определение: подумайте о квантилях как о точках в ваших данных, ниже которых падает определенная часть данных. Квантиль часто называют процентилями. Например: когда мы говорим, что значение 50-го процентиля равно 120, это означает, что половина данных лежит ниже 120.
Решение. Если ошибки не распределены нормально, нелинейное преобразование переменных (отклика или предикторов) может улучшить модель.
3. График местоположения масштаба
Этот график также используется для обнаружения гомоскедастичности (предположение о равной дисперсии). Он показывает, как остатки распределяются по диапазону предикторов. Он похож на график зависимости остаточных значений от подобранных значений, за исключением того, что в нем используются стандартизированные остаточные значения. В идеале в сюжете не должно быть различимой закономерности. Это будет означать, что ошибки нормально распределены. Но в случае, если график показывает какой-либо заметный паттерн (возможно, форму воронки), это будет означать ненормальное распределение ошибок.
Решение. Следуйте решению для гетероскедастичности, приведенному на графике 1.
4. График остатков и кредитного плеча
Он также известен как график расстояния Кука. Дистанция Кука пытается определить точки, которые имеют большее влияние, чем другие точки. Такие влиятельные точки, как правило, оказывают значительное влияние на линию регрессии. Другими словами, добавление или удаление таких точек из модели может полностью изменить статистику модели.
Но можно ли считать эти влиятельные наблюдения выбросами? Ответить на этот вопрос можно только после просмотра данных. Следовательно, на этом графике большие значения, отмеченные расстоянием Кука, могут потребовать дальнейшего изучения.
Решение. Для влиятельных наблюдений, которые являются ничем иным, как выбросами, если их не так много, вы можете удалить эти строки. В качестве альтернативы вы можете уменьшить наблюдение выброса с максимальным значением в данных или рассматривать эти значения как отсутствующие значения.
Важно отметить, что некоторые нарушения допущений не обязательно могут сделать результаты недействительными, а скорее могут повлиять на интерпретацию результатов, поэтому важно проводить анализ критически.
8. Компромисс дисперсии смещения в регрессии:
Компромисс между смещением и дисперсией является фундаментальной концепцией машинного обучения и статистического моделирования, включая регрессию. Это относится к компромиссу между способностью модели хорошо соответствовать обучающим данным (низкое смещение) и способностью модели обобщать новые, невидимые данные (низкая дисперсия).
Предвзятость относится к ошибке, возникающей при аппроксимации реальной проблемы, которая может быть чрезвычайно сложной, гораздо более простой моделью. Модель с высоким смещением — это модель, которая делает сильные предположения о форме лежащей в основе взаимосвязи между независимыми и зависимыми переменными. Например, модель линейной регрессии с небольшим количеством признаков имеет большое смещение, потому что она делает сильное предположение, что данные линейны. В этом случае модель не будет хорошо соответствовать данным, что приведет к высокой ошибке обучения.
Дисперсия, с другой стороны, относится к ошибке, вносимой чувствительностью модели к небольшим колебаниям обучающих данных. Модель с высокой дисперсией обладает большой гибкостью и может очень хорошо соответствовать обучающим данным, но плохо обобщается на новые данные. Например, полиномиальная регрессия с высокой степенью имеет высокую дисперсию, потому что она может очень хорошо соответствовать данным, но может плохо обобщаться на новые данные. В этом случае модель будет иметь низкую ошибку обучения, но высокую ошибку теста.
Давайте разберемся, что такое компромисс смещения и дисперсии.
Целью любого контролируемого алгоритма машинного обучения является достижение низкого смещения и низкой дисперсии, поскольку он более надежен. Так что алгоритм должен добиться лучшей производительности.
От взаимосвязи между предвзятостью и дисперсией в машинном обучении никуда не деться.
Существует обратная связь между смещением и дисперсией,
- Увеличение смещения уменьшит дисперсию.
- Увеличение дисперсии уменьшит смещение.
Между этими двумя концепциями существует компромисс, и алгоритмы должны найти баланс между смещением и дисперсией.
На самом деле, невозможно рассчитать реальные условия ошибки смещения и дисперсии, потому что мы не знаем фактическую лежащую в основе целевую функцию.
Концепция компромисса между смещением и дисперсией помогает специалистам-практикам определить, является ли модель недостаточной или чрезмерной, и как настроить модель для достижения баланса между смещением и дисперсией.
Теперь перейдем к переобучению и недообучению.
9.Переоснащение
Когда модель изучает каждую закономерность и шум в данных до такой степени, что это влияет на производительность модели в невидимом будущем наборе данных, это называется переоснащением. . Модель настолько хорошо соответствует данным, что интерпретирует шум как закономерности в данных.
Когда модель имеет низкое смещение и более высокую дисперсию, она в конечном итоге запоминает данные и вызывает переоснащение. Переоснащение приводит к тому, что модель становится конкретной, а не общей. Обычно это приводит к высокой точности обучения и очень низкой точности тестов.
Обнаружение переобучения полезно, но не решает реальной проблемы. Существует несколько способов предотвращения переобучения, которые указаны ниже:
- Перекрестная проверка
- Если данные для обучения слишком малы для обучения, добавьте более актуальные и чистые данные.
- Если обучающие данные слишком велики, выберите некоторые функции и удалите ненужные функции.
- Регуляризация
10. Недостаточное оснащение:
Недообучение обсуждается не так часто, как переоснащение. Когда модель не учится на обучающем наборе данных, а также не может обобщить тестовый набор данных, это называется недообучением. Этот тип проблемы может быть очень легко обнаружен по показателям производительности.
Когда модель имеет высокое смещение и низкую дисперсию, она не обобщает данные и приводит к недообучению. Он не может найти скрытые базовые шаблоны из данных. Обычно это приводит к низкой точности обучения и очень низкой точности тестов. Способы предотвращения недообучения указаны ниже.
- Увеличьте сложность модели
- Увеличьте количество признаков в обучающих данных
- Удалите шум из данных.
11. Гипотеза линейной регрессии
После того, как вы подобрали прямую линию к данным, вам нужно спросить: «Эта прямая линия в значительной степени соответствует данным?» или «Яявляется >Коэффициент бета объясняет дисперсию на графике данных?» И тут приходит идея проверить гипотезу о бета-коэффициенте. Нулевая и альтернативная гипотезы в этом случае таковы:
H0: B1 = 0
HA: B1 ≠ 0
Чтобы проверить эту гипотезу, мы используем t-тест,статистика теста для бета-коэффициента определяется следующим образом:
Оценка соответствия модели
Некоторые другие параметры для оценки модели:
- Статистика t: используется для определения p-значения и, следовательно, помогает определить, является ли коэффициент значимым или нет.
- F-статистика: используется для оценки того, является ли общее соответствие модели значимым или нет. Как правило, чем выше значение F-статистики, тем более значимой оказывается модель.
Статистика теста представляет собой t-значение, которое рассчитывается как отношение оцениваемого коэффициента к его стандартной ошибке. Значение t соответствует t-распределению с n-p-1 степенями свободы, где n — количество наблюдений, а p — количество независимых переменных.
В контексте линейной регрессии F-тест используется для определения того, требуется ли подмножество независимых переменных для объяснения изменения зависимой переменной. Статистика F-теста сравнивает объясненную вариацию зависимой переменной для полной модели (со всеми независимыми переменными) с объясненной вариацией для сокращенной модели (с подмножеством независимых переменных). F-тест следует F-распределению с (p1-p2, n-p1) степенями свободы, где p1 и p2 — количество независимых переменных в полной и сокращенной моделях соответственно, а n — количество наблюдений.
И t-тест, и F-тест используются для определения того, являются ли коэффициенты независимой переменной (переменных) статистически значимыми. Стьюдентный тест используется, когда мы хотим проверить значимость одной или нескольких независимых переменных, а F-тест используется, когда мы хотим сравнить соответствие двух или более вложенных моделей.
Практическое кодирование: модель линейной регрессии
В этом разделе вы узнаете, как выполнить регрессию в Python. Мы будем использовать прогнозные данные канала продаж рекламы. Вы можете получить доступ к данным здесь.
Продажи – это целевая переменная, которую необходимо прогнозировать. Теперь, основываясь на этих данных, наша цель — создать прогностическую модель, которая прогнозирует продажи на основе денег, потраченных на различные платформы для маркетинга.
Давайте сразу приступим к практическому кодированию, чтобы сделать это предсказание. Пожалуйста, не чувствуйте себя упущенным из виду, если у вас нет опыта работы с Python. На самом деле, лучший способ научиться — это запачкать руки, решая задачу, вроде той, которую мы решаем.
Шаг 1: Импорт библиотек Python
Первый шаг — запустить блокнот Jupyter и загрузить в него все необходимые библиотеки. Вот важные библиотеки, которые нам понадобятся для этой линейной регрессии.
- NumPy (для выполнения определенных математических операций)
- панды (для хранения данных в пандах DataFrames)
- matplotlib.pyplot (вы будете использовать matplotlib для построения графика данных)
Чтобы загрузить их, просто начните с этих нескольких строк кода в первой ячейке:
#Importing all the necessary libraries import numpy as np import pandas as pd import matplotlib.pyplot as plt # Supress Warnings import warnings warnings.filterwarnings('ignore')
Последняя строка кода помогает подавить ненужные предупреждения.
Шаг 2: Загрузка набора данных
Давайте теперь импортируем данные в DataFrame. DataFrame — это тип данных в Python. Самый простой способ понять это - хранить все ваши данные в табличном формате.
#Read the given CSV file, and view some sample records advertising = pd.read_csv( "advertising.csv" ) advertising.head()
Шаг 3: Визуализация
Давайте построим график рассеяния для целевой переменной по сравнению с переменными-предикторами на одном графике, чтобы получить интуицию. Кроме того, построение тепловой карты для всех переменных,
#Importing seaborn library for visualizations import seaborn as sns #to plot all the scatterplots in a single plot sns.pairplot(advertising, x_vars=[ 'TV', ' Newspaper.,'Radio' ], y_vars = 'Sales', size = 4, kind = 'scatter' ) plt.show() #To plot heatmap to find out correlations sns.heamap( advertising.corr(), cmap = 'YlGnBl', annot = True ) plt.show()
На диаграмме рассеяния и тепловой карте мы можем заметить, что «Продажи» и «TV» имеют более высокую корреляцию по сравнению с другими, поскольку они показывают линейный характер диаграммы рассеивания, а также дают корреляцию 0,9.
Вы можете пойти дальше и поиграть с визуализациями и узнать интересные идеи из данных.
4. Выполнение простой линейной регрессии
Здесь, поскольку TV и Sales имеют более высокую корреляцию, мы выполним простую линейную регрессию для этих переменных.
Мы можем использовать sklearn или statsmodels для применения линейной регрессии. Итак, мы продолжим работу с статистическими моделями.
Сначала мы назначаем переменную функции «TV» в этом случае переменной «X», а переменную ответа «Продажи» — переменной «y».
X = advertising[ 'TV' ] y = advertising[ 'Sales' ]
И после назначения переменных нужно разбить нашу переменную на обучающую и проверочную выборки. Вы выполните это, импортировав train_test_split
из библиотеки sklearn.model_selection
. Обычно рекомендуется хранить 70 % данных в наборе данных поезда, а остальные 30 % — в наборе тестовых данных.
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, train_size = 0.7, test_size = 0.3, random_state = 100 )
Таким образом, вы можете разделить данные на обучающие и тестовые наборы.
Можно проверить формы поезда и тестовых наборов с помощью следующего кода:
print( X_train.shape ) print( X_test.shape ) print( y_train.shape ) print( y_test.shape )
импорт библиотеки статмоделей для выполнения линейной регрессии
import statsmodels.api as sm
По умолчанию библиотека statsmodels
соответствует строке набора данных, проходящей через начало координат. Но для того, чтобы иметь перехват, вам нужно вручную использовать атрибут add_constant
для statsmodels
. И как только вы добавите константу в свой набор данных X_train
, вы можете продолжить и подобрать линию регрессии, используя OLS
(Обычные наименьшие квадраты) атрибут statsmodels
, как показано ниже,
# Add a constant to get an intercept X_train_sm = sm.add_constant(X_train) # Fit the resgression line using 'OLS' lr = sm.OLS(y_train, X_train_sm).fit()
Можно увидеть значения бета, используя следующий код:
# Print the parameters,i.e. intercept and slope of the regression line obtained lr.params
Здесь 6,948 — точка пересечения, а 0,0545 — наклон переменной TV.
Теперь давайте посмотрим на метрики оценки для этой операции линейной регрессии. Вы можете просто просмотреть сводку, используя следующий код:
#Performing a summary operation lists out all different parameters of the regression line fitted print(lr.summary())
Как видите, этот код дает вам краткое описание линейной регрессии. Вот некоторые ключевые статистические данные из сводки:
- Коэффициент для ТВ равен 0,054, что соответствует очень низкому p-значению. Коэффициент статистически значим. Так что ассоциация не случайна.
- R – в квадрате равно 0,816. Это означает, что 81,6 % дисперсии показателя "Продажи" объясняется "ТВ". Это приличное значение R-квадрата.
- F-статистика имеет очень низкое значение p (практически низкое). Это означает, что соответствие модели является статистически значимым, а объясненная дисперсия не случайна.
Шаг 5: Выполнение прогнозов на тестовом наборе
Теперь, когда вы просто подогнали линию регрессии к набору данных поезда, пришло время сделать некоторые прогнозы на основе тестовых данных. Для этого вам сначала нужно добавить константу к данным X_test
, как вы сделали для X_train
, а затем вы можете просто продолжить и предсказать значения y, соответствующие X_test
, используя predict
атрибут подобранной линии регрессии.
# Add a constant to X_test X_test_sm = sm.add_constant(X_test) # Predict the y values corresponding to X_test_sm y_pred = lr.predict(X_test_sm)
Вы можете увидеть прогнозируемые значения с помощью следующего кода:
y_pred.head()
Чтобы проверить, насколько хорошо значения предсказываются на тестовых данных, мы проверим некоторые показатели оценки, используя библиотеку sklearn.
#Imporitng libraries from sklearn.metrics import mean_squared_error from sklearn.metrics import r2_score #RMSE value print( "RMSE: ",np.sqrt( mean_squared_error( y_test, y_pred ) ) #R-squared value print( "R-squared: ",r2_score( y_test, y_pred ) )
Мы получаем приличный результат как для обучающих, так и для тестовых наборов.
Помимо «statsmodels», есть еще один пакет, а именно «sklearn», который можно использовать для выполнения линейной регрессии. Мы будем использовать библиотеку linear_model из sklearn для построения модели. Поскольку мы уже выполнили сплит-тестирование поезда, нам не нужно делать это снова.
Однако есть один небольшой шаг, который нам нужно добавить. Когда есть только одна функция, нам нужно добавить дополнительный столбец, чтобы подбор линейной регрессии был выполнен успешно. Код приведен ниже,
X_train_lm = X_train_lm.values.reshape(-1,1) X_test_lm = X_test_lm.values.reshape(-1,1)
Можно проверить изменение формы вышеуказанных фреймов данных.
print(X_train_lm.shape) print(X_train_lm.shape)
Чтобы соответствовать модели, напишите приведенный ниже код,
from sklearn.linear_model import LinearRegression #Representing LinearRegression as lr (creating LinearRegression object) lr = LinearRegression() #Fit the model using lr.fit() lr.fit( X_train_lm , y_train_lm )
Вы можете получить значения перехвата и наклона с помощью sklearn, используя следующий код:
#get intercept print( lr.intercept_ ) #get slope print( lr.coef_ )
Вот как мы можем выполнить простую линейную регрессию.
Заключение
Ознакомившись с самой фундаментальной концепцией машинного обучения, вы теперь можете реализовать ее на ряде своих наборов данных.
Все, что вы узнали в этом обсуждении, вполне достаточно для того, чтобы выбрать простой набор данных и приступить к созданию на нем модели линейной регрессии.