Найти тему
Data

Линейная регрессия для чайников

Оглавление

Что такое линейная регрессия?

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

Как выглядит линейная регрессия

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

Рассмотрим следующий пример:

Нам даны входные данные по росту и весу определенной выборки людей:

Отобразим эти данные на графике, где за ось Y будет взят вес , а за ось X - рост.

-2

Основная задача при построении линейной регрессии - описать всю совокупность данных одним емким уравнением прямой y = ax + b, которое бы отразило зависимость веса от роста человека. При найденных коэффициентах a и b мы сможем построить таковую на графике

-3

Основной задачей станет лишь нахождение коэффициентов a и b , об этом пойдет речь в дальнейшем.

Метод наименьших квадратов

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

Давайте с вами нарисуем от руки подобную функцию, описывающую рост человека.

-4

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

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

y1 - f(x1) + y2 - f(x2) + y3 - f(x3) ... yi - f(xi)

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

Например, сравнивая рост человека с предположенным нами значением можно сказать , что от перерос это значение на 4 сантиметра или недорос на 2 сантиметра.

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

(y1 - f(x1))^2 + (y2 - f(x2))^2 ... (yi - f(xi))^2

Давайте сделаем эту формулу более компактной записав под значок суммы, а так же мы уже знаем ,что мы будем строить линейный алгоритм, формула которого выглядит как f(xi) = ax+b

Σ(yi - (ax + b)) приведенная сумма будет складывать все элементы последовательности, количество которых мы обзовем буквой n. В дзене очень тяжело работать с математическими формулами а может дело в моем малом опыте работы с ним поэтому сойдемся на том что это сумма с 1 до n элемента во всех последующих формулах.

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

-5

Записав их в систему и найдя значения производных получим это:

-6

Остается лишь разбить сумму отдав их каждому члену и перекинуть -Σxiyi вправо , чтобы получить подобную красоту:

-7

Получив такое выражение не тяжело найти коэффициенты a и b по методу Крамера.

А теперь на конкретном примере

Данные я буду брать по количеству солнечных пятен, собранных NASA, рассматривать буду все в пределах одного месяца, а выполнять всю работу в EXEL.

-8

Тут под столбцом x обозначено количество дней , а y - количество солнечных пятен, замеченных в этот день. Можем сразу вычислить X^2 и X(i)Y(i),а так же их общую сумму для дальнейшей подстановки сего добра в формулу выше.

-9

Подобным образом можно найти коэффициенты b и a , получив формулу линейной регрессии, которая выглядит, как y = - 0,165 x + 17,95.

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

-10

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

-11

Наука
7 млн интересуются