Представете си, че имате кола играчка и искате да знаете колко бързо може да се движи. Имате писта, бутнете леко колата играчка и измерете колко стига. Правите това няколко пъти, като го правите по-трудно и всеки път измервате разстоянието, което изминава. Сега имате куп измервания: колко силно сте бутнали колата и колко далеч е стигнала. В тази ситуация линейната регресия намира магическа формула, която ви помага да предвидите колко далеч ще стигне колата, ако знаете колко силно я бутате. Това е като да начертаете най-добрата линия през всичките си измервания, така че да можете да познаете колко далеч ще стигне колата, когато я натиснете по определен начин.

Линейната регресия е алгоритъм за контролирано обучение, използван, когато целевата/зависимата променлива остава действително число. Най-подходящата линия установява връзката между зависимата променлива 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}')

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

  • Линейност: Моделите на моделите на линейна регресия трябва да бъдат линейни, тъй като изходът трябва да има линейна връзка с входните стойности и отговаря само на данни с линейна връзка между двата обекта. (Мадхугири, n.d.)
  • Хомоскедастичност: Хомоскедастичността означава, че стандартното отклонение и дисперсията на остатъците (разлика от (y-yˆ)2 ) трябва да бъдат еднакви за всяка стойност на x. Множествената линейна регресия предполага, че размерът на грешките в остатъците е подобен във всяка точка на линейния модел. Можем да проверим хомоскедастичността с помощта на диаграми на разсейване. (Мадхугири, n.d.)
  • Немултиколинеарност: Данните не трябва да имат мултиколинеарност, което означава, че независимите променливи не трябва да са силно корелирани. Ако това се случи, ще бъде предизвикателство да се идентифицират онези специфични променливи, които допринасят за дисперсията на зависимата променлива. Можем да проверим данните за това с помощта на корелационна матрица. (Мадхугири, n.d.)
  • Без автокорелация: Когато данните са получени във времето, приемаме, че последователните стойности на компонента на смущението са моментно независими в конвенционалния модел на линейна регресия. Когато това предположение не е спазено, ситуацията се нарича автокорелация. (Мадхугири, n.d.)
  • Неприложимо за извънредни стойности: Стойността на зависимата променлива не може да бъде оценена за стойността на независима променлива, която е извън диапазона от стойности в примерните данни. (Мадхугири, n.d.)

Приложение на линейната регресия

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

Референции

Линейна регресия (Имплементация на Python). (2017, 19 март). GeeksforGeeks. https://www.geeksforgeeks.org/linear-regression-python-implementation/
Урок за линейна регресия. (2020 г., 4 април). Kaggle. https://kaggle.com/code/sudhirnl7/linear-regression-tutorial
Madhugiri, D. (n.d.). Линейна регресия в машинното обучение [с примери]. Извлечено на 24 август 2023 г. от https://www.knowledgehut.com/blog/data-science/linear-regression-for-machine-learning
Реми, М. (2021 г., 6 април). Как да стартирате линейни регресии в Python Scikit-learn. ActiveState. https://www.activestate.com/resources/quick-reads/how-to-run-linear-regressions-in-python-scikit-learn/