Введение в простую линейную регрессию с примерами

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

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

Цель простой линейной регрессии

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

Что такое коэффициент корреляции?

Коэффициент корреляции — это статистическая мера, которая показывает степень связи между двумя переменными. Он находится в диапазоне от -1 до +1, где -1 указывает на полную отрицательную корреляцию, +1 указывает на полную положительную корреляцию, а 0 указывает на отсутствие корреляции. Коэффициент корреляции можно рассчитать по следующей формуле:

r = (nΣxy — ΣxΣy) / sqrt((nΣx2 — (Σx)2)(nΣy2 — (Σy)2))

где:

  • n - количество точек данных
  • Σxy представляет собой сумму произведений соответствующих значений x и y
  • Σx и Σy — суммы значений x и y
  • Σx2 и Σy2 — суммы квадратов значений x и y

Пример

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

Количество часов обучения (x) Оценка (y) 2 50 3 60 4 70 5 80 6 90 7 100 8 110 9 120 10 130 11 140

Используя формулу для коэффициента корреляции, получаем:

r = (10(1650) – (55)(770)) / sqrt((10(385) – (55)2)(10(12155) – (770)2)) r = 0,9974

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

Что такое переменные?

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

Уравнение простой линейной регрессии

Уравнение простой линейной регрессии имеет вид:

y = mx + c

где:

  • y - зависимая переменная
  • х независимая переменная
  • m - наклон линии наилучшего соответствия
  • c - y-пересечение линии наилучшего соответствия

Наклон линии наилучшего соответствия можно рассчитать по следующей формуле:

m = (nΣxy — ΣxΣy) / (nΣx2 — (Σx)2)

Y-пересечение линии наилучшего соответствия можно рассчитать по следующей формуле:

c = (Σy — mΣx) /n

где:

  • n - количество точек данных
  • Σxy представляет собой сумму произведений соответствующих значений x и y
  • Σx и Σy — суммы значений x и y
  • Σx² и Σy² представляют собой суммы квадратов значений x и y.

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

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

Размер дома (квадратные футы) Цена (INR) 1000 10 00 000 1 200 12 00 000 1 400 14 00 000 1 600 16 00 000 1 800 18 00 000 2 000 20 00 000 2 200 22 00 000 240 0 24 00 000 2 600 26 00 000 2 800 28 00 000

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

m = (nΣxy — ΣxΣy) / (nΣx² — (Σx)²)

где:

  • n — количество точек данных (в данном случае n=10)
  • Σxy представляет собой сумму произведений соответствующих значений x и y
  • Σx и Σy — суммы значений x и y
  • Σx² представляет собой сумму квадратов значений x

Подставив значения из таблицы, получим:

m = (10(66,30,00,000) — (2,10,00,000)(2,10,000)) / (10(1,36,00,000) — (2,10,000)²) m ≈ 1740.46

Далее мы можем рассчитать точку пересечения оси Y линии наилучшего соответствия по формуле:

c = (Σy — mΣx) / n

Подставив значения из таблицы, получим:

c = (16,00,000 — (1740.46)(1400)) / 10 c ≈ 10,73,977.39

Следовательно, уравнение линии регрессии, которое лучше всего соответствует этим данным, имеет вид:

Цена = 1740,46(размер) + 10,73,977,39

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

Цена = 1740,46(1500) + 10 73 977,39 Цена ≈ 25 60 000 индийских рупий

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

import matplotlib.pyplot as plt
import numpy as np

# define the dataset
house_size = [1000, 1200, 1400, 1600, 1800, 2000, 2200, 2400, 2600, 2800]
price = [1000000, 1200000, 1400000, 1600000, 1800000, 2000000, 2200000, 2400000, 2600000, 2800000]

# calculate the regression line equation
n = len(house_size)
x = np.array(house_size)
y = np.array(price)
xy = x * y
x_squared = x ** 2
m = (n * np.sum(xy) - np.sum(x) * np.sum(y)) / (n * np.sum(x_squared) - np.sum(x) ** 2)
c = (np.sum(y) - m * np.sum(x)) / n

# plot the data and regression line
plt.scatter(house_size, price)
plt.plot(house_size, m * x + c, color='red')
plt.xlabel('House size (square feet)')
plt.ylabel('Price (INR)')
plt.title('Regression line of house prices based on size')
plt.show()

# make a prediction using the regression line equation
house_size_pred = 1500
price_pred = m * house_size_pred + c
print(f'Predicted price of a {house_size_pred}-sqft house: {price_pred:.2f} INR')

Вывод

Спасибо

☎️Если у вас проблемы с машинным обучением, глубоким обучением, НЛП, визуализацией данных, компьютерным зрением, распознаванием лиц, Python, большими данными или проектами Django, CodersArts может помочь! Они предлагают экспертную помощь в назначении и услуги по обучению в этих областях, и вы можете найти дополнительную информацию по ссылкам ниже:

Не забудьте подписаться на CodersArts в их социальных сетях, чтобы быть в курсе последних тенденций и советов в этой области:

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

С CodersArts вы сможете вывести свои проекты на новый уровень!

Если вам нужна помощь с какими-либо проектами по машинному обучению, свяжитесь с нами по адресу 📧 [email protected].