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

Линейная регрессия – это контролируемый алгоритм обучения, используемый, когда целевая/зависимая переменная остается фактическим числом. Линия наилучшего соответствия устанавливает связь между зависимой переменной y и одной или несколькими независимыми переменными x. Он применяет обычный принцип наименьших квадратов (OLS)/среднеквадратичной ошибки (MSE). В статистике OLS — это метод оценки неизвестных параметров функции линейной регрессии. Его цель — минимизировать сумму квадратической разницы между наблюдаемыми зависимыми переменными в данном наборе данных и теми, которые предсказаны с помощью функции линейной регрессии (Учебное пособие по линейной регрессии, 2020).

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

Простая/одномерная линейная регрессия: самая простая форма

Простая линейная регрессия — это линейная регрессия с одной независимой переменной (Remi, 2021). Это одна из самых базовых моделей машинного обучения, с которой знаком энтузиаст машинного обучения. В линейной регрессии мы предполагаем, что две переменные, то есть зависимая и независимые переменные, связаны линейно (Линейная регрессия (реализация Python), 2017).

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

ответ(Y) = перехват(b0) + константа(b1) * пояснительный(X)

Ответ (зависимая переменная или Y): «Ответ» — это переменная, которую мы хотим предсказать или объяснить. Это также зависимая переменная, поскольку ее значение зависит от других факторов. Во многих случаях это результат или целевая переменная, которую мы хотим понять или спрогнозировать.

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

Константа (коэффициент наклона или b1): «Константа» представляет собой коэффициент, связанный с объясняющими переменными. В вашем уравнении она обозначена как «константа», но в стандартных обозначениях она обычно обозначается как «b1». Этот коэффициент показывает, насколько изменяется переменная отклика при каждом изменении единицы объясняющей переменной(й). Он количественно определяет силу и направление линейной связи между ответом и объясняющей переменной(ями).

Пояснительная переменная (независимая переменная или X): «Независимая» переменная(и) также известна как независимая переменная(и). Считается, что эти факторы или переменные влияют или объясняют изменения переменной ответа. В вашем уравнении это называется «пояснительным». На практике может быть одна или несколько объясняющих переменных.

Другими словами, линейная регрессия в своей самой базовой форме подбирает прямую линию к переменной отклика. Модель спроектирована таким образом, чтобы соответствовать линии, которая минимизирует квадратичные различия (ошибки или остатки) (Учебное пособие по линейной регрессии, 2020 г.).

Поиск наиболее подходящей линии

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

Реализация на Python

В Python вы можете использовать несколько пакетов, включая NumPy, SciPy, scikit-learn и Matplotlib, для построения базовой линейной регрессии. Здесь я приведу пример использования scikit-learn, известной среды машинного обучения, которая упрощает задачи, связанные с регрессией.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# Generate some sample data
np.random.seed(0)
X = np.random.rand(100, 1) # Independent variable
y = 2 * X + 1 + 0.1 * np.random.randn(100, 1) # Dependent variable with some noise

# Create a LinearRegression model
model = LinearRegression()

# Fit the model to the data
model.fit(X, y)

# Predict the response for new data points
X_new = np.array([[0.5], [1.0]]) # New data points to predict
y_pred = model.predict(X_new)

# Plot the original data points and regression line
plt.scatter(X, y, label='Original Data')
plt.plot(X_new, y_pred, color='red', linewidth=2, label='Regression Line')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.title('Simple Linear Regression')
plt.show()

# Retrieve the model parameters
intercept = model.intercept_[0]
slope = model.coef_[0][0]

print(f'Intercept (b0): {intercept}')
print(f'Slope (b1): {slope}')

Предположения в линейной регрессии

  • Линейность. Модели моделей линейной регрессии должны быть линейными, поскольку выходные данные должны иметь линейную связь с входными значениями, и они подходят только для данных с линейной связью между двумя объектами. (Мадугири, дата не указана)
  • Гомоскедастичность: Гомоскедастичность означает, что стандартное отклонение и дисперсия остатков (разница (y-yˆ)2) должны быть одинаковыми для любого значения x. Множественная линейная регрессия предполагает, что величина ошибки в остатках одинакова в каждой точке линейной модели. Мы можем проверить гомоскедастичность с помощью диаграмм рассеяния. (Мадугири, дата не указана)
  • Немультиколлинеарность. Данные не должны иметь мультиколлинеарности, то есть независимые переменные не должны быть сильно коррелированы. Если это произойдет, будет сложно определить те конкретные переменные, которые способствуют дисперсии зависимой переменной. Мы можем проверить данные для этого с помощью корреляционной матрицы. (Мадугири, дата не указана)
  • Нет автокорреляции. Когда данные получены во времени, мы предполагаем, что последовательные значения компонента возмущения на данный момент независимы в традиционной модели линейной регрессии. Когда это предположение не соблюдается, ситуация называется автокорреляцией. (Мадугири, дата не указана)
  • Неприменимо к выбросам. Значение зависимой переменной не может быть оценено по значению независимой переменной, находящейся за пределами диапазона значений выборки данных. (Мадугири, дата не указана)

Применение линейной регрессии

  • Линии тренда. Линия тренда отражает изменение количественных данных с течением времени (например, ВВП, цены на нефть и т. д.). Эти тенденции обычно подчиняются линейной зависимости. Следовательно, линейная регрессия может применяться для прогнозирования будущих значений. Однако этот метод страдает отсутствием научной обоснованности в тех случаях, когда другие потенциальные изменения могут повлиять на данные.
  • Экономика. Линейная регрессия является преобладающим эмпирическим инструментом в экономике. Например, он используется для прогнозирования потребительских расходов, инвестиций в основной капитал, инвестиций в запасы, закупок экспортной продукции страны, расходов на импорт, спроса на владение ликвидными активами, спроса на рабочую силу и предложения рабочей силы.
  • Финансы. Модель капитальных активов использует линейную регрессию для анализа и количественной оценки систематических рисков инвестиций.
  • Биология. Линейная регрессия моделирует причинно-следственные связи между параметрами биологических систем.

Ссылки

Линейная регрессия (реализация на Python). (2017, 19 марта). Гики для гиков. https://www.geeksforgeeks.org/linear-reгрессия-python-implementation/
Учебное пособие по линейной регрессии. (2020, 4 апреля). Кэггл. https://kaggle.com/code/sudhirnl7/linear-reгрессия-tutorial
Мадугири, Д. (н.д.). Линейная регрессия в машинном обучении [с примерами]. Получено 24 августа 2023 г. из https://www.knowledgehut.com/blog/data-science/linear-reprofit-for-machine-learning
Реми, М. (6 апреля 2021 г.). Как запустить линейную регрессию в Python Scikit-learn. АктивСтате. https://www.activestate.com/resources/quick-reads/how-to-run-linear-rewards-in-python-scikit-learn/