k-tree
Электронный учебник

Линейная регрессия

Из статьи Вы узнаете основы регрессионного анализа: как выбирают регрессионную модель, какие регрессионные модели бывают и для чего вообще нужна эта модель. Также, какие методы определения качества модели используют.

Проблема регрессии

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

Вкус = f(температура, объём воды, соль, ...)

Итак, разберёмся с варкой порции макарон, у Вас набор случайных величин: температура плиты, объём воды, количество соли. Зададимся целью узнать, как количество воды влияет на вкус макарон.

Постановка задачи

Как определить влияние объёма воды на вкус макарон? Необходимо провести ряд экспериментов, в которых каждая варка макарон будет проводиться с разным объёмом воды, но остальные условия (температура и количество соли) будут фиксированы. Зададимся значениями температуры и количеством соли:

Температураt=500°C
Количество соли15 г
Таблица 1. Фиксированные значения для эксперимента

Начнём наши эксперименты для различных объёмов воды, возьмём от 500 мл до 2200 мл, и каждый раз будем пробовать макароны на вкус и запишем все наши результаты:

#Объём водыОценка
1500 мл2
2600 мл3
3700 мл4
4800 мл5
5900 мл6
61000 мл8
71100 мл9
81200 мл13
91300 мл15
101400 мл17
111500 мл22
121600 мл26
131700 мл31
141800 мл40
151900 мл42
162000 мл50
172100 мл65
182200 мл75
Таблица 2. Оценка вкуса макарон в зависимости от объёма воды

Выявление зависимости

Итак, мы оцениваем вкус макарон в зависимости от объёма воды, математически мы изучаем функцию: Вкус = f(Объём). Весь регрессионный анализ заключается в процессе выявления функции f в данной зависимости.

В регрессионном анализе, функции (модели) делятся на два типа: линейные и нелинейные.

Линейная модель
y = a + bx
Нелинейная модель
y = abx + c

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

— Эта функция похожа на линейную!

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

a = -19.5
b = 0.043
Вкус = -19.5 + 0.043x

Затабулируем значения нашей модели:

500 мл 600 мл 700 мл 800 мл 900 мл 1000 мл 1100 мл 1200 мл 1300 мл
2 6.3 10.6 14.9 19.2 23.5 27.8 32.1 36.4
1400 мл 1500 мл 1600 мл 1700 мл 1800 мл 1900 мл 2000 мл 2100 мл 2200 мл
40.7 45 49.3 53.6 57.9 62.2 66.5 70.8 75.1
Таблица 3. Затабулированные значения регрессионной модели

Вот, как это выглядит на графике:

График 1. Линейная регрессионная модель и исходные данные

Получение результата

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

RSS (сумма квадратов отклонений) = (2 - 2)2 + (6.3 - 3)2 + ... + (75.1 - 75)2 = 4921.85
MSE (среднее квадратическое отклонение) = √RSS = 70.16

S (дисперсия) = 16.54

Что делать с этой регрессионной моделью? Регрессионная модель позволяет предсказать, а что будет, например, если мы возьмём 2300 мл, 2400 мл и т.д. не проводя при этом сам эксперимент:

Вкус2300 мл = -19.5 + 0.043· 2300 = 79.4
Вкус2400 мл = -19.5 + 0.043· 2400 = 83.7

И, разумеется, мы можем узнать сколько нужно воды для идеальных макарон:

Водаидеальные макароны = (100-19.5) / 0.043 = 2779 мл

Минимизируем ошибку

Итак, с нами наша модель y = a + bx и реальные значения функции, разница между функцией и моделью - это и есть ошибка, которую мы допускаем в каждом эксперименте. Значит, мы можем построить функцию ошибки, а если у нас есть функция, то мы всегда можем найти её минимум. Этим мы и займёмся, нахождением минимума функции ошибки.

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

Yo - значение из наблюдений (observation), Ym - значение из модели (model)
e = (Yo - Ym)2 = (Yo - a - bx)2
Суммарная ошибка
S = Σe = Σ(Yo - a - bx)2

Функция S - это функция ошибки, которую необходимо минимизировать, она зависит от параметров a и b. Для нахождения минимума функции воспользуемся простым методом - найдём производные по параметрам a и b (здесь мы опустим сложные методы поиска минимума функции):

Производные функции ошибки по параметрам a и b:
dS/da = Σ2(a+bx-y)
dS/db = Σ2(a+bx-y)x
Условие минимума функции:
Σ2(a+bx-y) = 0
Σ2(a+bx-y)x = 0
Упростим, сократим на 2 и разложим скобки (n-количество наблюдений):
na + bΣx = Σy
aΣx + bΣx2 = Σxy

Найдём решение:

Σx = 24 300
Σx2 = 37 650 000
Σy = 433
Σxy = 772 400

18·a + 24300·b = 433
24300·a + 37650000·b = 772400

-3589·a = 101517 ∴ a = -28
b = 0.039

Попробуем нашу новую модель в действии:

График 3. Линейная регрессионная модель урегулированная методом наименьших квадратов, y = -28·x + 0.039
RSS (сумма квадратов отклонений) = (-8.5 - 2)2 + (-4.6 - 3)2 + ... + (57.8 - 75)2 = 1060.25
MSE (среднее квадратическое отклонение) = √RSS = 32.56

S (дисперсия) = 7.67
Вкус2300 мл = -28 + 0.039· 2300 = 61.7
Вкус2400 мл = -28 + 0.039· 2400 = 65.6

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

Скачать статью в формате PDF.

Вам понравилась статья? /

Seen: 3 614

Рейтинг: 5 (11 голосов)