Сумма квадратов ошибок формула


Линейная регрессия используется для поиска линии, которая лучше всего «соответствует» набору данных.

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

1. Общая сумма квадратов (SST) – сумма квадратов разностей между отдельными точками данных (y i ) и средним значением переменной ответа ( y ).

  • SST = Σ(y i – y ) 2

2. Регрессия суммы квадратов (SSR) – сумма квадратов разностей между прогнозируемыми точками данных (ŷ i ) и средним значением переменной ответа ( y ).

  • SSR = Σ(ŷ i – y ) 2

3. Ошибка суммы квадратов (SSE) – сумма квадратов разностей между предсказанными точками данных (ŷ i ) и наблюдаемыми точками данных (y i ).

  • SSE = Σ(ŷ i – y i ) 2

Между этими тремя показателями существует следующая зависимость:

SST = SSR + SSE

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

SSR, SST и R-квадрат

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

Значение для R-квадрата может варьироваться от 0 до 1. Значение 0 указывает, что переменная отклика вообще не может быть объяснена предикторной переменной. Значение 1 указывает, что переменная отклика может быть полностью объяснена без ошибок с помощью переменной-предиктора.

Используя SSR и SST, мы можем рассчитать R-квадрат как:

R-квадрат = SSR / SST

Например, если SSR для данной модели регрессии составляет 137,5, а SST — 156, тогда мы рассчитываем R-квадрат как:

R-квадрат = 137,5/156 = 0,8814

Это говорит нам о том, что 88,14% вариации переменной отклика можно объяснить переменной-предиктором.

Расчет SST, SSR, SSE: пошаговый пример

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

Используя некоторое статистическое программное обеспечение (например, R , Excel , Python ) или даже вручную , мы можем найти, что линия наилучшего соответствия:

Оценка = 66,615 + 5,0769 * (часы)

Как только мы узнаем строку уравнения наилучшего соответствия, мы можем использовать следующие шаги для расчета SST, SSR и SSE:

Шаг 1: Рассчитайте среднее значение переменной ответа.

Среднее значение переменной отклика ( y ) оказывается равным 81 .

Шаг 2: Рассчитайте прогнозируемое значение для каждого наблюдения.

Затем мы можем использовать уравнение наилучшего соответствия для расчета прогнозируемого экзаменационного балла () для каждого учащегося.

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

Оценка = 66,615 + 5,0769*(1) = 71,69 .

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

Шаг 3: Рассчитайте общую сумму квадратов (SST).

Далее мы можем вычислить общую сумму квадратов.

Например, сумма квадратов для первого ученика равна:

(y i – y ) 2 = (68 – 81) 2 = 169 .

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

Сумма квадратов получается 316 .

Шаг 4: Рассчитайте регрессию суммы квадратов (SSR).

Далее мы можем вычислить сумму квадратов регрессии.

Например, сумма квадратов регрессии для первого ученика равна:

(ŷ i – y ) 2 = (71,69 – 81) 2 = 86,64 .

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

Сумма квадратов регрессии оказывается равной 279,23 .

Шаг 5: Рассчитайте ошибку суммы квадратов (SSE).

Далее мы можем вычислить сумму квадратов ошибок.

Например, ошибка суммы квадратов для первого ученика:

(ŷ i – y i ) 2 = (71,69 – 68) 2 = 13,63 .

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

Пример расчета SST, SSR и SSE для линейной регрессии

Мы можем проверить, что SST = SSR + SSE

  • SST = SSR + SSE
  • 316 = 279,23 + 36,77

Мы также можем рассчитать R-квадрат регрессионной модели, используя следующее уравнение:

  • R-квадрат = SSR / SST
  • R-квадрат = 279,23/316
  • R-квадрат = 0,8836

Это говорит нам о том, что 88,36% вариаций в экзаменационных баллах можно объяснить количеством часов обучения.

Дополнительные ресурсы

Вы можете использовать следующие калькуляторы для автоматического расчета SST, SSR и SSE для любой простой линии линейной регрессии:

Калькулятор ТПН
Калькулятор ССР
Калькулятор SSE

Что такое сумма квадратов?

Сумма квадратов (СС) в статистике относится к методу измерения отклонения набора данных от его среднего значения. Другими словами, его выходные данные указывают на интенсивность отклонения наблюдений или измерений от его среднего значения.

В статистике метод SS применяется для оценки соответствия модели. Если значение SS равно нулю, модель идеально подходит. Чем меньше значение SS, тем меньше вариация и тем лучше модель соответствует данным. Чем больше значение SS, тем больше вариация и тем хуже модель соответствует вашим данным.

Оглавление

  • Что такое сумма квадратов?
    • Объяснение суммы квадратов
    • Формула
    • Пример расчета
    • Часто задаваемые вопросы (FAQ)
    • Рекомендуемые статьи
  • Сумма квадратов (SS) — это статистический метод, используемый для измерения отклонения набора данных от его среднего значения.
  • Его вычисление включает в себя вычисление среднего значения наблюдений, нахождение разницы между каждым наблюдением и средним значением, вычисление квадрата каждой разницы и суммы всех полученных квадратов.
  • Более высокое значение SS означает более высокую изменчивость данных по сравнению со средним значением; аналогично низкое значение SS указывает на то, что данные не далеко от среднего значения. Если значение SS равно нулю, модель идеально подходит.
  • Он широко используется в различных областях, таких как бизнес, финансы и инвестиции.

Объяснение суммы квадратов

Метод суммы квадратов (SS) раскрывает общую дисперсию наблюдений или значений зависимой переменной в выборке от среднего значения выборки. Концепция дисперсии важна в статистических методах, анализе и моделировании, особенно в регрессионном анализе. Этот метод широко используется статистиками, учеными, бизнес-аналитиками, финансистами, трейдерами и т. д. Например, трейдеры могут использовать этот метод для оценки движения цены акций вокруг средней цены.

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

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

Существуют разные типы СС. Некоторые из важных типов следующие:

  • Общая сумма квадратов: TSS объясняет разницу между наблюдениями или значениями зависимой переменной и их средним значением.
  • Сумма квадратов регрессии: Это объясняет, насколько хорошо регрессионная модель представляет данные. Более высокое значение указывает на то, что модель плохо соответствует данным, и наоборот.
  • Остаточная сумма квадратов: Он измеряет уровень вариации ошибок моделирования, которые модель не может объяснить. Как правило, более низкое значение указывает на то, что модель регрессии может лучше соответствовать и объяснять данные, и наоборот.

Формула

Формула суммы квадратов в статистике выглядит следующим образом:

Сумма квадратов

В приведенной выше формуле

  • n = количество наблюдений
  • yi= i-е значение в выборке
  • ȳ = среднее значение образца

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

Другие основные формулы включают:

  • В алгебре СС двух значений: a2 + b2 = (a + b)2 − 2ab
  • СС из n натуральных чисел: 12 + 22 + 32 ……. п2 = [n(n + 1)(2n + 1)] / 6

Пример расчета

Биржевые трейдеры и финансовые аналитики часто используют метод SS для изучения изменчивости цен на акции. Чтобы понять пример с суммой квадратов, предположим, что есть акция с ценой закрытия за последние девять дней: 40,50, 41,40, 42,30, 43,20, 41,40, 45,45, 43,20, 40,41, 45,54.

Шаг 1: Рассчитать среднее значение

Среднее значение цен акций = сумма цен акций / общее количество цен акций.

= (40,50 долл. США + 41,40 долл. США + 42,30 долл. США + 43,20 долл. США + 41,40 долл. США + 45,45 долл. США + 43,20 долл. США + 40,41 долл. США + 45,54 долл. США)/9

= 42,6

Шаг 2: Рассчитать отклонение от среднего

40,50 – 42,6 = -2,1

41,40 – 42,6 = -1,2

42,30 – 42,6 = -0,3

43,20 – 42,6 = 0,6

41,40 – 42,6 = -1,2

45,45 – 42,6 = 2,85

43,20 – 42,6 = 0,6

40,41 – 42,6 = -2,19

45,54 – 42,6 = 2,94

Шаг 3: Возведите в квадрат все разности, полученные на шаге 2.

(-2,1)2 = 4,41

(-1,2)2 = 1,44

(-0,3)2 = 0,09

(0,6)2 = 0,36

(-1,2)2 = 1,44

(2,85)2 = 8,12

(0,6)2 = 0,36

(-2,19)2 = 4,79

(2,94)2 = 8,64

Шаг 4: Добавьте квадраты

4,41 + 1,44 + 0,09 + 0,36 + 1,44 + 8,12 + 0,36 + 4,79 + 8,64 = 29,66

Сумма квадратов = 29,66

Часто задаваемые вопросы (FAQ)

Чему равна остаточная сумма квадратов?

RSS – это сумма квадратов остатков. Остатки указывают на разницу между фактическим или измеренным значением и прогнозируемым значением. Он используется для оценки уровня дисперсии остатков регрессионной модели и проверки соответствия модели данным. Он также известен как сумма квадратов невязок (SSR) или сумма квадратов оценок ошибок (SSE).

Какова общая сумма квадратов?

TSS или SST — это сумма квадратов разностей между наблюдениями и средним значением наблюдений.

Как посчитать сумму квадратов?

Этапы расчета следующие:
– Определить количество измерений или наблюдений
— Рассчитать среднее
– Найдите разницу между каждым измерением или наблюдением и средним значением
— Вычислить квадрат каждой разности
— Найдите сумму всех полученных квадратов

Рекомендуемые статьи

Это руководство к тому, что такое сумма квадратов (СС). Мы объясняем его формулу, расчеты, примеры и типы, такие как сумма, регрессия и остаточная сумма квадратов. Вы можете ознакомиться со следующими статьями –

  • R-квадрат
  • Скорректированный R в квадрате
  • Множественная линейная регрессия

Линейная регрессия используется для поиска линии, которая лучше всего «соответствует» набору данных.

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

1. Общая сумма квадратов (SST) – сумма квадратов разностей между отдельными точками данных (y i ) и средним значением переменной ответа ( y ).

  • SST = Σ(y i – y ) 2

2. Регрессия суммы квадратов (SSR) – сумма квадратов разностей между прогнозируемыми точками данных (ŷ i ) и средним значением переменной ответа ( y ).

  • SSR = Σ(ŷ i – y ) 2

3. Ошибка суммы квадратов (SSE) – сумма квадратов разностей между предсказанными точками данных (ŷ i ) и наблюдаемыми точками данных (y i ).

  • SSE = Σ(ŷ i – y i ) 2

Между этими тремя показателями существует следующая зависимость:

SST = SSR + SSE

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

SSR, SST и R-квадрат

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

Значение для R-квадрата может варьироваться от 0 до 1. Значение 0 указывает, что переменная отклика вообще не может быть объяснена предикторной переменной. Значение 1 указывает, что переменная отклика может быть полностью объяснена без ошибок с помощью переменной-предиктора.

Используя SSR и SST, мы можем рассчитать R-квадрат как:

R-квадрат = SSR / SST

Например, если SSR для данной модели регрессии составляет 137,5, а SST — 156, тогда мы рассчитываем R-квадрат как:

R-квадрат = 137,5/156 = 0,8814

Это говорит нам о том, что 88,14% вариации переменной отклика можно объяснить переменной-предиктором.

Расчет SST, SSR, SSE: пошаговый пример

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

Используя некоторое статистическое программное обеспечение (например, R , Excel , Python ) или даже вручную , мы можем найти, что линия наилучшего соответствия:

Оценка = 66,615 + 5,0769 * (часы)

Как только мы узнаем строку уравнения наилучшего соответствия, мы можем использовать следующие шаги для расчета SST, SSR и SSE:

Шаг 1: Рассчитайте среднее значение переменной ответа.

Среднее значение переменной отклика ( y ) оказывается равным 81 .

Шаг 2: Рассчитайте прогнозируемое значение для каждого наблюдения.

Затем мы можем использовать уравнение наилучшего соответствия для расчета прогнозируемого экзаменационного балла () для каждого учащегося.

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

Оценка = 66,615 + 5,0769*(1) = 71,69 .

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

Шаг 3: Рассчитайте общую сумму квадратов (SST).

Далее мы можем вычислить общую сумму квадратов.

Например, сумма квадратов для первого ученика равна:

(y i – y ) 2 = (68 – 81) 2 = 169 .

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

Сумма квадратов получается 316 .

Шаг 4: Рассчитайте регрессию суммы квадратов (SSR).

Далее мы можем вычислить сумму квадратов регрессии.

Например, сумма квадратов регрессии для первого ученика равна:

(ŷ i – y ) 2 = (71,69 – 81) 2 = 86,64 .

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

Сумма квадратов регрессии оказывается равной 279,23 .

Шаг 5: Рассчитайте ошибку суммы квадратов (SSE).

Далее мы можем вычислить сумму квадратов ошибок.

Например, ошибка суммы квадратов для первого ученика:

(ŷ i – y i ) 2 = (71,69 – 68) 2 = 13,63 .

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

Пример расчета SST, SSR и SSE для линейной регрессии

Мы можем проверить, что SST = SSR + SSE

  • SST = SSR + SSE
  • 316 = 279,23 + 36,77

Мы также можем рассчитать R-квадрат регрессионной модели, используя следующее уравнение:

  • R-квадрат = SSR / SST
  • R-квадрат = 279,23/316
  • R-квадрат = 0,8836

Это говорит нам о том, что 88,36% вариаций в экзаменационных баллах можно объяснить количеством часов обучения.

Дополнительные ресурсы

Вы можете использовать следующие калькуляторы для автоматического расчета SST, SSR и SSE для любой простой линии линейной регрессии:

Калькулятор ТПН
Калькулятор ССР
Калькулятор SSE

Все курсы > Оптимизация > Занятие 4 (часть 2)

Во второй части занятия перейдем к практике.

Продолжим работать в том же ноутбуке⧉

Сквозной пример

Данные и постановка задачи

Обратимся к хорошо знакомому нам датасету недвижимости в Бостоне.

boston = pd.read_csv(‘/content/boston.csv’)

При этом нам нужно будет решить две основные задачи:

Задача 1. Научиться оценивать качество модели не только с точки зрения метрики, но и исходя из рассмотренных ранее допущений модели. Эту задачу мы решим в три этапа.

  • Этап 1. Построим базовую (baseline) модель линейной регрессии с помощью класса LinearRegression библиотеки sklearn и оценим, насколько выполняются рассмотренные выше допущения.
  • Этап 2. Попробуем изменить данные таким образом, чтобы модель в большей степени соответствовала этим критериям.
  • Этап 3. Обучим еще одну модель и посмотрим как изменится результат.

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

  • Метод наименьших квадратов
  • Метод градиентного спуска

Разделение выборки

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

Исследовательский анализ данных

Теперь давайте более внимательно посмотрим на имеющиеся у нас данные. Как вы вероятно заметили, признаки в этом датасете количественные, за исключением переменной CHAS.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<class ‘pandas.core.frame.DataFrame’>

RangeIndex: 506 entries, 0 to 505

Data columns (total 14 columns):

#   Column   Non-Null Count  Dtype  

—  ——   —————  ——  

0   CRIM     506 non-null    float64

1   ZN       506 non-null    float64

2   INDUS    506 non-null    float64

3   CHAS     506 non-null    float64

4   NOX      506 non-null    float64

5   RM       506 non-null    float64

6   AGE      506 non-null    float64

7   DIS      506 non-null    float64

8   RAD      506 non-null    float64

9   TAX      506 non-null    float64

10  PTRATIO  506 non-null    float64

11  B        506 non-null    float64

12  LSTAT    506 non-null    float64

13  MEDV     506 non-null    float64

dtypes: float64(14)

memory usage: 55.5 KB

# мы видим, что переменная CHAS категориальная

boston.CHAS.value_counts()

0.0    471

1.0     35

Name: CHAS, dtype: int64

Посмотрим на распределение признаков с помощью boxplots.

plt.figure(figsize = (10, 8))

sns.boxplot(data = boston.drop(columns = [‘CHAS’, ‘MEDV’]))

plt.show()

Посмотрим на распределение целевой переменной.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

def box_density(x):

  # создадим два подграфика

  f, (ax_box, ax_kde) = plt.subplots(nrows = 2, # из двух строк

                                      ncols = 1, # и одного столбца

                                      sharex = True, # оставим только нижние подписи к оси x

                                      gridspec_kw = {‘height_ratios’: (.15, .85)}, # зададим разную высоту строк

                                      figsize = (10,8)) # зададим размер графика

  # в первом подграфике построим boxplot

  sns.boxplot(x = x, ax = ax_box)

  ax_box.set(xlabel = None)

  # во втором — график плотности распределения

  sns.kdeplot(x, fill = True)

  # зададим заголовок и подписи к осям

  ax_box.set_title(‘Распределение переменной’, fontsize = 17)

  ax_kde.set_xlabel(‘Переменная’, fontsize = 15)

  ax_kde.set_ylabel(‘Плотность распределения’, fontsize = 15)

  plt.show()

box_density(boston.iloc[:, 1])

Посмотрим на корреляцию количественных признаков с целевой переменной.

boston.drop(columns = ‘CHAS’).corr().MEDV.to_frame().style.background_gradient()

Используем точечно-бисериальную корреляцию для оценки взамосвязи переменной CHAS и целевой переменной.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

def pbc(continuous, binary):

  # преобразуем количественную переменную в массив Numpy

  continuous_values = np.array(continuous)

  # классы качественной переменной превратим в нули и единицы

  binary_values = np.unique(binary, return_inverse = True)[1]

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

  # в зависимости от класса дихотомической переменной

  group0 = continuous_values[np.argwhere(binary_values == 0).flatten()]

  group1 = continuous_values[np.argwhere(binary_values == 1).flatten()]

  # найдем средние групп,

  mean0, mean1 = np.mean(group0), np.mean(group1)

  # а также длины групп и всего датасета

  n0, n1, n = len(group0), len(group1), len(continuous_values)

  # рассчитаем СКО количественной переменной

  std = continuous_values.std()

  # подставим значения в формулу

  return (mean1 mean0) / std * np.sqrt( (n1 * n0) / (n * (n1)) )

pbc(boston.MEDV, boston.CHAS)

Обработка данных

Пропущенные значения

Посмотрим, есть ли пропущенные значения.

CRIM       0

ZN         0

INDUS      0

CHAS       0

NOX        0

RM         0

AGE        0

DIS        0

RAD        0

TAX        0

PTRATIO    0

B          0

LSTAT      0

MEDV       0

dtype: int64

Выбросы

Удалим выбросы.

from sklearn.ensemble import IsolationForest

clf = IsolationForest(max_samples = 100, random_state = 42)

clf.fit(boston)

boston[‘anomaly’] = clf.predict(boston)

boston = boston[boston.anomaly == 1]

boston = boston.drop(columns = ‘anomaly’)

boston.shape

При удалении выбросов важно помнить, что полное отсутствие вариантивности в данных не позволит выявить взаимосвязи

Масштабирование признаков

Приведем признаки к одному масштабу (целевую переменную трогать не будем).

boston.iloc[:, :1] = (boston.iloc[:, :1] boston.iloc[:, :1].mean()) / boston.iloc[:, :1].std()

Замечу, что метод наименьших квадратов не требует масштабирования признаков, градиентному спуску же напротив необходимо, чтобы все значения находились в одном диапазоне (подробнее в дополнительных материалах).

Кодирование категориальных переменных

Даже после стандартизации переменная CHAS сохранила только два значения.

boston.CHAS.value_counts()

-0.182581    389

5.463391     13

Name: CHAS, dtype: int64

Ее можно не трогать.

Построение модели

Создадим первую пробную (baseline) модель с помощью библиотеки sklearn.

baseline-модель

X = boston.drop(‘MEDV’, axis = 1)

y = boston[‘MEDV’]

from sklearn.linear_model import LinearRegression

model = LinearRegression()

y_pred = model.fit(X, y).predict(X)

Оценка качества

Диагностика модели, метрики качества и функции потерь

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

Функция потерь и метрика качества могут совпадать, а могут и не совпадать. Важно понимать, что у них разное назначение.

  • Функция потерь — это часть алгоритма, нам важно, чтобы эта функция была дифференцируема (у нее была производная)
  • Производная метрики качества нас не интересует. Метрика качества должна быть адекватна решаемой задаче.

MSE, RMSE, MAE, MAPE

MSE и RMSE

Для оценки качества RMSE предпочтительнее, чем MSE, потому что показывает насколько ошибается модель в тех же единицах измерения, что и целевая переменная. Например, если диапазон целевой переменной от 80 до 100, а RMSE 20, то в среднем вы ошибаетесь на 20-25 процентов.

В качестве практики напишем собственную функцию.

# параметр squared = True возвращает MSE

# параметр squared = False возвращает RMSE

def mse(y, y_pred, squared = True):

  mse = ((y y_pred) ** 2).sum() / len(y)

  if squared == True:

    return mse

  else:

    return np.sqrt(mse)

mse(y, y_pred), mse(y, y_pred, squared = False)

(9.980044349414223, 3.1591208190593507)

Сравним с sklearn.

from sklearn.metrics import mean_squared_error

# squared = False дает RMSE

mean_squared_error(y, y_pred, squared = False)

MAE

Приведем формулу.

$$ MAE = frac{sum |y-hat{y}|}{n} $$

Средняя абсолютная ошибка представляет собой среднее арифметическое абсолютной ошибки $varepsilon = |y-hat{y}| $ и использует те же единицы измерения, что и целевая переменная.

def mae(y, y_pred):

  return np.abs(y y_pred).sum() / len(y)

from sklearn.metrics import mean_absolute_error

mean_absolute_error(y, y_pred)

MAE часто используется при оценке качества моделей временных рядов.

MAPE

Средняя абсолютная ошибка в процентах (mean absolute percentage error) по сути выражает MAE в процентах, а не в абсолютных величинах, выражая отклонение как долю от истинных ответов.

$$ MAPE = frac{1}{n} sum vert frac{y-hat{y}}{y} vert $$

Это позволяет сравнивать модели с разными единицами измерения между собой.

def mape(y, y_pred):

  return 1/len(y) * np.abs((y y_pred) / y).sum()

from sklearn.metrics import mean_absolute_percentage_error

mean_absolute_percentage_error(y, y_pred)

Коэффициент детерминации

В рамках вводного курса в ответах на вопросы к занятию по регрессии мы подробно рассмотрели коэффициент детерминации ($R^2$), его связь с RMSE, а также зачем нужен скорректированный $R^2$. Как мы знаем, если использовать, например, класс LinearRegression, то эта метрика содержится в методе .score().

Также можно использовать функцию r2_score() модуля metrics.

from sklearn.metrics import r2_score

r2_score(y, y_pred)

Для скорректированного $R^2$ напишем собственную функцию.

def r_squared(x, y, y_pred):

  r2 = 1 ((y y_pred)** 2).sum()/((y y.mean()) ** 2).sum()

  n, k = x.shape

  r2_adj = 1 ((y y_pred)** 2).sum()/((y y.mean()) ** 2).sum()

  return r2, r2_adj

(0.7965234359550825, 0.7965234359550825)

Диагностика модели

Теперь проведем диагностику модели в соответствии с выдвинутыми выше допущениями.

Анализ остатков и прогнозных значений

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

from scipy.stats import probplot

from statsmodels.graphics.tsaplots import plot_acf

from statsmodels.stats.stattools import durbin_watson

def diagnostics(y, y_pred):

  residuals = y y_pred

  residuals_mean = np.round(np.mean(y y_pred), 3)

  f, ((ax_rkde, ax_prob), (ax_ry, ax_auto), (ax_yy, ax_ykde)) = plt.subplots(nrows = 3,

                                                                             ncols = 2,

                                                                             figsize = (12, 18))

  # в первом подграфике построим график плотности

  sns.kdeplot(residuals, fill = True, ax = ax_rkde)

  ax_rkde.set_title(‘Residuals distribution’, fontsize = 14)

  ax_rkde.set(xlabel = f‘Residuals, mean: {residuals_mean}’)

  ax_rkde.set(ylabel = ‘Density’)

  # во втором график нормальной вероятности остатков

  probplot(residuals, dist = ‘norm’, plot = ax_prob)

  ax_prob.set_title(‘Residuals probability plot’, fontsize = 14)

  # в третьем график остатков относительно прогноза

  ax_ry.scatter(y_pred, residuals)

  ax_ry.set_title(‘Predicted vs. Residuals’, fontsize = 14)

  ax_ry.set(xlabel = ‘y_pred’)

  ax_ry.set(ylabel = ‘Residuals’)

  # автокорреляция остатков

  plot_acf(residuals, lags = 30, ax = ax_auto)

  ax_auto.set_title(‘Residuals Autocorrelation’, fontsize = 14)

  ax_auto.set(xlabel = f‘Lags ndurbin_watson: {durbin_watson(residuals).round(2)}’)

  ax_auto.set(ylabel = ‘Autocorrelation’)

  # на четвертом сравним прогнозные и фактические значения

  ax_yy.scatter(y, y_pred)

  ax_yy.plot([y.min(), y.max()], [y.min(), y.max()], «k—«, lw = 1)

  ax_yy.set_title(‘Actual vs. Predicted’, fontsize = 14)

  ax_yy.set(xlabel = ‘y_true’)

  ax_yy.set(ylabel = ‘y_pred’)

  sns.kdeplot(y, fill = True, ax = ax_ykde, label = ‘y_true’)

  sns.kdeplot(y_pred, fill = True, ax = ax_ykde, label = ‘y_pred’)

  ax_ykde.set_title(‘Actual vs. Predicted Distribution’, fontsize = 14)

  ax_ykde.set(xlabel = ‘y_true and y_pred’)

  ax_ykde.set(ylabel = ‘Density’)

  ax_ykde.legend(loc = ‘upper right’, prop = {‘size’: 12})

  plt.tight_layout()

  plt.show()

Разберем полученную информацию.

  • В целом остатки модели распределены нормально с нулевым средним значением
  • Явной гетероскедастичности нет, хотя мы видим, что дисперсия не всегда равномерна
  • Присутствует умеренная отрицательная корреляция
  • График y_true vs. y_pred показывает насколько сильно прогнозные значения отклоняются от фактических. В идеальной модели (без шума, т.е. без случайных колебаний) точки должны были би стремиться находиться на диагонали, в более реалистичной модели нам бы хотелось видеть, что точки плотно сосредоточены вокруг диагонали.
  • Распределение прогнозных значений в целом повторяет распределение фактических.

Мультиколлинеарность

Отдельно проведем анализ на мультиколлинеарность. Напишем соответствующую функцию.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

def vif(df, features):    

    vif, tolerance = {}, {}

    # пройдемся по интересующим нас признакам

    for feature in features:

        # составим список остальных признаков, которые будем использовать

        # для построения регрессии

        X = [f for f in features if f != feature]

        # поместим текущие признаки и таргет в X и y      

        X, y = df[X], df[feature]

        # найдем коэффициент детерминации

        r2 = LinearRegression().fit(X, y).score(X, y)                

        # посчитаем tolerance

        tolerance[feature] = 1 r2

        # найдем VIF

        vif[feature] = 1 / (tolerance[feature])

    # выведем результат в виде датафрейма

    return pd.DataFrame({‘VIF’: vif, ‘Tolerance’: tolerance})

vif(df = X.drop(‘CHAS’, axis = 1), features = X.drop(‘CHAS’, axis = 1).columns)

Дополнительная обработка данных

Попробуем дополнительно улучшить некоторые из диагностических показателей.

VIF

Уберем признак с наибольшим VIF (RAD) и посмотрим, что получится.

vif(df = X, features = [‘CRIM’,

                        ‘ZN’,

                        ‘INDUS’,

                        ‘CHAS’,

                        ‘NOX’,

                        ‘RM’,

                        ‘AGE’,

                        ‘DIS’,

                        ‘TAX’,

                        ‘PTRATIO’,

                        ‘B’,

                        ‘LSTAT’])

Показатели пришли в норму. Окончательно удалим RAD.

boston.drop(columns = ‘RAD’, inplace = True)

Преобразование данных

Применим преобразование Йео-Джонсона.

from sklearn.preprocessing import PowerTransformer

pt = PowerTransformer()

boston = pd.DataFrame(pt.fit_transform(boston),

                      columns = boston.columns)

Отбор признаков

Посмотрим на линейную корреляцию Пирсона количественных признаков и целевой переменной.

boston_t.drop(columns = ‘CHAS’).corr().MEDV.to_frame().style.background_gradient()

Также рассчитаем точечно-бисериальную корреляцию.

pbc(boston_t.MEDV, boston_t.CHAS)

Удалим признаки с наименьшей корреляцией, а именно ZN, CHAS, DIS и B.

boston.drop(columns = [‘ZN’, ‘CHAS’, ‘DIS’, ‘B’], inplace = True)

Повторное моделирование и диагностика

Повторное моделирование

Выполним повторное моделирование.

X = boston_t.drop(columns = [‘ZN’, ‘CHAS’, ‘DIS’, ‘B’, ‘MEDV’])

y = boston_t.MEDV

from sklearn.linear_model import LinearRegression

model = LinearRegression()

y_pred = model.fit(X, y).predict(X)

Оценка качества и диагностика

Оценим качество. Так как мы преобразовали целевую переменную, показатель RMSE не будет репрезентативен. Воспользуемся MAPE и $R^2$.

(0.7546883769637166, 0.7546883769637166)

Отклонение прогнозного значения от истинного снизилось. $R^2$ немного уменьшился, чтобы бывает, когда мы пытаемся привести модель к соответствию допущениям. Проведем диагностику.

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

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

Коэффициенты

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

model.intercept_, model.coef_

(9.574055157844797e-16,

array([-0.09989392,  0.03965441,  0.1069877 ,  0.23172172, -0.05561128,

        -0.16878987, -0.18057055, -0.49319274]))

Обучение модели

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

Векторизация уравнения

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

$$ y = begin{bmatrix} y_1 y_2 vdots y_n end{bmatrix} X = begin{bmatrix} x_0 & x_1 & ldots & x_j x_0 & x_1 & ldots & x_j vdots & vdots & vdots & vdots x_{0} & x_{1} & ldots & x_{n,j} end{bmatrix}, theta = begin{bmatrix} theta_0 theta_1 vdots theta_n end{bmatrix}, varepsilon = begin{bmatrix} varepsilon_1 varepsilon_2 vdots varepsilon_n end{bmatrix} $$

где n — количество наблюдений, а j — количество признаков.

Обратите внимание, что мы создали еще один столбец данных $ x_0 $, который будем умножать на сдвиг $ theta_0 $. Его мы заполним единицами.

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

$$ y = Xtheta + varepsilon $$

Кроме того, как мы увидим ниже, так нам не придется искать отдельную производную для коэффициента $ theta_0 $.

Схематично для модели с четырьмя наблюдениями (n = 4) и двумя признаками (j = 2) получаются вот такие матрицы.

Функция потерь

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

$$ varepsilon = Xtheta-y $$

При этом опять же просто складывать отклонения или ошибки мы не можем. Положительные и отрицательные значения будут взаимоудалятся. Для решения этой проблемы можно, например, использовать модуль и это приводит нас к абсолютной ошибку или L1 loss.

Абсолютная ошибка, L1 loss

При усреднении на количество наблюдений мы получаем среднюю абсолютную ошибку (mean absolute error, MAE).

$$ MAE = frac{sum{|y-Xtheta|}}{n} = frac{sum{|varepsilon|}}{n} $$

Приведем пример такой функции на Питоне.

def L1(y_true, y_pred):

    return np.sum(np.abs(y_true y_pred)) / y_true.size

Помимо модуля ошибку можно возводить в квадрат.

Квадрат ошибки, L2 loss

В этом случай говорят про сумму квадратов ошибок (sum of squared errors, SSE) или сумму квадратов остатков (sum of squared residuals, SSR или residual sum of squares, RSS).

$$ SSE = sum (y-Xtheta)^2 $$

Как мы уже говорили, на практике вместо SSE часто используется MSE, или вернее half MSE для удобства нахождения производной.

$$ MSE = frac{1}{2n} sum (y-theta X)^2 $$

Ниже код на Питоне.

def L2(y_true, y_pred):

  return np.sum((y_true y_pred) ** 2) / y_true.size

На практике у обеих функций есть сильные и слабые стороны. Рассмотрим L1 loss (MAE) и L2 loss (MSE) на графике.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

# для построения графиков мы используем x вместо y_true, y_pred

# в качестве входящего значения

def mse(x):

  return x ** 2

def mae(x):

  return np.abs(x)

plt.figure(figsize = (10, 8))

x_vals = np.arange(3, 3, 0.01)

plt.plot(x_vals, mae(x_vals), label = ‘MAE’)

plt.plot(x_vals, mse(x_vals), label = ‘MSE’)

plt.legend(loc = ‘upper center’, prop = {‘size’: 14})

plt.grid()

plt.show()

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

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

Функция Хьюбера

Рассмотрим функцию Хьюбера (Huber loss), которая объединяет сильные стороны вышеупомянутых функций и при этом лишена их недостатков. Посмотрим на формулу.

$$ L_{delta}= left{begin{matrix} frac{1}{2}(y-hat{y})^{2} & if | y-hat{y} | < delta delta (|y-hat{y}|-frac1 2 delta) & otherwise end{matrix}right. $$

Представим ее на графике.

plt.figure(figsize = (10, 8))

def huber(x, delta = 1.):

  huber_mse = 0.5 * np.square(x)

  huber_mae = delta * (np.abs(x) 0.5 * delta)

  return np.where(np.abs(x) <= delta, huber_mse, huber_mae)

x_vals = np.arange(3, 3, 0.01)

plt.plot(x_vals, mae(x_vals), label = ‘MAE’)

plt.plot(x_vals, mse(x_vals), label = ‘MSE’)

plt.plot(x_vals, huber(x_vals, delta = 2), label = ‘Huber’)

plt.legend(loc = ‘upper center’, prop = {‘size’: 14})

plt.grid()

plt.show()

Также приведем код этой функции.

def huber(y_pred, y_true, delta = 1.0):

  # пропишем обе части функции потерь

  huber_mse = 0.5 * (y_true y_pred) ** 2

  huber_mae = delta * (np.abs(y_true y_pred) 0.5 * delta)

  # выберем одну из них в зависимости от дельта

  return np.where(np.abs(y_true y_pred) <= delta, huber_mse, huber_mae)

На сегодняшнем занятии мы, как и раньше, в качестве функции потерь используем MSE.

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

Нормальные уравнения

Для множественной линейной регрессии коэффициенты находятся по следующей формуле

$$ theta = (X^TX)^{-1}X^Ty $$

Давайте разбираться, как мы к ней пришли. Сумма квадратов остатков (SSE) можно переписать как произведение вектора $ hat{varepsilon} $ на самого себя, то есть $ SSE = varepsilon^{T}varepsilon$. Помня, что $varepsilon = y-Xtheta $ получаем (не забывая транспонировать)

$$ (y-Xtheta)^T(y-Xtheta) $$

Раскрываем скобки

$$ y^Ty-y^T(Xtheta)-(Xtheta)^Ty+(Xtheta)^T(Xtheta) $$

Заметим, что $A^TB = B^TA$, тогда

$$ y^Ty-(Xtheta)^Ty-(Xtheta)^Ty+(Xtheta)^T(Xtheta)$$

$$ y^Ty-2(Xtheta)^Ty+(Xtheta)^T(Xtheta) $$

Вспомним, что $(AB)^T = A^TB^T$, тогда

$$ y^Ty-2theta^TX^Ty+theta^TX^TXtheta $$

Теперь нужно найти частные производные этих функций

$$ nabla_{theta} J(theta) = y^Ty-2theta^TX^Ty+theta^TX^TXtheta $$

После дифференцирования мы получаем следующую производную

$$ -2X^Ty+2X^TXtheta $$

Как мы помним, оптимум функции находится там, где производная равна нулю.

$$ -2X^Ty+2X^TXtheta = 0 $$

$$ -X^Ty+X^TXtheta = 0 $$

$$ X^TXtheta = X^Ty $$

Выражение выше называется нормальным уравнением (normal equation). Решив его для $theta$ мы найдем аналитическое решение минимизации суммы квадратов отклонений.

$$ theta = (X^TX)^{-1}X^Ty $$

Замечу только, что по теореме Гаусса-Маркова, оценка через МНК является наиболее оптимальной (обладающей наименьшей дисперсией) среди всех методов построения модели.

Код на Питоне

Перейдем к созданию класса линейной регрессии наподобие LinearRegression библиотеки sklearn. Вначале напишем функцию гипотезы (т.е. функцию самой модели), снабдив ее функцией, которая добавляет столбец из единиц к признакам.

$$ h_{theta}(x) = theta X $$

def add_ones(x):

  # важно! изменяет исходный датафрейм

  return x.insert(0,‘x0’, np.ones(x.shape[0]))

def h(x, theta):

  x = x.copy()

  add_ones(x)

  return np.dot(x, theta)

Перейдем к функции, отвечающей за обучение модели.

$$ theta = (X^TX)^{-1}X^Ty $$

# строчную `x` используем внутри функций и методов класса

# заглавную `X` вне функций и методов

def fit(x, y):

  x = x.copy()

  add_ones(x)

  xT = x.transpose()

  inversed = np.linalg.inv(np.dot(xT, x))

  thetas = inversed.dot(xT).dot(y)

  return thetas

Обучим модель и выведем коэффициенты.

thetas = fit(X, y)

thetas[0], thetas[1:]

(9.3718435789647e-16,

array([-0.09989392,  0.03965441,  0.1069877 ,  0.23172172, -0.05561128,

        -0.16878987, -0.18057055, -0.49319274]))

Примечание. Замечу, что не все матрицы обратимы, в этом случае они называются вырожденными (non-invertible, degenerate). В этом случае можно найти псевдообратную матрицу (pseudoinverse). Для этого в Numpy есть функция np.linalg.pinv().

Сделаем прогноз.

y_pred = h(X, thetas)

y_pred[:5]

array([1.24414666, 0.55999778, 1.48103299, 1.49481605, 1.21342788])

Создание класса

Объединим код в класс.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

class ols():

  def __init__(self):

    self.thetas = None

  def add_ones(self, x):

    return x.insert(0,‘x0’, np.ones(x.shape[0]))

  def fit(self, x, y):

    x = x.copy()

    self.add_ones(x)

    xT = x.T

    inversed = np.linalg.inv(np.dot(xT, x))

    self.thetas = inversed.dot(xT).dot(y)

  def predict(self, x):

    x = x.copy()

    self.add_ones(x)

    return np.dot(x, self.thetas)

Создадим объект класса и обучим модель.

model = ols()

model.fit(X, y)

Выведем коэффициенты.

model.thetas[0], model.thetas[1:]

(9.3718435789647e-16,

array([-0.09989392,  0.03965441,  0.1069877 ,  0.23172172, -0.05561128,

        -0.16878987, -0.18057055, -0.49319274]))

Сделаем прогноз.

y_pred = model.predict(X)

y_pred[:5]

array([1.24414666, 0.55999778, 1.48103299, 1.49481605, 1.21342788])

Оценка качества

Оценим качество через MAPE и $R^2$.

(0.7546883769637167, 0.7546883769637167)

Мы видим, что результаты аналогичны.

Метод градиентного спуска

В целом с этим методом мы уже хорошо знакомы. В качестве упражнения давайте реализуем этот алгоритм на Питоне для многомерных данных.

Нахождение градиента

Покажем расчет градиента на схеме.

В данном случае мы берем датасет из четырех наблюдений и двух признаков ($x_1$ и $x_2$) и соответственно используем три коэффициента ($theta_0, theta_1, theta_2$).

Пошаговое построение модели

Начнем с функции гипотезы.

$$ h_{theta}(x) = theta X $$

def h(x, thetas):

  return np.dot(x, thetas)

Объявим функцию потерь.

$$ J({theta_j}) = frac{1}{2n} sum (y-theta X)^2 $$

def objective(x, y, thetas, n):

  return np.sum((y h(x, thetas)) ** 2) / (2 * n)

Объявим функцию для расчета градиента.

$$ frac{partial}{partial theta_j} J(theta) = -x_j(y — Xtheta) times frac{1}{n} $$

где j — индекс признака.

def gradient(x, y, thetas, n):

  return np.dot(x.T, (y h(x, thetas))) / n

Напишем функцию для обучения модели.

$$ theta_j := theta_j-alpha frac{partial}{partial theta_j} J(theta) $$

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

def fit(x, y, iter = 20000, learning_rate = 0.05):

  x, y = x.copy(), y.copy()

  # функцию add_ones() мы написали раньше

  add_ones(x)

  thetas, n = np.zeros(x.shape[1]), x.shape[0]

  loss_history = []

  for i in range(iter):

    loss_history.append(objective(x, y, thetas, n))

    grad = gradient(x, y, thetas, n)

    thetas -= learning_rate * grad

  return thetas, loss_history

Обучим модель, выведем коэффициенты и достигнутый (минимальный) уровень ошибки.

thetas, loss_history = fit(X, y, iter = 50000, learning_rate = 0.05)

thetas[0], thetas[1:], loss_history[1]

(9.493787734953824e-16,

array([-0.09989392,  0.03965441,  0.1069877 ,  0.23172172, -0.05561128,

        -0.16878987, -0.18057055, -0.49319274]),

0.1226558115181417)

Полученный результат очень близок к тому, что было найдено методом наименьших квадратов.

Прогноз

Сделаем прогноз.

def predict(x, thetas):

  x = x.copy()

  add_ones(x)

  return np.dot(x, thetas)

y_pred = predict(X, thetas)

y_pred[:5]

array([1.24414666, 0.55999778, 1.48103299, 1.49481605, 1.21342788])

Создание класса

Объединим написанные функции в класс.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

class gd():

  def __init__(self):

    self.thetas = None

    self.loss_history = []

  def add_ones(self, x):

    return x.insert(0,‘x0’, np.ones(x.shape[0]))

  def objective(self, x, y, thetas, n):

    return np.sum((y self.h(x, thetas)) ** 2) / (2 * n)

  def h(self, x, thetas):

    return np.dot(x, thetas)

  def gradient(self, x, y, thetas, n):

    return np.dot(x.T, (y self.h(x, thetas))) / n

  def fit(self, x, y, iter = 20000, learning_rate = 0.05):

    x, y = x.copy(), y.copy()

    self.add_ones(x)

    thetas, n = np.zeros(x.shape[1]), x.shape[0]

    # объявляем переменную loss_history (отличается от self.loss_history (?))

    loss_history = []

    for i in range(iter):

      loss_history.append(self.objective(x, y, thetas, n))

      grad = self.gradient(x, y, thetas, n)

      thetas -= learning_rate * grad

    # записываем обратно во внутренние атрибуты, чтобы передать методу .predict()

    self.thetas = thetas

    self.loss_history = loss_history

  def predict(self, x):

    x = x.copy()

    self.add_ones(x)

    return np.dot(x, self.thetas)

Создадим объект класса, обучим модель, выведем коэффициенты и сделаем прогноз.

model = gd()

model.fit(X, y, iter = 50000, learning_rate = 0.05)

model.thetas[0], model.thetas[1:], model.loss_history[1]

(9.493787734953824e-16,

array([-0.09989392,  0.03965441,  0.1069877 ,  0.23172172, -0.05561128,

        -0.16878987, -0.18057055, -0.49319274]),

0.1226558115181417)

y_pred = model.predict(X)

y_pred[:5]

array([1.24414666, 0.55999778, 1.48103299, 1.49481605, 1.21342788])

Оценка качества

(0.7546883769637167, 0.7546883769637167)

Теперь рассмотрим несколько дополнительных соображений, касающихся построения модели линейной регрессии.

Диагностика алгоритма

Работу алгоритма можно проверить с помощью кривой обучения (learning curve).

  • Ошибка постоянно снижается
  • Алгоритм остановится, после истечения заданного количества итераций
  • Можно задать пороговое значение, после которого он остановится (например, $10^{-1}$)

Построим кривую обучения.

plt.plot(loss_history)

plt.show()

plt.plot(loss_history[:100])

plt.show()

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

Подведем итог

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

Кроме того, мы узнали как изнутри устроены метод наименьших квадратов и метод градиентного спуска и построили соответствующие модели на Питоне.

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

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

Дополнительные материалы к занятию.

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

Используя
формулу отклонений и отнимая

от обеих частей равенства, имеем
следующее.

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

или

где

Здесь
SS
обозначает «сумма квадратов» (Sum
of Squares), a T, R, Е— соответственно «общая»
(Total), «регрессионная» (Regression) и
«ошибки» (Error). С этими суммами
квадратов связаны следующие величины
степеней свободы.

Если
линейной связи нет, Y
не зависит от X
и дисперсия Y
оценивается значением выборочной
дисперсии.

Если
связь между X и Y
имеется, она может влиять на некоторые
разности значений Y.

Регрессионная
сумма квадратов, SSR, измеряет часть
дисперсии Y,
объясняемую линейной зависимостью.
Сумма квадратов ошибок, SSE
— это оставшаяся часть дисперсии Y,
или дисперсия Y,
не объясненная линейной зависимостью.

2.5 Коэффициент детерминации

Как
было указано в предыдущем разделе,
показатель SST измеряет общую вариацию
относительно Y,
а ее часть, объясненная изменением X,
соответствует SSR. Оставшаяся, или
необъясненная вариация, соответствует
SSE. Отношение объясненной вариации к
общей называется выборочным коэффициентом
детерминации и обозначается

Коэффициент
детерминации измеряет долю изменчивости
Y,
которую можно объяснить с помощью
информации об изменчивости (разнице
значений) независимой переменной X.

В
случае прямолинейной регрессии
коэффициент детерминации

равен квадрату коэффициента корреляции
.

В
регрессионном анализе коэффициенты

и

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

Коэффициент
детерминации

измеряет силу взаимосвязи между Y и X
иначе, чем коэффициент корреляции
.
Значение

измеряет долю изменчивости Y, объясненную
разницей значений X. Эту полезную
интерпретацию можно обобщить на
взаимосвязь между Y и более чем одной
переменной X.

2.6 Проверка гипотез

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

,

Если
эта гипотеза справедлива, в генеральной
совокупности нет связи между значениями
X и Y. Если мы не можем опровергнуть
гипотезу, то, несмотря на ненулевое
значение вычисленного по выборке
углового коэффициента регрессионной
прямой, мы не имеем оснований гарантированно
утверждать, что значения X
и Y
взаимозависимы. Иными словами, нельзя
исключить возможность того, что
регрессионная прямая совокупности
горизонтальна.

Если
гипотеза

верна, проверочная статистика t со
значением

имеет t-распределение с количеством
степеней свободы df = n-2.
Здесь оценка стандартного отклонения
(или стандартная ошибка) равна

Для
выборки очень большого объема можно
отклонить гипотезу

и заключить, что между X и Y
есть линейная связь даже в тех случаях,
когда значение

мало (например, 10%). Аналогично для малых
выборок и очень большого значения

(например, 95%) можно сделать вывод, что
регрессионная зависимость имеет место.
Малое значение коэффициента детерминации

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

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

Еще
один способ проверки гипотезы

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

истинна, отношение

имеет
F-распределение со степенями свободы
df= 1, n-2.
Если гипотеза

истинна, каждая из величин MSR и MSE будет
оценкой
,
дисперсии слагаемого ошибки
в
статистической модели прямолинейной
регрессии. С другой стороны, если верна
гипотеза
,
числитель в отношении F стремится стать
большим, чем знаменатель. Большое
значение F согласуется с истинностью
альтернативной гипотезы.

Для
модели прямолинейной регрессии проверка
гипотезы

при альтернативе

основывается на отношении

с df= 1, n-2.
При уровне значимости

область отклонения гипотезы:.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
Часть серии по
Регрессивный анализ
Линейная регрессия.svg
Модели
  • Линейная регрессия
  • Простая регрессия
  • Полиномиальная регрессия
  • Общая линейная модель
  • Обобщенная линейная модель
  • Дискретный выбор
  • Биномиальная регрессия
  • Бинарная регрессия
  • Логистическая регрессия
  • Полиномиальный логит
  • Смешанный логит
  • Пробит
  • Полиномиальный пробит
  • Заказал логит
  • Заказал пробит
  • Пуассон
  • Многоуровневая модель
  • Фиксированные эффекты
  • Случайные эффекты
  • Линейная модель смешанных эффектов
  • Нелинейная модель смешанных эффектов
  • Нелинейная регрессия
  • Непараметрический
  • Полупараметрический
  • Крепкий
  • Квантиль
  • Изотонический
  • Основные компоненты
  • Наименьший угол
  • Местный
  • Сегментированный
  • Ошибки в переменных
Оценка
  • Наименьших квадратов
  • Линейный
  • Нелинейный
  • Обычный
  • Взвешенный
  • Обобщенный
  • Частичное
  • Общий
  • Неотрицательный
  • Регрессия хребта
  • Регулярный
  • Наименьшие абсолютные отклонения
  • Итеративно переназначенный
  • Байесовский
  • Байесовский многомерный
Фон
  • Проверка регрессии
  • Средний и прогнозируемый ответ
  • Ошибки и остатки
  • Доброту соответствия
  • Студентизованный остаток
  • Теорема Гаусса – Маркова
  • Приложения Nuvola edu Mathematics blue-p.svg Математический портал

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

Вступление

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

А статистическая ошибка (или же беспокойство) — это величина, на которую наблюдение отличается от ожидаемое значение, последнее основано на численность населения из которого статистическая единица была выбрана случайным образом. Например, если средний рост среди 21-летних мужчин составляет 1,75 метра, а рост одного случайно выбранного мужчины — 1,80 метра, то «ошибка» составляет 0,05 метра; если рост случайно выбранного мужчины составляет 1,70 метра, то «ошибка» составляет -0,05 метра. Ожидаемое значение, являющееся иметь в виду всего населения, обычно не наблюдается, и, следовательно, статистическая ошибка также не может быть обнаружена.

А остаточный (или подходящее отклонение), с другой стороны, является наблюдаемым оценивать ненаблюдаемой статистической ошибки. Рассмотрим предыдущий пример с ростом мужчин и предположим, что у нас есть случайная выборка п люди. В выборочное среднее может служить хорошей оценкой численность населения иметь в виду. Тогда у нас есть:

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

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

Можно стандартизировать статистические ошибки (особенно нормальное распределение ) в z-оценка (или «стандартная оценка») и стандартизируйте остатки в т-статистический, или в более общем смысле стьюдентизированные остатки.

В одномерных распределениях

Если предположить нормально распределенный совокупность со средними μ и стандартное отклонение σ, и выбираем индивидуумов независимо, то имеем

X_1, точки, X_n sim N ( mu, sigma ^ 2) ,

и выборочное среднее

overline {X} = {X_1 + cdots + X_n over n}

случайная величина, распределенная таким образом, что:

{ displaystyle { overline {X}} sim N left ( mu, { frac { sigma ^ {2}} {n}} right).}

В статистические ошибки тогда

e_ {i} = X_ {i} - mu, ,

с ожидал значения нуля,[1] тогда как остатки находятся

r_ {i} = X_ {i} - overline {X}.

Сумма квадратов статистические ошибки, деленное на σ2, имеет распределение хи-квадрат с п степени свободы:

{ frac 1 { sigma ^ {2}}} sum _ {{i = 1}} ^ {n} e_ {i} ^ {2} sim chi _ {n} ^ {2}.

Однако это количество не наблюдается, так как среднее значение для населения неизвестно. Сумма квадратов остатки, с другой стороны, наблюдается. Частное этой суммы по σ2 имеет распределение хи-квадрат только с п — 1 степень свободы:

{ frac 1 { sigma ^ {2}}} sum _ {{i = 1}} ^ {n} r_ {i} ^ {2} sim chi _ {{n-1}} ^ {2 }.

Эта разница между п и п — 1 степень свободы дает Поправка Бесселя для оценки выборочная дисперсия популяции с неизвестным средним и неизвестной дисперсией. Коррекция не требуется, если известно среднее значение для генеральной совокупности.

Примечательно, что сумма квадратов остатков и средние выборочные значения могут быть показаны как независимые друг от друга, используя, например, Теорема Басу. Этот факт, а также приведенные выше нормальное распределение и распределение хи-квадрат составляют основу расчетов, включающих t-статистика:

{ displaystyle T = { frac {{ overline {X}} _ {n} - mu _ {0}} {S_ {n} / { sqrt {n}}}},}

куда { displaystyle { overline {X}} _ {n} - mu _ {0}} представляет ошибки, S_ {n} представляет собой стандартное отклонение выборки для выборки размера п, и неизвестно σ, а член знаменателя S_n / sqrt n учитывает стандартное отклонение ошибок согласно:[2]

{ displaystyle operatorname {Var} ({ overline {X}} _ {n}) = { frac { sigma ^ {2}} {n}}}

Распределения вероятностей числителя и знаменателя по отдельности зависят от значения ненаблюдаемого стандартного отклонения совокупности σ, но σ появляется как в числителе, так и в знаменателе и отменяется. Это удачно, потому что это означает, что даже если мы не знаемσ, мы знаем распределение вероятностей этого частного: оно имеет Распределение Стьюдента с п — 1 степень свободы. Поэтому мы можем использовать это частное, чтобы найти доверительный интервал заμ. Эту t-статистику можно интерпретировать как «количество стандартных ошибок от линии регрессии».[3]

Регрессии

В регрессивный анализ, различие между ошибки и остатки тонкий и важный, и ведет к концепции стьюдентизированные остатки. При наличии ненаблюдаемой функции, которая связывает независимую переменную с зависимой переменной — скажем, линии — отклонения наблюдений зависимой переменной от этой функции являются ненаблюдаемыми ошибками. Если запустить регрессию на некоторых данных, то отклонения наблюдений зависимой переменной от приспособленный функции — остатки. Если применима линейная модель, диаграмма рассеяния остатков, построенная против независимой переменной, должна быть случайной около нуля без тенденции к остаткам.[2] Если данные демонстрируют тенденцию, регрессионная модель, вероятно, неверна; например, истинная функция может быть квадратичным полиномом или полиномом более высокого порядка. Если они случайны или не имеют тенденции, но «разветвляются» — они демонстрируют явление, называемое гетероскедастичность. Если все остатки равны или не разветвляются, они демонстрируют гомоскедастичность.

Однако возникает терминологическая разница в выражении среднеквадратичная ошибка (MSE). Среднеквадратичная ошибка регрессии — это число, вычисляемое из суммы квадратов вычисленных остатки, а не ненаблюдаемые ошибки. Если эту сумму квадратов разделить на п, количество наблюдений, результат — это среднее квадратов остатков. Поскольку это пристрастный Для оценки дисперсии ненаблюдаемых ошибок смещение устраняется путем деления суммы квадратов остатков на df = п − п — 1 вместо п, куда df это количество степени свободы (п минус количество оцениваемых параметров (без учета точки пересечения) p — 1). Это формирует несмещенную оценку дисперсии ненаблюдаемых ошибок и называется среднеквадратической ошибкой.[4]

Другой метод вычисления среднего квадрата ошибки при анализе дисперсии линейной регрессии с использованием техники, подобной той, что использовалась в ANOVA (они такие же, потому что ANOVA — это тип регрессии), сумма квадратов остатков (иначе говоря, сумма квадратов ошибки) делится на степени свободы (где степени свободы равны п − п — 1, где п — количество параметров, оцениваемых в модели (по одному для каждой переменной в уравнении регрессии, не включая точку пересечения). Затем можно также вычислить средний квадрат модели, разделив сумму квадратов модели за вычетом степеней свободы, которые представляют собой просто количество параметров. Затем значение F можно рассчитать, разделив средний квадрат модели на средний квадрат ошибки, и затем мы можем определить значимость (вот почему вы хотите, чтобы средние квадраты начинались с).[5]

Однако из-за поведения процесса регрессии распределения остатков в разных точках данных (входной переменной) может отличаться даже если сами ошибки одинаково распределены. Конкретно в линейная регрессия где ошибки одинаково распределены, вариативность остатков входных данных в середине области будет выше чем изменчивость остатков на концах области:[6] линейные регрессии лучше подходят для конечных точек, чем средние. Это также отражено в функции влияния различных точек данных на коэффициенты регрессии: конечные точки имеют большее влияние.

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

Другое использование слова «ошибка» в статистике

Термин «ошибка», как обсуждалось в предыдущих разделах, используется в смысле отклонения значения от гипотетического ненаблюдаемого значения. По крайней мере, два других использования также встречаются в статистике, оба относятся к наблюдаемым ошибкам прогнозирования:

Средняя квадратичная ошибка или же среднеквадратичная ошибка (MSE) и Средняя квадратическая ошибка (RMSE) относятся к количеству, на которое значения, предсказанные оценщиком, отличаются от оцениваемых количеств (обычно за пределами выборки, на основе которой была оценена модель).

Сумма квадратов ошибок (SSE или же SSе), обычно сокращенно SSE или SSе, относится к остаточная сумма квадратов (сумма квадратов остатков) регрессии; это сумма квадратов отклонений фактических значений от прогнозируемых значений в пределах выборки, используемой для оценки. Это также называется оценкой наименьших квадратов, когда коэффициенты регрессии выбираются таким образом, чтобы сумма квадратов была минимальной (т. Е. Ее производная равна нулю).

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

Смотрите также

  • Абсолютное отклонение
  • Консенсус-прогнозы
  • Обнаружение и исправление ошибок
  • Объясненная сумма квадратов
  • Инновации (обработка сигналов)
  • Неподходящая сумма квадратов
  • Допустимая погрешность
  • Средняя абсолютная ошибка
  • Ошибка наблюдения
  • Распространение ошибки
  • Вероятная ошибка
  • Случайные и систематические ошибки
  • Разбавление регрессии
  • Среднеквадратичное отклонение
  • Ошибка выборки
  • Стандартная ошибка
  • Студентизованный остаток
  • Ошибки типа I и типа II

Рекомендации

  1. ^ Уэзерилл, Дж. Барри. (1981). Промежуточные статистические методы. Лондон: Чепмен и Холл. ISBN  0-412-16440-Х. OCLC  7779780.
  2. ^ а б Современное введение в вероятность и статистику: понимание, почему и как. Деккинг, Мишель, 1946-. Лондон: Спрингер. 2005 г. ISBN  978-1-85233-896-1. OCLC  262680588.CS1 maint: другие (связь)
  3. ^ Брюс, Питер С., 1953- (2017-05-10). Практическая статистика для специалистов по данным: 50 основных концепций. Брюс, Эндрю, 1958- (Первое изд.). Севастополь, Калифорния. ISBN  978-1-4919-5293-1. OCLC  987251007.CS1 maint: несколько имен: список авторов (связь)
  4. ^ Steel, Robert G.D .; Торри, Джеймс Х. (1960). Принципы и процедуры статистики с особым акцентом на биологические науки. Макгроу-Хилл. п.288.
  5. ^ Зельтерман, Даниэль (2010). Прикладные линейные модели с SAS ([Online-Ausg.]. Ред.). Кембридж: Издательство Кембриджского университета. ISBN  9780521761598.
  6. ^ «7.3: Типы выбросов в линейной регрессии». Статистика LibreTexts. 2013-11-21. Получено 2019-11-22.
  • Кук, Р. Деннис; Вайсберг, Сэнфорд (1982). Остатки и влияние на регресс (Ред. Ред.). Нью-Йорк: Чепмен и Холл. ISBN  041224280X. Получено 23 февраля 2013.
  • Кокс, Дэвид Р.; Снелл, Э. Джойс (1968). «Общее определение остатков». Журнал Королевского статистического общества, серия B. 30 (2): 248–275. JSTOR  2984505.
  • Вайсберг, Сэнфорд (1985). Прикладная линейная регрессия (2-е изд.). Нью-Йорк: Вили. ISBN  9780471879572. Получено 23 февраля 2013.
  • «Ошибки, теория», Энциклопедия математики, EMS Press, 2001 [1994]

внешняя ссылка

  • СМИ, связанные с Ошибки и остатки в Wikimedia Commons

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

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

  • Контролируемый алгоритм ML: Те алгоритмы, которые используют помеченные данные, известны как контролируемые алгоритмы ml. Контролируемые алгоритмы ml широко используются для двух задач: классификации и регрессии.
  • Классификация: Когда задача состоит в том, чтобы классифицировать объекты выборки по определенным категориям (целевая переменная), тогда это называется классификацией. Например, определение того, является ли электронное письмо спамом или нет.
  • Регрессия: когда задача состоит в том, чтобы предсказать непрерывную переменную (целевую переменную), тогда это называется регрессией. Например, прогнозирование цен на жилье.
  • Неконтролируемый алгоритм ML: те алгоритмы, которые используют немаркированные данные, известны как неконтролируемые алгоритмы ml. Для кластеризации используется неконтролируемый алгоритм.
  • Кластеризация: задача поиска групп в заданных немаркированных данных известна как кластеризация.
  • Ошибка: разница между фактическим и прогнозируемым значением.
  • Градиентный спуск: механизм обновления параметров модели таким образом, чтобы генерировать минимальное значение функции ошибки.

Что такое линейная регрессия в машинном обучении?

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

Типы линейной регрессии:

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

Линейная регрессия известна как простая линейная регрессия, когда прогнозирование выходного значения выполняется с использованием одной входной функции. Мы можем провести линию между зависимыми и независимыми переменными в 2D-пространстве, когда задан один входной признак. здесь b0 — точка пересечения, b1 — коэффициент, x1, x2,…, xn — входные признаки, а y — выходная переменная.

Множественная линейная регрессия:

Линейная регрессия известна как множественная линейная регрессия, когда прогнозирование выходной переменной выполняется с использованием нескольких входных признаков. Мы можем нарисовать плоскость между зависимой и независимой переменными в 3D-пространстве, когда заданы только два входных объекта. В более высоких измерениях визуализация становится затруднительной, но интуиция заключается в том, чтобы найти гиперплоскость в более высоких измерениях. здесь b0 — это перехват, а b1, b2, b3, ......., bn-1, bn известны как коэффициенты, а x1, x2,..., xn известны как входные характеристики, а y — переменная результата.

К этому моменту мы поняли, что линейная регрессия пытается построить линейную границу, но как она это делает?

Как он найдет идеальную линию, которая разделяет данные два класса?

Как указано в уравнении, b0 известен как перехват, а b1, b2,...., bn известны как коэффициенты линейной регрессии, и теперь цель состоит в том, чтобы найти ту линейную границу, которая минимизирует функцию ошибки. Функция ошибки представляет собой квадрат суммы разностей между прогнозируемыми и фактическими значениями целевой переменной. Если мы не сведем ошибку в квадрат, то положительные и отрицательные моменты будут компенсировать друг друга.

Нам нужно найти коэффициенты и перехваты для линейной регрессии таким образом, чтобы сумма квадратов ошибок (SSE) была минимизирована. Градиентный спуск — один из самых популярных методов, который используется для нахождения оптимальных коэффициентов для ml и алгоритмов глубокого обучения.

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

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

Вы можете использовать библиотеку sklearn на python для обучения и тестирования модели линейной регрессии. Мы будем использовать набор данных insurance.csv для обучения модели линейной регрессии. Некоторые этапы предварительной обработки выполняются для описания данных, обработки пропущенных значений и проверки допущений линейной регрессии.

Шаг 1: Загрузите все необходимые библиотеки и наборы данных, используя библиотеку pandas.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from statsmodels.stats.outliers_influence import variance_inflation_factor as VIF
from sklearn.metrics import classification_report
insurance=pd.read_csv('new_insurance_data.csv') 
insurance.head()

Случайно выбранные 5 записей из набора данных

Случайно выбранные 5 записей из набора данных

Шаг 2: Проверьте нулевые значения, форму и тип данных переменных:

# checks for non-null entries, size and datatype
insurance.info()

Мы можем отдельно проверить количество нулей для каждой функции, используя df.isna().sum():

insurance.isnull().sum()
# helps me to check for null values

Шаг 3. Заполните пропущенные значения

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

# calculating mode for object data type features which will be used to fill missing values.
# We have 3 features which are of object type
print(f"mode of sex feature: {insurance['sex'].mode()[0]}")
print(f"mode of region feature: {insurance['region'].mode()[0]}")
print(f"mode of smoker feature: {insurance['smoker'].mode()[0]}")

# describe() function will give the descriptive statistics for all numerical features
insurance.describe().transpose()

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

for col_name in list(insurance.columns):
    if insurance[col_name].dtypes=='object':
        # filling null values with mode for object type features
        insurance[col_name] = insurance[col_name].fillna(insurance[col_name].mode()[0])
    else:
        # filling null values with mean for numeric type features
        insurance[col_name] = insurance[col_name].fillna(insurance[col_name].median())
# Now the null count for each feature is zero
print("After filling null values:")
print(insurance.isna().sum())

Шаг 4: Анализ выбросов

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

i = 1
plt.figure(figsize=(16,15))
for col_name in list(insurance.columns):
    # total 9 box plots will be plotted, therefore 3*3 grid is taken
    if((insurance[col_name].dtypes=='int64' or insurance[col_name].dtypes=='float64') and col_name != 'charges'):
        plt.subplot(3,3, i)
        plt.boxplot(insurance[col_name])
        plt.xlabel(col_name)
        plt.ylabel('count')
        plt.title(f"Box plot for {col_name}")
        i += 1
plt.show()

Мы видим, что характеристики ‘bmi’, ‘Hospital_expenditure’ и ‘Number_of_past_hospitalizations’ имеют выбросы. Мы удалим эти выбросы:

outliers_features = ['bmi', 'Hospital_expenditure', 'Anual_Salary', 'past_consultations']
for col_name in outliers_features:
    Q3 = insurance[col_name].quantile(0.75)
    Q1 = insurance[col_name].quantile(0.25)
    IQR = Q3 - Q1
    upper_limit = Q3 + 1.5*IQR
    lower_limit = Q1 - 1.5*IQR
    prev_size = len(insurance)
    insurance = insurance[(insurance[col_name] >= lower_limit) & (insurance[col_name] <= upper_limit)]
    cur_size = len(insurance)
    print(f"dropped {prev_size - cur_size} rows for {col_name}  due to presence of outliers")

Шаг 5: Проверьте корреляцию:

Существует корреляция между age & charges, age & Anual_salary и т. д., поскольку их корреляция больше 0,5.

import seaborn as sns
sns.heatmap(insurance.corr(),cmap='gist_rainbow',annot=True)
plt.show()

Мы проверим наличие мультиколлинеарности среди признаков:

from statsmodels.stats.outliers_influence import variance_inflation_factor 
col_list = []
for col in insurance.columns:
    if ((insurance[col].dtype != 'object') & (col != 'charges') ):#only num cols except for the charges column
        col_list.append(col)

X = insurance[col_list]
vif_data = pd.DataFrame() 
vif_data["feature"] = X.columns 
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(len(X.columns))] 
print(vif_data)

Мы видим, что функция num_of_steps имеет самую высокую коллинеарность, равную 61,43, поэтому мы удалим функцию num_of_steps и снова проверим оценку VIF.

# deleting num_of_steps feature
insurance.drop('num_of_steps', axis = 1, inplace= True)
from statsmodels.stats.outliers_influence import variance_inflation_factor 
col_list = []
for col in insurance.columns:
    if ((insurance[col].dtype != 'object') & (col != 'charges') ):#only num cols except for the charges column
        col_list.append(col)
X = insurance[col_list]

X = insurance[col_list]
vif_data = pd.DataFrame() 
vif_data["feature"] = X.columns 
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(len(X.columns))] 
print(vif_data)

После удаления функции num_of_steps age имеет самую высокую коллинеарность, равную 14,63, поэтому мы удалим функцию age и снова проверим оценку VIF.

# deleting age feature
insurance.drop('age', axis = 1, inplace= True)
from statsmodels.stats.outliers_influence import variance_inflation_factor 
col_list = []
for col in insurance.columns:
    if ((insurance[col].dtype != 'object') & (col != 'charges') ):#only num cols except for the charges column
        col_list.append(col)
X = insurance[col_list]

X = insurance[col_list]
vif_data = pd.DataFrame() 
vif_data["feature"] = X.columns 
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(len(X.columns))] 
print(vif_data)

После удаления функции возраста BMI имеет самую высокую коллинеарность, равную 10,36, поэтому мы удалим BMI и снова проверим показатель VIF.

# deleting bmi feature
insurance.drop('bmi', axis = 1, inplace= True)
from statsmodels.stats.outliers_influence import variance_inflation_factor 
col_list = []
for col in insurance.columns:
    if ((insurance[col].dtype != 'object') & (col != 'charges') ):#only num cols except for the charges column
        col_list.append(col)
X = insurance[col_list]

X = insurance[col_list]
vif_data = pd.DataFrame() 
vif_data["feature"] = X.columns 
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(len(X.columns))] 
print(vif_data)

Шаг 6: Разделение входных функций и целевой переменной:

x=insurance.loc[:,['children','Claim_Amount','past_consultations','Hospital_expenditure','NUmber_of_past_hospitalizations','Anual_Salary']]
y=insurance.loc[:,'charges']
x_train, x_test, y_train, y_test=train_test_split(x,y,train_size=0.8, random_state=0)
print("length of train dataset: ",len(x_train) )
print("length of test dataset: ",len(x_test) )

Шаг 7: Обучение модели линейной регрессии на наборе поездов и ее оценка на тестовом наборе данных:

from sklearn.linear_model import LinearRegression
from sklearn.metrics import classification_report, recall_score, r2_score, f1_score, accuracy_score

model = LinearRegression()
# train the model
model.fit(x_train, y_train)
print("trained model coefficients:", model.coef_, " and intercept is: ", model.intercept_)
# model.intercept_ is b0 term in linear boundary equation, and model.coef_ is
#  the array of weights assigned to ['children','Claim_Amount','past_consultations','Hospital_expenditure',
#                    'NUmber_of_past_hospitalizations','Anual_Salary'] respectively

y_pred = model.predict(x_test)
error_pred=pd.DataFrame(columns={'Actual_data','Prediction_data'})
error_pred['Prediction_data'] = y_pred
error_pred['Actual_data'] = y_test
error_pred["error"] = y_test - y_pred
sns.distplot(error_pred['error'])
plt.show()

Мы можем построить остаточные графики между фактической целью и остатками или ошибками:

sns.scatterplot(x = y_test,y =  (y_test - y_pred), c = 'g', s = 40)
plt.hlines(y = 0, xmin = 0, xmax=20000)
plt.title("residual plot")
plt.xlabel("actural target")
plt.ylabel("residula error")

Оценка R-квадрата:

R-квадрат известен как коэффициент детерминации. R Squared — это статистическая мера, которая представляет долю дисперсии зависимой переменной, объясненную независимыми переменными в регрессии. Это значение находится в диапазоне от 0 до 1. Значение «1» указывает, что предиктор полностью учитывает все изменения в Y. Значение «0» указывает, что предиктор «x» не учитывает никаких изменений в «y». Значение R-Squared содержит три термина SSE, SSR и SST.

SSE — это сумма квадратов ошибок. Его также называют остаточной суммой квадратов (RSS).

SSR — это сумма квадратов регрессии.

SST (Сумма в квадрате) — это квадрат разницы между наблюдаемой зависимой переменной и ее средним значением.

# check for model performance
print(f'r2 score of trained model: {r2_score(y_pred=y_pred, y_true= y_test)}')

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

  • Линейная связь: линейная регрессия предполагает линейную связь между прогнозируемой переменной и независимой переменной. Вы можете использовать точечную диаграмму, чтобы визуализировать взаимосвязь между независимой переменной и зависимой переменной в 2D-пространстве.
  • Небольшая мультиколлинеарность или отсутствие мультиколлинеарности между функциями: линейная регрессия предполагает, что функции должны быть независимыми друг от друга, т. Е. Никакой корреляции между функциями. Вы можете использовать функцию VIF, чтобы найти значение мультиколлинеарности признаков. Общее предположение гласит, что если значение признака VIF больше 5, то признаки сильно коррелированы.
  • Однородность: линейная регрессия предполагает, что члены ошибок имеют постоянную дисперсию, т. е. разброс членов ошибок должен быть постоянным. Это предположение можно проверить, построив остаточную диаграмму. Если предположение нарушается, то точки образуют форму воронки, в противном случае они будут постоянными.
  • Нормальность: линейная регрессия предполагает, что каждая функция данного набора данных следует нормальному распределению. Вы можете строить гистограммы и графики KDE для каждой функции, чтобы проверить, нормально ли они распределены или нет.
  • Ошибка: линейная регрессия предполагает, что условия ошибки также должны быть нормально распределены. Вы можете строить гистограммы, а KDE строит графики ошибок, чтобы проверить, нормально ли они распределены или нет.

Вот ссылка GitHub для кода и набора данных.

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

Содержание

  • 1 Введение
  • 2 В одномерных распределениях
    • 2.1 Замечание
  • 3 Регрессии
  • 4 Другие варианты использования слова «ошибка» в статистике
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки

Введение

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

A статистическая ошибка (или нарушение ) — это величина, на которую наблюдение отличается от его ожидаемого значения, последнее основано на всей генеральной совокупности из которого статистическая единица была выбрана случайным образом. Например, если средний рост среди 21-летних мужчин составляет 1,75 метра, а рост одного случайно выбранного мужчины — 1,80 метра, то «ошибка» составляет 0,05 метра; если рост случайно выбранного мужчины составляет 1,70 метра, то «ошибка» составляет -0,05 метра. Ожидаемое значение, являющееся средним для всей генеральной совокупности, обычно ненаблюдаемо, и, следовательно, статистическая ошибка также не может быть обнаружена.

A невязка (или аппроксимирующее отклонение), с другой стороны, представляет собой наблюдаемую оценку ненаблюдаемой статистической ошибки. Рассмотрим предыдущий пример с ростом мужчин и предположим, что у нас есть случайная выборка из n человек. среднее значение выборки может служить хорошей оценкой среднего значения генеральной совокупности. Тогда у нас есть:

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

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

Можно стандартизировать статистические ошибки (особенно нормального распределения ) в z-балле (или «стандартном балле») и стандартизировать остатки в t-статистика или, в более общем смысле, стьюдентизированные остатки.

в одномерном распределении

Если мы предположим нормально распределенную совокупность со средним μ и стандартным отклонением σ и независимо выбираем людей, тогда мы имеем

X 1,…, X n ∼ N (μ, σ 2) { displaystyle X_ {1}, dots, X_ {n} sim N ( mu, sigma ^ {2}) ,}X_1, dots, X_n sim N ( mu, sigma ^ 2) ,

и выборочное среднее

X ¯ = X 1 + ⋯ + X nn { displaystyle { overline {X}} = {X_ { 1} + cdots + X_ {n} over n}}overline {X} = {X_1 + cdots + X_n over n}

— случайная величина, распределенная так, что:

X ¯ ∼ N (μ, σ 2 n). { displaystyle { overline {X}} sim N left ( mu, { frac { sigma ^ {2}} {n}} right).}{ displaystyle { overline {X}} sim N left ( mu, { frac { sigma ^ {2}} {n}} right).}

Тогда статистические ошибки

ei = X i — μ, { displaystyle e_ {i} = X_ {i} — mu, ,}e_ {i} = X_ {i} - mu, ,

с ожидаемыми значениями нуля, тогда как остатки равны

ri = X i — X ¯. { displaystyle r_ {i} = X_ {i} — { overline {X}}.}r_ {i} = X_ {i} - overline {X}.

Сумма квадратов статистических ошибок, деленная на σ, имеет хи -квадратное распределение с n степенями свободы :

1 σ 2 ∑ i = 1 nei 2 ∼ χ n 2. { displaystyle { frac {1} { sigma ^ {2}}} sum _ {i = 1} ^ {n} e_ {i} ^ {2} sim chi _ {n} ^ {2}.}{ frac 1 { sigma ^ {2}}} sum _ {{i = 1}} ^ {n} e_ {i} ^ {2} sim chi _ {n} ^ {2}.

Однако это количество не наблюдается, так как среднее значение для генеральной совокупности неизвестно. Сумма квадратов остатков, с другой стороны, является наблюдаемой. Частное этой суммы по σ имеет распределение хи-квадрат только с n — 1 степенями свободы:

1 σ 2 ∑ i = 1 n r i 2 ∼ χ n — 1 2. { displaystyle { frac {1} { sigma ^ {2}}} sum _ {i = 1} ^ {n} r_ {i} ^ {2} sim chi _ {n-1} ^ { 2}.}{ frac 1 { sigma ^ {2}}} sum _ {{i = 1}} ^ {n} r_ {i} ^ {2} sim chi _ {{n-1}} ^ {2}.

Эта разница между n и n — 1 степенями свободы приводит к поправке Бесселя для оценки выборочной дисперсии генеральной совокупности с неизвестным средним и неизвестной дисперсией. Коррекция не требуется, если известно среднее значение для генеральной совокупности.

Замечание

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

T = X ¯ n — μ 0 S n / n, { displaystyle T = { frac {{ overline {X}} _ {n} — mu _ {0}} {S_ {n} / { sqrt {n}}}},}{ displaystyle T = { frac {{ overline {X}} _ {n} - mu _ {0}} {S_ {n} / { sqrt {n}}}},}

где X ¯ n — μ 0 { displaystyle { overline {X}} _ {n} — mu _ {0}}{ displaystyle { overline {X}} _ {n} - mu _ {0}}представляет ошибки, S n { displaystyle S_ {n}}S_ {n}представляет стандартное отклонение для выборки размера n и неизвестного σ, а член знаменателя S n / n { displaystyle S_ {n} / { sqrt {n}}}S_n / sqrt nучитывает стандартное отклонение ошибок в соответствии с:

Var ⁡ (X ¯ n) = σ 2 n { displaystyle operatorname {Var} ({ overline {X}} _ {n}) = { frac { sigma ^ {2}} {n}}}{ displaystyle operatorname {Var} ({ overline {X}} _ {n}) = { frac { sigma ^ {2}} {n}}}

Распределения вероятностей числителя и знаменателя по отдельности зависят от значения ненаблюдаемого стандартного отклонения генеральной совокупности σ, но σ появляется как в числителе, так и в знаменателе и отменяет. Это удачно, потому что это означает, что, хотя мы не знаем σ, мы знаем распределение вероятностей этого частного: оно имеет t-распределение Стьюдента с n — 1 степенями свободы. Таким образом, мы можем использовать это частное, чтобы найти доверительный интервал для μ. Эту t-статистику можно интерпретировать как «количество стандартных ошибок от линии регрессии».

Регрессии

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

Однако терминологическое различие возникает в выражении среднеквадратическая ошибка (MSE). Среднеквадратичная ошибка регрессии — это число, вычисляемое из суммы квадратов вычисленных остатков, а не ненаблюдаемых ошибок. Если эту сумму квадратов разделить на n, количество наблюдений, результатом будет среднее квадратов остатков. Поскольку это смещенная оценка дисперсии ненаблюдаемых ошибок, смещение устраняется путем деления суммы квадратов остатков на df = n — p — 1 вместо n, где df — число степеней свободы (n минус количество оцениваемых параметров (без учета точки пересечения) p — 1). Это формирует объективную оценку дисперсии ненаблюдаемых ошибок и называется среднеквадратической ошибкой.

Другой метод вычисления среднего квадрата ошибки при анализе дисперсии линейной регрессии с использованием техники, подобной той, что использовалась в ANOVA (они одинаковы, потому что ANOVA — это тип регрессии), сумма квадратов остатков (иначе говоря, сумма квадратов ошибки) делится на степени свободы (где степени свободы равно n — p — 1, где p — количество параметров, оцениваемых в модели (по одному для каждой переменной в уравнении регрессии, не включая точку пересечения). Затем можно также вычислить средний квадрат модели, разделив сумму квадратов модели за вычетом степеней свободы, которые представляют собой просто количество параметров. Затем значение F можно рассчитать путем деления среднего квадрата модели на средний квадрат ошибки, и затем мы можем определить значимость (вот почему вы хотите, чтобы средние квадраты начинались с.).

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

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

Другое использование слова «ошибка» в статистике

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

Среднеквадратичная ошибка или Среднеквадратичная ошибка (MSE) и Среднеквадратичная ошибка (RMSE) относятся к величине, на которую значения, предсказанные оценщиком, отличаются от оцениваемых количеств (обычно за пределами выборки, на основе которой была оценена модель).

Сумма квадратов ошибок (SSE или SSe), обычно сокращенно SSE или SS e, относится к остаточной сумме квадратов (сумма квадратов остатков) регрессии; это сумма квадратов отклонений фактических значений от прогнозируемых значений в пределах выборки, используемой для оценки. Это также называется оценкой методом наименьших квадратов, где коэффициенты регрессии выбираются так, чтобы сумма квадратов минимально (т.е. его производная равна нулю).

Аналогично, сумма абсолютных ошибок (SAE) является суммой абсолютных значений остатков, которая минимизирована в наименьшие абсолютные отклонения подход к регрессии.

См. также

  • значокПортал математики
  • Абсолютное отклонение
  • Консенсус-прогнозы
  • Обнаружение и исправление ошибок
  • Объясненная сумма квадраты
  • Инновация (обработка сигналов)
  • Неподходящая сумма квадратов
  • Погрешность
  • Средняя абсолютная погрешность
  • Погрешность наблюдения
  • Распространение ошибки
  • Вероятная ошибка
  • Случайные и систематические ошибки
  • Разбавление регрессии
  • Среднеквадратичное отклонение
  • Ошибка выборки
  • Стандартная ошибка
  • Стьюдентизированная невязка
  • Ошибки типа I и типа II

Ссылки

  • Кук, Р. Деннис; Вайсберг, Сэнфорд (1982). Остатки и влияние на регресс (Отредактированный ред.). Нью-Йорк: Чепмен и Холл. ISBN 041224280X. Проверено 23 февраля 2013 г.
  • Кокс, Дэвид Р. ; Снелл, Э. Джойс (1968). «Общее определение остатков». Журнал Королевского статистического общества, серия B. 30(2): 248–275. JSTOR 2984505.
  • Вайсберг, Сэнфорд (1985). Прикладная линейная регрессия (2-е изд.). Нью-Йорк: Вили. ISBN 9780471879572. Проверено 23 февраля 2013 г.
  • , Энциклопедия математики, EMS Press, 2001 [1994]

Внешние ссылки

  • СМИ, связанные с ошибками и остатками на Викимедиа Commons

Корреляция и регрессия

Линейное уравнение регрессии имеет вид y=bx+a+ε
Здесь ε — случайная ошибка (отклонение, возмущение).
Причины существования случайной ошибки:
1. Невключение в регрессионную модель значимых объясняющих переменных;
2. Агрегирование переменных. Например, функция суммарного потребления – это попытка общего выражения совокупности решений отдельных индивидов о расходах. Это лишь аппроксимация отдельных соотношений, которые имеют разные параметры.
3. Неправильное описание структуры модели;
4. Неправильная функциональная спецификация;
5. Ошибки измерения.
Так как отклонения εi для каждого конкретного наблюдения i – случайны и их значения в выборке неизвестны, то:
1) по наблюдениям xi и yi можно получить только оценки параметров α и β
2) Оценками параметров α и β регрессионной модели являются соответственно величины а и b, которые носят случайный характер, т.к. соответствуют случайной выборке;
Тогда оценочное уравнение регрессии (построенное по выборочным данным) будет иметь вид y = bx + a + ε, где ei – наблюдаемые значения (оценки) ошибок εi, а и b соответственно оценки параметров α и β регрессионной модели, которые следует найти.
Для оценки параметров α и β — используют МНК (метод наименьших квадратов).
Система нормальных уравнений.

Для наших данных система уравнений имеет вид:

10a + 356b = 49
356a + 2135b = 9485

Из первого уравнения выражаем а и подставим во второе уравнение
Получаем b = 68.16, a = 11.17

Уравнение регрессии:
y = 68.16 x — 11.17

1. Параметры уравнения регрессии.
Выборочные средние.

1.1. Коэффициент корреляции
Рассчитываем показатель тесноты связи. Таким показателем является выборочный линейный коэффициент корреляции, который рассчитывается по формуле:

Линейный коэффициент корреляции принимает значения от –1 до +1.
Связи между признаками могут быть слабыми и сильными (тесными). Их критерии оцениваются по шкале Чеддока:
0.1 Y фактором X весьма высокая и прямая.

1.2. Уравнение регрессии (оценка уравнения регрессии).

Линейное уравнение регрессии имеет вид y = 68.16 x -11.17
Коэффициентам уравнения линейной регрессии можно придать экономический смысл. Коэффициент уравнения регрессии показывает, на сколько ед. изменится результат при изменении фактора на 1 ед.
Коэффициент b = 68.16 показывает среднее изменение результативного показателя (в единицах измерения у ) с повышением или понижением величины фактора х на единицу его измерения. В данном примере с увеличением на 1 единицу y повышается в среднем на 68.16.
Коэффициент a = -11.17 формально показывает прогнозируемый уровень у , но только в том случае, если х=0 находится близко с выборочными значениями.
Но если х=0 находится далеко от выборочных значений x , то буквальная интерпретация может привести к неверным результатам, и даже если линия регрессии довольно точно описывает значения наблюдаемой выборки, нет гарантий, что также будет при экстраполяции влево или вправо.
Подставив в уравнение регрессии соответствующие значения x , можно определить выровненные (предсказанные) значения результативного показателя y(x) для каждого наблюдения.
Связь между у и x определяет знак коэффициента регрессии b (если > 0 – прямая связь, иначе — обратная). В нашем примере связь прямая.

1.3. Коэффициент эластичности.
Коэффициенты регрессии (в примере b) нежелательно использовать для непосредственной оценки влияния факторов на результативный признак в том случае, если существует различие единиц измерения результативного показателя у и факторного признака х.
Для этих целей вычисляются коэффициенты эластичности и бета — коэффициенты. Коэффициент эластичности находится по формуле:

Он показывает, на сколько процентов в среднем изменяется результативный признак у при изменении факторного признака х на 1%. Он не учитывает степень колеблемости факторов.
В нашем примере коэффициент эластичности больше 1. Следовательно, при изменении Х на 1%, Y изменится более чем на 1%. Другими словами — Х существенно влияет на Y.
Бета – коэффициент показывает, на какую часть величины своего среднего квадратичного отклонения изменится в среднем значение результативного признака при изменении факторного признака на величину его среднеквадратического отклонения при фиксированном на постоянном уровне значении остальных независимых переменных:

Т.е. увеличение x на величину среднеквадратического отклонения этого показателя приведет к увеличению среднего Y на 0.9796 среднеквадратичного отклонения этого показателя.

1.4. Ошибка аппроксимации.
Оценим качество уравнения регрессии с помощью ошибки абсолютной аппроксимации.

Поскольку ошибка больше 15%, то данное уравнение не желательно использовать в качестве регрессии.

1.6. Коэффициент детерминации.
Квадрат (множественного) коэффициента корреляции называется коэффициентом детерминации, который показывает долю вариации результативного признака, объясненную вариацией факторного признака.
Чаще всего, давая интерпретацию коэффициента детерминации, его выражают в процентах.
R 2 = 0.98 2 = 0.9596, т.е. в 95.96 % случаев изменения x приводят к изменению у . Другими словами — точность подбора уравнения регрессии — высокая. Остальные 4.04 % изменения Y объясняются факторами, не учтенными в модели.

x y x 2 y 2 x·y y(x) (yi— y ) 2 (y-y(x)) 2 (xi— x ) 2 |y — yx|:y
0.371 15.6 0.1376 243.36 5.79 14.11 780.89 2.21 0.1864 0.0953
0.399 19.9 0.1592 396.01 7.94 16.02 559.06 15.04 0.163 0.1949
0.502 22.7 0.252 515.29 11.4 23.04 434.49 0.1176 0.0905 0.0151
0.572 34.2 0.3272 1169.64 19.56 27.81 87.32 40.78 0.0533 0.1867
0.607 44.5 .3684 1980.25 27.01 30.2 0.9131 204.49 0.0383 0.3214
0.655 26.8 0.429 718.24 17.55 33.47 280.38 44.51 0.0218 0.2489
0.763 35.7 0.5822 1274.49 27.24 40.83 61.54 26.35 0.0016 0.1438
0.873 30.6 0.7621 936.36 26.71 48.33 167.56 314.39 0.0049 0.5794
2.48 161.9 6.17 26211.61 402 158.07 14008.04 14.66 2.82 0.0236
7.23 391.9 9.18 33445.25 545.2 391.9 16380.18 662.54 3.38 1.81

2. Оценка параметров уравнения регрессии.
2.1. Значимость коэффициента корреляции.

По таблице Стьюдента с уровнем значимости α=0.05 и степенями свободы k=7 находим tкрит:
tкрит = (7;0.05) = 1.895
где m = 1 — количество объясняющих переменных.
Если tнабл > tкритич, то полученное значение коэффициента корреляции признается значимым (нулевая гипотеза, утверждающая равенство нулю коэффициента корреляции, отвергается).
Поскольку tнабл > tкрит, то отклоняем гипотезу о равенстве 0 коэффициента корреляции. Другими словами, коэффициент корреляции статистически — значим
В парной линейной регрессии t 2 r = t 2 b и тогда проверка гипотез о значимости коэффициентов регрессии и корреляции равносильна проверке гипотезы о существенности линейного уравнения регрессии.

2.3. Анализ точности определения оценок коэффициентов регрессии.
Несмещенной оценкой дисперсии возмущений является величина:

S 2 y = 94.6484 — необъясненная дисперсия (мера разброса зависимой переменной вокруг линии регрессии).
Sy = 9.7287 — стандартная ошибка оценки (стандартная ошибка регрессии).
S a — стандартное отклонение случайной величины a.

Sb — стандартное отклонение случайной величины b.

2.4. Доверительные интервалы для зависимой переменной.
Экономическое прогнозирование на основе построенной модели предполагает, что сохраняются ранее существовавшие взаимосвязи переменных и на период упреждения.
Для прогнозирования зависимой переменной результативного признака необходимо знать прогнозные значения всех входящих в модель факторов.
Прогнозные значения факторов подставляют в модель и получают точечные прогнозные оценки изучаемого показателя. (a + bxp ± ε) где
Рассчитаем границы интервала, в котором будет сосредоточено 95% возможных значений Y при неограниченно большом числе наблюдений и X p = 1 (-11.17 + 68.16*1 ± 6.4554)
(50.53;63.44)
С вероятностью 95% можно гарантировать, что значения Y при неограниченно большом числе наблюдений не выйдет за пределы найденных интервалов.

Индивидуальные доверительные интервалы для Y при данном значении X.
(a + bx i ± ε)
где

xi y = -11.17 + 68.16xi εi ymin ymax
0.371 14.11 19.91 -5.8 34.02
0.399 16.02 19.85 -3.83 35.87
0.502 23.04 19.67 3.38 42.71
0.572 27.81 19.57 8.24 47.38
0.607 30.2 19.53 10.67 49.73
0.655 33.47 19.49 13.98 52.96
0.763 40.83 19.44 21.4 60.27
0.873 48.33 19.45 28.88 67.78
2.48 158.07 25.72 132.36 183.79

С вероятностью 95% можно гарантировать, что значения Y при неограниченно большом числе наблюдений не выйдет за пределы найденных интервалов.

2.5. Проверка гипотез относительно коэффициентов линейного уравнения регрессии.
1) t-статистика. Критерий Стьюдента.
Проверим гипотезу H0 о равенстве отдельных коэффициентов регрессии нулю (при альтернативе H1 не равно) на уровне значимости α=0.05.
tкрит = (7;0.05) = 1.895

Поскольку 12.8866 > 1.895, то статистическая значимость коэффициента регрессии b подтверждается (отвергаем гипотезу о равенстве нулю этого коэффициента).

Поскольку 2.0914 > 1.895, то статистическая значимость коэффициента регрессии a подтверждается (отвергаем гипотезу о равенстве нулю этого коэффициента).

Доверительный интервал для коэффициентов уравнения регрессии.
Определим доверительные интервалы коэффициентов регрессии, которые с надежность 95% будут следующими:
(b — tкрит Sb; b + tкрит Sb)
(68.1618 — 1.895 • 5.2894; 68.1618 + 1.895 • 5.2894)
(58.1385;78.1852)
С вероятностью 95% можно утверждать, что значение данного параметра будут лежать в найденном интервале.
(a — ta)
(-11.1744 — 1.895 • 5.3429; -11.1744 + 1.895 • 5.3429)
(-21.2992;-1.0496)
С вероятностью 95% можно утверждать, что значение данного параметра будут лежать в найденном интервале.

2) F-статистики. Критерий Фишера.
Проверка значимости модели регрессии проводится с использованием F-критерия Фишера, расчетное значение которого находится как отношение дисперсии исходного ряда наблюдений изучаемого показателя и несмещенной оценки дисперсии остаточной последовательности для данной модели.
Если расчетное значение с lang=EN-US>n-m-1) степенями свободы больше табличного при заданном уровне значимости, то модель считается значимой.

где m – число факторов в модели.
Оценка статистической значимости парной линейной регрессии производится по следующему алгоритму:
1. Выдвигается нулевая гипотеза о том, что уравнение в целом статистически незначимо: H0: R 2 =0 на уровне значимости α.
2. Далее определяют фактическое значение F-критерия:

где m=1 для парной регрессии.
3. Табличное значение определяется по таблицам распределения Фишера для заданного уровня значимости, принимая во внимание, что число степеней свободы для общей суммы квадратов (большей дисперсии) равно 1 и число степеней свободы остаточной суммы квадратов (меньшей дисперсии) при линейной регрессии равно n-2.
4. Если фактическое значение F-критерия меньше табличного, то говорят, что нет основания отклонять нулевую гипотезу.
В противном случае, нулевая гипотеза отклоняется и с вероятностью (1-α) принимается альтернативная гипотеза о статистической значимости уравнения в целом.
Табличное значение критерия со степенями свободы k1=1 и k2=7, Fkp = 5.59
Поскольку фактическое значение F > Fkp, то коэффициент детерминации статистически значим (Найденная оценка уравнения регрессии статистически надежна).

Проверка на наличие автокорреляции остатков.
Важной предпосылкой построения качественной регрессионной модели по МНК является независимость значений случайных отклонений от значений отклонений во всех других наблюдениях. Это гарантирует отсутствие коррелированности между любыми отклонениями и, в частности, между соседними отклонениями.
Автокорреляция (последовательная корреляция) определяется как корреляция между наблюдаемыми показателями, упорядоченными во времени (временные ряды) или в пространстве (перекрестные ряды). Автокорреляция остатков (отклонений) обычно встречается в регрессионном анализе при использовании данных временных рядов и очень редко при использовании перекрестных данных.
В экономических задачах значительно чаще встречается положительная автокорреляция, нежели отрицательная автокорреляция. В большинстве случаев положительная автокорреляция вызывается направленным постоянным воздействием некоторых неучтенных в модели факторов.
Отрицательная автокорреляция фактически означает, что за положительным отклонением следует отрицательное и наоборот. Такая ситуация может иметь место, если ту же зависимость между спросом на прохладительные напитки и доходами рассматривать по сезонным данным (зима-лето).
Среди основных причин, вызывающих автокорреляцию, можно выделить следующие:
1. Ошибки спецификации. Неучет в модели какой-либо важной объясняющей переменной либо неправильный выбор формы зависимости обычно приводят к системным отклонениям точек наблюдения от линии регрессии, что может обусловить автокорреляцию.
2. Инерция. Многие экономические показатели (инфляция, безработица, ВНП и т.д.) обладают определенной цикличностью, связанной с волнообразностью деловой активности. Поэтому изменение показателей происходит не мгновенно, а обладает определенной инертностью.
3. Эффект паутины. Во многих производственных и других сферах экономические показатели реагируют на изменение экономических условий с запаздыванием (временным лагом).
4. Сглаживание данных. Зачастую данные по некоторому продолжительному временному периоду получают усреднением данных по составляющим его интервалам. Это может привести к определенному сглаживанию колебаний, которые имелись внутри рассматриваемого периода, что в свою очередь может служить причиной автокорреляции.
Последствия автокорреляции схожи с последствиями гетероскедастичности: выводы по t- и F-статистикам, определяющие значимость коэффициента регрессии и коэффициента детерминации, возможно, будут неверными.

Обнаружение автокорреляции

1. Графический метод
Есть ряд вариантов графического определения автокорреляции. Один из них увязывает отклонения ei с моментами их получения i. При этом по оси абсцисс откладывают либо время получения статистических данных, либо порядковый номер наблюдения, а по оси ординат – отклонения ei (либо оценки отклонений).
Естественно предположить, что если имеется определенная связь между отклонениями, то автокорреляция имеет место. Отсутствие зависимости скоре всего будет свидетельствовать об отсутствии автокорреляции.
Автокорреляция становится более наглядной, если построить график зависимости ei от ei-1.

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

В предыдущих заметках предметом анализа часто становилась отдельная числовая переменная, например, доходность взаимных фондов, время загрузки Web-страницы или объем потребления безалкогольных напитков. В настоящей и следующих заметках мы рассмотрим методы предсказания значений числовой переменной в зависимости от значений одной или нескольких других числовых переменных. [1]

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

Как правило, для предсказания значений переменной используется регрессионный анализ. Его цель — разработать статистическую модель, позволяющую предсказывать значения зависимой переменной, или отклика, по значениям, по крайней мере одной, независимой, или объясняющей, переменной. В настоящей заметке мы рассмотрим простую линейную регрессию — статистический метод, позволяющий предсказывать значения зависимой переменной Y по значениям независимой переменной X. В последующих заметках будет описана модель множественной регрессии, предназначенная для предсказания значений независимой переменной Y по значениям нескольких зависимых переменных (Х1, Х2, …, Xk). [2]

Скачать заметку в формате Word или pdf, примеры в формате Excel2013

Виды регрессионных моделей

В заметке Представление числовых данных в виде таблиц и диаграмм для иллюстрации зависимости между переменными X и Y использовалась диаграмма разброса. На ней значения переменной X откладывались по горизонтальной оси, а значения переменной Y — по вертикальной. Зависимость между двумя переменными может быть разной: от самой простой до крайне сложной. Пример простейшей (линейной) зависимости показан на рис. 1.

Рис. 1. Положительная линейная зависимость

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

где β0 — сдвиг (длина отрезка, отсекаемого на координатной оси прямой Y), β1 — наклон прямой Y, εi— случайная ошибка переменной Y в i-м наблюдении.

В этой модели наклон β1 представляет собой количество единиц измерения переменной Y, приходящихся на одну единицу измерения переменной X. Эта величина характеризует среднюю величину изменения переменной Y (положительного или отрицательного) на заданном отрезке оси X. Сдвиг β0 представляет собой среднее значение переменной Y, когда переменная X равна 0. Последний компонент модели εi является случайной ошибкой переменной Y в i-м наблюдении. Выбор подходящей математической модели зависит от распределения значений переменных X и Y на диаграмме разброса. Различные виды зависимости переменных показаны на рис. 2.

Рис. 2. Диаграммы разброса, иллюстрирующие разные виды зависимостей

На панели А значения переменной Y почти линейно возрастают с увеличением переменной X. Этот рисунок аналогичен рис. 1, иллюстрирующему положительную зависимость между размером магазина (в квадратных футах) и годовым объемом продаж. Панель Б является примером отрицательной линейной зависимости. Если переменная X возрастает, переменная Y в целом убывает. Примером этой зависимости является связь между стоимостью конкретного товара и объемом продаж. На панели В показан набор данных, в котором переменные X и Y практически не зависят друг от друга. Каждому значению переменной X соответствуют как большие, так и малые значения переменной Y. Данные, приведенные на панели Г, демонстрируют криволинейную зависимость между переменными X и Y. Значения переменной Y возрастают при увеличении переменной X, однако скорость роста после определенных значений переменной X падает. Примером положительной криволинейной зависимости является связь между возрастом и стоимостью обслуживания автомобилей. По мере старения машины стоимость ее обслуживания сначала резко возрастает, однако после определенного уровня стабилизируется. Панель Д демонстрирует параболическую U-образную форму зависимости между переменными X и Y. По мере увеличения значений переменной X значения переменной Y сначала убывают, а затем возрастают. Примером такой зависимости является связь между количеством ошибок, совершенных за час работы, и количеством отработанных часов. Сначала работник осваивается и делает много ошибок, потом привыкает, и количество ошибок уменьшается, однако после определенного момента он начинает чувствовать усталость, и число ошибок увеличивается. На панели Е показана экспоненциальная зависимость между переменными X и Y. В этом случае переменная Y сначала очень быстро убывает при возрастании переменной X, однако скорость этого убывания постепенно падает. Например, стоимость автомобиля при перепродаже экспоненциально зависит от его возраста. Если перепродавать автомобиль в течение первого года, его цена резко падает, однако впоследствии ее падение постепенно замедляется.

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

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

Вернемся к сценарию, изложенному в начале главы. Наша цель — предсказать объем годовых продаж для всех новых магазинов, зная их размеры. Для оценки зависимости между размером магазина (в квадратных футах) и объемом его годовых продаж создадим выборки из 14 магазинов (рис. 3).

Рис. 3. Площади и годовые объемы продаж 14 магазинов сети Sunflowers: (а) исходные данные; (б) диаграмма разброса

Анализ рис. 3 показывает, что между площадью магазина X и годовым объемом продаж Y существует положительная зависимость. Если площадь магазина увеличивается, объем продаж возрастает почти линейно. Таким образом, наиболее подходящей для исследования является линейная модель. Остается лишь определить, какая из линейных моделей точнее остальных описывает зависимость между анализируемыми переменными.

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

Данные, представленные на рис. 1а, получены для случайной выборки магазинов. Если верны некоторые предположения (об этом чуть позже), в качестве оценки параметров генеральной совокупности (β0 и β1) можно использовать сдвиг b0 и наклон b1 прямой Y. Таким образом, уравнение простой линейной регрессии принимает следующий вид:

где — предсказанное значение переменной Y для i-гo наблюдения, Xi — значение переменной X в i-м наблюдении.

Для того чтобы предсказать значение переменной Y, в уравнении (2) необходимо определить два коэффициента регрессии — сдвиг b0 и наклон b1 прямой Y. Вычислив эти параметры, проведем прямую на диаграмме разброса. Затем исследователь может визуально оценить, насколько близка регрессионная прямая к точкам наблюдения. Простая линейная регрессия позволяет найти прямую линию, максимально приближенную к точкам наблюдения. Критерии соответствия можно задать разными способами. Возможно, проще всего минимизировать разности между фактическими значениями Yi, и предсказанными значениями . Однако, поскольку эти разности могут быть как положительными, так и отрицательными, следует минимизировать сумму их квадратов.

Поскольку = b0 + b1Xi, сумма квадратов принимает следующий вид:

Параметры b0 и b1 неизвестны. Таким образом, сумма квадратов разностей является функцией, зависящей от сдвига b0 и наклона b1 выборки Y. Для того чтобы найти значения параметров b0 и b1, минимизирующих сумму квадратов разностей, применяется метод наименьших квадратов. При любых других значениях сдвига b0 и наклона b1 сумма квадратов разностей между фактическими значениями переменной Y и ее наблюдаемыми значениями лишь увеличится.

До того, как Excel взял на себя всю рутинную работу, вычисления по методу наименьших квадратов были очень трудоемкими. Excel позволяет решать подобные задачи двумя способами. Во-первых, можно воспользоваться Пакетом анализа (строка Регрессия). Результаты представлены на рис. 4. Во-вторых, можно, выделив точки на графике (как на рис. 3б), кликнуть правой кнопкой мыши и выбрать Добавить линию тренда. Далее можно выбрать вид линии тренда (в нашем случае – Линейная), отформатировать линию, показать на графике уравнение и величину достоверности аппроксимации (R 2 ) (рис. 5).

Рис. 4. Результаты решения задачи о зависимости между площадями и годовыми объемами продаж в магазинах сети Sunflower (получены с помощью Пакета анализа Excel)

Рис. 5. Диаграмма разброса и линия регрессии (тренда) в задаче о выборе магазина

Как следует из рис. 4 и 5, b0 = 0,9645, а b1 = 1,6699. Таким образом, уравнение линейной регрессии для этих данных имеет следующий вид: = 0,9645 + 1,6699Xi. Вычисленный наклон b1 = +1,6699. Это означает, что при возрастании переменной X на единицу среднее значение переменной Y возрастает на 1,6699 единиц. Иначе говоря, увеличение площади магазина на один квадратный фут приводит к увеличению годового объема продаж на 1,67 тыс. долл. Таким образом, наклон представляет собой долю годового объема продаж, зависящую от размера магазина. Вычисленный сдвиг b0 = +0,9645 (млн. долл.). Эта величина представляет собой среднее значение переменной Y при X = 0. Поскольку площадь магазина не может равняться нулю, сдвиг можно считать долей годового дохода, зависящей от других факторов. Следует отметить, однако, что сдвиг переменной Y выходит за пределы диапазона переменной X. Следовательно, к интерпретации параметра b0 необходимо относиться внимательно.

Пример 1. Один экономист решил предсказать изменение индекса 500 наиболее активно покупаемых акций на Нью-Йоркской фондовой бирже, публикуемого агентством Standard and Poor, на основе показателей экономики США за 50 лет. В результате он получил следующее уравнение линейной регрессии: Ŷi = –5,0 + 7Хi. Какой смысл имеют параметры сдвига b0 и наклона b1.

Решение. Сдвиг регрессии b0 равен –5,0. Это значит, что если рост экономики США равен нулю, индекс акций за год снизится на 5%. Наклон b1 равен 7. Следовательно, при увеличении темпов роста экономики на 1% индекс акций возрастает на 7%.

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

Решение. Подставим значение X = 4 (тыс. кв. футов) в уравнение линейной регрессии: = 0,9645 + 1,6699Xi = 0,9645 + 1,6699*4 = 7,644 млн. долл. Итак, прогнозируемый среднегодовой объем продаж в магазине, площадь которого равна 4000 кв. футов, составляет 7 644 000 долл.

Прогнозирование в регрессионном анализе: интерполяция и экстраполяция

Применяя регрессионную модель для прогнозирования, необходимо учитывать лишь допустимые значения независимой переменной. В этот диапазон входят все значения переменной X, начиная с минимальной и заканчивая максимальной. Таким образом, предсказывая значение переменной Y при конкретном значении переменной X, исследователь выполняет интерполяцию между значениями переменной X в диапазоне возможных значений. Однако экстраполяция значений за пределы этого интервала не всегда релевантна. Например, пытаясь предсказать среднегодовой объем продаж в магазине, зная его площадь (рис. 3а), мы можем вычислять значение переменной Y лишь для значений X от 1,1 до 5,8 тыс. кв. футов. Следовательно, прогнозировать среднегодовой объем продаж можно лишь для магазинов, площадь которых не выходит за пределы указанного диапазона. Любая попытка экстраполяции означает, что мы предполагаем, будто линейная регрессия сохраняет свой характер за пределами допустимого диапазона.

Оценки изменчивости

Вычисление сумм квадратов. Для того чтобы предсказать значение зависимой переменной по значениям независимой переменной в рамках избранной статистической модели, необходимо оценить изменчивость. Существует несколько способов оценки изменчивости. Первый способ использует общую сумму квадратов (total sum of squares — SST), позволяющую оценить колебания значений Yi вокруг среднего значения . В регрессионном анализе полная вариация, представляющая собой полную сумму квадратов, разделяется на объяснимую вариацию, или сумму квадратов регрессии (regression sum of squares — SSR), и необъяснимую вариацию, или сумму квадратов ошибок (error sum of squares — SSE). Объяснимая вариация характеризует взаимосвязь между переменными X и Y, а необъяснимая зависит от других факторов (рис. 6).

Рис. 6. Оценки изменчивости в модели регрессии

Сумма квадратов регрессии (SSR) представляет собой сумму квадратов разностей между Ŷi (предсказанным значением переменной Y) и (средним значением переменной Y). Сумма квадратов ошибок (SSE) является частью вариации переменной Y, которую невозможно описать с помощью регрессионной модели. Эта величина зависит от разностей между наблюдаемыми и предсказанными значениями.

Полная сумма квадратов (SST) равна сумме квадратов регрессии плюс сумма квадратов ошибок:

(3) SST = SSR + SSE

Полная сумма квадратов (SST) равна сумме квадратов разностей между наблюдаемыми значениями переменной Y и ее средним значением:

Сумма квадратов регрессии (SSR) равна сумме квадратов разностей между предсказанными значениями переменной Y и ее средним значением:

Сумма квадратов ошибок (SSE) равна сумме квадратов разностей между наблюдаемыми и предсказанными значениями переменной Y:

Суммы квадратов, вычисленные с помощью программы Пакета анализа Excel при решении задачи о сети магазинов Sunflowers, представлены на рис. 4.

Полная сумма квадратов разностей равна SST = 116,9543. Эта величина состоит из суммы квадратов регрессии (SSR) равной 105,7476, и суммы квадратов ошибок (SSE), равной 11,2067.

Коэффициент смешанной корреляции. Величины SSR, SSE и SST не имеют очевидной интерпретации. Однако отношение суммы квадратов регрессии (SSR) к полной сумме квадратов (SST) представляет собой оценку полезности регрессионного уравнения. Это отношение называется коэффициентом смешанной корреляции r 2 :

Коэффициент смешанной корреляции оценивает долю вариации переменной Y, которая объясняется независимой переменной X в регрессионной модели. В задаче о сети магазинов Sunflowers SSR = 105,7476 и SST = 116,9543. Следовательно, r 2 = 105,7476 / 116,9543 = 0,904. Таким образом, 90,4% вариации годового объема продаж объясняется изменчивостью площади магазинов, измеренной в квадратных футах. Данная величина r 2 свидетельствует о сильной положительной линейной взаимосвязи между двумя переменными, поскольку применение регрессионной модели снижает изменчивость прогнозируемых годовых объемов продаж на 90,4%. Только 9,6% изменчивости годовых объемов продаж в выборке магазинов объясняются другими факторами, не учтенными в регрессионной модели.

Коэффициент смешанной корреляции в задаче о сети магазинов Sunflowers представлен в таблице Регрессионная статистика на рис. 4.

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

Среднеквадратичная ошибка оценки

где Yi — фактическое значение переменной Y при заданном значении Xi, Ŷi — предсказанное значение переменной Y при заданном значении Xi, SSE — сумма квадратов ошибок.

Поскольку SSE = 11,2067, по формуле (8) получаем:

Таким образом, среднеквадратичная ошибка оценки равна 0,9664 млн. долл. (т.е. 966 400 долл.). Этот параметр также рассчитывается Пакетом анализа (см. рис. 4). Среднеквадратичная ошибка оценки характеризует отклонение реальных данных от линии регрессии. Она измеряется в тех же единицах, что и переменная Y. По смыслу среднеквадратичная ошибка очень похожа на стандартное отклонение. В то время как стандартное отклонение характеризует разброс данных вокруг их среднего значения, среднеквадратичная ошибка позволяет оценить колебание точек наблюдения вокруг регрессионной прямой. Cреднеквадратичная ошибка оценки позволяет обнаружить статистически значимую зависимость, существующую между двумя переменными, и предсказать значения переменной Y.

Предположения

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

  • Ошибка должна иметь нормальное распределение.
  • Вариация данных вокруг линии регрессии должна быть постоянной.
  • Ошибки должны быть независимыми.

Первое предположение, о нормальном распределении ошибок, требует, чтобы при каждом значении переменной X ошибки линейной регрессии имели нормальное распределение (рис. 7). Как и t— и F-критерий дисперсионного анализа, регрессионный анализ довольно устойчив к нарушениям этого условия. Если распределение ошибок относительно линии регрессии при каждом значении X не слишком сильно отличается от нормального, выводы относительно линии регрессии и коэффициентов регрессии изменяются незначительно.

Рис. 7. Предположение о нормальном распределении ошибок

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

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

Анализ остатков

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

Оценка пригодности эмпирической модели. Остаток, или оценка ошибки еi, представляет собой разность между наблюдаемым (Yi) и предсказанным (Ŷi) значениями зависимой переменной при заданном значении Xi.

Для оценки пригодности эмпирической модели регрессии остатки откладываются по вертикальной оси, а значения Xi — по горизонтальной. Если эмпирическая модель пригодна, график не должен иметь ярко выраженной закономерности. Если же модель регрессии не пригодна, на рисунке проявится зависимость между значениями Xi и остатками еi.

Рассмотрим примеры (рис. 8). Панель А иллюстрирует возрастание переменной Y при увеличении переменной X. Однако зависимость между этими переменными носит нелинейный характер, поскольку скорость возрастания переменной Y падает при увеличении переменной X. Таким образом, для аппроксимации зависимости между этими переменными лучше подойдет квадратичная модель. Особенно ярко квадратичная зависимость между величинами Xi и ei проявляется на панели Б. Графическое изображение остатков позволяет отфильтровать или удалить линейную зависимость между переменными X и Y и выявить недостаточную точность модели простой линейной регрессии. Таким образом, в данной ситуации вместо простой линейной модели должна применяться квадратичная модель, обладающая более высокой точностью.

Рис. 8. Исследование эмпирической модели простой линейной регрессии

Вернемся к задаче о сети магазинов Sunflowers и посмотрим, хорошо ли подходит простая линейная регрессия для ее решения. Соответствующие данные и расчеты приведены на рис. 9а (формулы можно посмотреть в Excel-файле). Построим диаграмму разброса, откладывая по вертикальной оси остатки ei, а по горизонтальной — независимую переменную Xi (рис. 9б). Несмотря на большой разброс остатков, между ei и Хi нет ярко выраженной зависимости. Остатки одинаково часто принимают как положительные, так и отрицательные значения. Это позволяет сделать вывод, что модель линейной регрессии пригодна для решения задачи о сети магазинов Sunflowers.

Рис. 9. Остатки ei, вычисленные при решении задачи о сети магазинов Sunflowers

Значения остатков (таблица на рис. 9а) и график остатков (аналог рис. 9б) можно получить непосредственно в процедуре Регрессия Пакета анализа. Просто поставьте соответствующие галки (рис. 10).

Рис. 10. Остатки ei и график остатков полученные с помощью Пакета анализа

Проверка условий. График остатков позволяет оценить вариации ошибок. На рис. 10 нет особых различий между ошибками, соответствующими разным значениям Xi. Следовательно, вариации ошибок при разных значениях Хi приблизительно одинаковы. Рассмотрим гипотетическую ситуацию, в которой это условие не выполняется (рис. 11). На этом рисунке изображен эффект веера: при возрастании значений Хi ошибки увеличиваются. Таким образом, изменчивость значений Yi при разных значениях Хi является непостоянной.

Рис. 11. Пример нарушения условия независимости вариаций ошибок от Xi

Нормальность. Чтобы проверить предположение о нормальном распределении ошибок, построим график нормального распределения на основе точечного графика, на вертикальной оси которого отложены значения остатков, а на горизонтальной оси — соответствующие квантили стандартизованного нормального распределения (подробнее см. Проверка гипотезы о нормальном распределении). Для построения такого графика значения остатков должны быть упорядочены по возрастанию (рис. 12). График нормального распределения может быть построен одним кликом с помощью Пакета анализа Excel – просто поставьте соответствующую галочку в окне Регрессия (см. рис. 10, самый низ окна Регрессия – опция График нормальной вероятности).

Рис. 12. График нормального распределения для остатков

Без визуализации данных (с помощью гистограммы, диаграммы «ствол и листья», блочной диаграммы или графика как на рис. 12) проверить предположение о нормальном распределении ошибок очень трудно. Данные, изображенные на рис. 12, не слишком сильно отличаются от нормального распределения. Устойчивость регрессионного анализа и небольшой объем выборки позволяют утверждать, что условие о нормальном распределении ошибок нарушается незначительно.

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

Измерение автокорреляции: статистика Дурбина–Уотсона

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

Распознавание автокорреляции с помощью графика остатков. Для выявления автокорреляции необходимо упорядочить остатки по времени и построить их график. Если данные обладают положительной автокорреляцией, на графике возникнут кластеры остатков, имеющие одинаковый знак. В случае отрицательной автокорреляции остатки будут скачкообразно принимать то положительные, то отрицательные значения. Этот вид автокорреляции очень редко встречается в регрессионном анализе, поэтому мы рассмотрим лишь положительную автокорреляцию. Проиллюстрируем ее следующим примером. Предположим, что менеджер магазина, доставляющего товары на дом, пытается предсказать объем продаж по количеству клиентов, совершивших покупки в течение 15 недель (рис. 13).

Рис. 13. Количество клиентов и объемы продаж за 15 недель

Поскольку данные собирались на протяжении 15 последовательных недель в одном и том же магазине, необходимо определить, наблюдается ли эффект автокорреляции. Построим регрессию с использованием Пакета анализа; включим вывод Остатков, но не будем включать График остатков (рис. 14).

Рис. 14. Параметры линейной регрессии, полученные с использованием Пакета анализа

Анализ рис. 14 показывает, что r 2 = 0,657. Это значит, что 65,7% вариации объемов продаж объясняется изменчивостью количества клиентов. Кроме того, сдвиг b0 переменной Y равен –16,032, а наклон b1 = 0,0308. Однако, прежде чем применять эту модель, необходимо выполнить анализ остатков. Поскольку данные собирались на протяжении 15 последовательных недель, их следует отобразить на графике в том же порядке (рис. 15).

Рис. 15. Зависимость остатков от времени

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

Статистика Дурбина-Уотсона. Автокорреляцию можно выявить и измерить с помощью статистики Дурбина-Уотсона. Эта статистика оценивает корреляцию между соседними остатками:

где еi — остаток, соответствующий i-му периоду времени.

Чтобы лучше понять статистику Дурбина-Уотсона, рассмотрим ее составные части. Числитель представляет собой сумму квадратов разностей между соседними остатками, начиная со второго и заканчивая n-м наблюдением. Знаменатель является суммой квадратов остатков. Вот, что по этому поводу написано в Википедии:

где ρ1 – коэффициент автокорреляции; если ρ1 = 0 (нет автокорреляции), D ≈ 2; если ρ1 ≈ 1 (положительная автокорреляции), D ≈ 0; если ρ1 = -1 (отрицательная автокорреляции), D ≈ 4.

На практике применение критерия Дурбина-Уотсона основано на сравнении величины D с критическими теоретическими значениями dL и dU для заданного числа наблюдений n, числа независимых переменных модели k (для простой линейной регрессии k = 1) и уровня значимости α. Если D dU, гипотеза не отвергается (то есть автокорреляция отсутствует); если dL tU = 2,1788 (рис. 19), нулевая гипотеза Н0 отклоняется. С другой стороны, р-значение для Х = 10,6411, вычисляемое по формуле =1-СТЬЮДЕНТ.РАСП(D3;12;ИСТИНА), приближенно равно нулю, поэтому гипотеза Н0 снова отклоняется. Тот факт, что р-значение почти равно нулю, означает, что если бы между размерами магазинов и годовым объемом продаж не существовало реальной линейной зависимости, обнаружить ее с помощью линейной регрессии было бы практически невозможно. Следовательно, между средним годовым объемом продаж в магазинах и их размером существует статистически значимая линейная зависимость.

Рис. 19. Проверка гипотезы о наклоне генеральной совокупности при уровне значимости, равном 0,05, и 12 степенях свободы

Применение F-критерия для наклона. Альтернативным подходом к проверке гипотез о наклоне простой линейной регрессии является использование F-критерия. Напомним, что F-критерий применяется для проверки отношения между двумя дисперсиями (подробнее см. Однофакторный дисперсионный анализ). При проверке гипотезы о наклоне мерой случайных ошибок является дисперсия ошибки (сумма квадратов ошибок, деленная на количество степеней свободы), поэтому F-критерий использует отношение дисперсии, объясняемой регрессией (т.е. величины SSR, деленной на количество независимых переменных k), к дисперсии ошибок (MSE = SYX 2 ).

По определению F-статистика равна среднему квадрату отклонений, обусловленных регрессией (MSR), деленному на дисперсию ошибки (MSE): F = MSR/MSE, где MSR = SSR / k, MSE = SSE/(n– k – 1), k – количество независимых переменных в регрессионной модели. Тестовая статистика F имеет F-распределение с k и n – k – 1 степенями свободы.

При заданном уровне значимости α решающее правило формулируется так: если F > FU, нулевая гипотеза отклоняется; в противном случае она не отклоняется. Результаты, оформленные в виде сводной таблицы дисперсионного анализа, приведены на рис. 20.

Рис. 20. Таблица дисперсионного анализа для проверки гипотезы о статистической значимости коэффициента регрессии

Аналогично t-критерию F-критерий выводится в таблицу при использовании Пакета анализа (опция Регрессия). Полностью результаты работы Пакета анализа приведены на рис. 4, фрагмент, относящийся к F-статистике – на рис. 21.

Рис. 21. Результаты применения F-критерия, полученные с помощью Пакета анализа Excel

F-статистика равна 113,23, а р-значение близко к нулю (ячейка Значимость F). Если уровень значимости α равен 0,05, определить критическое значение F-распределения с одной и 12 степенями свободы можно по формуле FU =F.ОБР(1-0,05;1;12) = 4,7472 (рис. 22). Поскольку F = 113,23 > FU = 4,7472, причем р-значение близко к 0 0, r = –, если b1 2 = 0,904, а b1— +1,670 (см. рис. 4). Поскольку b1 > 0, коэффициент корреляции между объемом годовых продаж и размером магазина равен r = +√0,904 = +0,951. Проверим нулевую гипотезу, утверждающую, что между этими переменными нет корреляции, используя t-статистику:

При уровне значимости α = 0,05 нулевую гипотезу следует отклонить, поскольку t = 10,64 > 2,1788. Таким образом, можно утверждать, что между объемом годовых продаж и размером магазина существует статистически значимая связь.

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

Оценка математического ожидания и предсказание индивидуальных значений

В этом разделе рассматриваются методы оценки математического ожидания отклика Y и предсказания индивидуальных значений Y при заданных значениях переменной X.

Построение доверительного интервала. В примере 2 (см. выше раздел Метод наименьших квадратов) регрессионное уравнение позволило предсказать значение переменной Y при заданном значении переменной X. В задаче о выборе места для торговой точки средний годовой объем продаж в магазине площадью 4000 кв. футов был равен 7,644 млн. долл. Однако эта оценка математического ожидания генеральной совокупности является точечной. Ранее для оценки математического ожидания генеральной совокупности была предложена концепция доверительного интервала. Аналогично можно ввести понятие доверительного интервала для математического ожидания отклика при заданном значении переменной X:

где , = b0 + b1Xi – предсказанное значение переменное Y при X = Xi, SYX – среднеквадратичная ошибка, n – объем выборки, Xi — заданное значение переменной X, µY|X=Xi – математическое ожидание переменной Y при Х = Хi, SSX =

Анализ формулы (13) показывает, что ширина доверительного интервала зависит от нескольких факторов. При заданном уровне значимости возрастание амплитуды колебаний вокруг линии регрессии, измеренное с помощью среднеквадратичной ошибки, приводит к увеличению ширины интервала. С другой стороны, как и следовало ожидать, увеличение объема выборки сопровождается сужением интервала. Кроме того, ширина интервала изменяется в зависимости от значений Xi. Если значение переменной Y предсказывается для величин X, близких к среднему значению , доверительный интервал оказывается уже, чем при прогнозировании отклика для значений, далеких от среднего.

Допустим, что, выбирая место для магазина, мы хотим построить 95%-ный доверительный интервал для среднего годового объема продаж во всех магазинах, площадь которых равна 4000 кв. футов:

Следовательно, средний годовой объем продаж во всех магазинах, площадь которых равна 4 000 кв. футов, с 95% -ной вероятностью лежит в интервале от 6,971 до 8,317 млн. долл.

Вычисление доверительного интервала для предсказанного значения. Кроме доверительного интервала для математического ожидания отклика при заданном значении переменной X, часто необходимо знать доверительный интервал для предсказанного значения. Несмотря на то что формула для вычисления такого доверительного интервала очень похожа на формулу (13), этот интервал содержит предсказанное значение, а не оценку параметра. Интервал для предсказанного отклика YX=Xi при конкретном значении переменной Xi определяется по формуле:

Предположим, что, выбирая место для торговой точки, мы хотим построить 95%-ный доверительный интервал для предсказанного годового объема продаж в магазине, площадь которого равна 4000 кв. футов:

Следовательно, предсказанный годовой объем продаж в магазине, площадь которого равна 4000 кв. футов, с 95%-ной вероятностью лежит в интервале от 5,433 до 9,854 млн. долл. Как видим, доверительный интервал для предсказанного значения отклика намного шире, чем доверительный интервал для его математического ожидания. Это объясняется тем, что изменчивость при прогнозировании индивидуальных значений намного больше, чем при оценке математического ожидания.

Подводные камни и этические проблемы, связанные с применением регрессии

Трудности, связанные с регрессионным анализом:

  • Игнорирование условий применимости метода наименьших квадратов.
  • Ошибочная оценка условий применимости метода наименьших квадратов.
  • Неправильный выбор альтернативных методов при нарушении условий применимости метода наименьших квадратов.
  • Применение регрессионного анализа без глубоких знаний о предмете исследования.
  • Экстраполяция регрессии за пределы диапазона изменения объясняющей переменной.
  • Путаница между статистической и причинно-следственной зависимостями.

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

Исследователь не должен увлекаться перемалыванием чисел — вычислением сдвига, наклона и коэффициента смешанной корреляции. Ему нужны более глубокие знания. Проиллюстрируем это классическим примером, взятым из учебников. Анскомб показал, что все четыре набора данных, приведенных на рис. 23, имеют одни и те же параметры регрессии (рис. 24).

Рис. 23. Четыре набора искусственных данных

Рис. 24. Регрессионный анализ четырех искусственных наборов данных; выполнен с помощью Пакета анализа (кликните на рисунке, чтобы увеличить изображение)

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

Рис. 25. Диаграммы разброса для четырех наборов данных

Диаграммы разброса и графики остатков свидетельствуют о том, что эти данные отличаются друг от друга. Единственный набор, распределенный вдоль прямой линии, — набор А. График остатков, вычисленных по набору А, не имеет никакой закономерности. Этого нельзя сказать о наборах Б, В и Г. График разброса, построенный по набору Б, демонстрирует ярко выраженную квадратичную модель. Этот вывод подтверждается графиком остатков, имеющим параболическую форму. Диаграмма разброса и график остатков показывают, что набор данных В содержит выброс. В этой ситуации необходимо исключить выброс из набора данных и повторить анализ. Метод, позволяющий обнаруживать и исключать выбросы из наблюдений, называется анализом влияния. После исключения выброса результат повторной оценки модели может оказаться совершенно иным. Диаграмма разброса, построенная по данным из набора Г, иллюстрирует необычную ситуацию, в которой эмпирическая модель значительно зависит от отдельного отклика (Х8 = 19, Y8 = 12,5). Такие регрессионные модели необходимо вычислять особенно тщательно. Итак, графики разброса и остатков являются крайне необходимым инструментом регрессионного анализа и должны быть его неотъемлемой частью. Без них регрессионный анализ не заслуживает доверия.

Рис. 26. Графики остатков для четырех наборов данных

Как избежать подводных камней при регрессионном анализе:

  • Анализ возможной взаимосвязи между переменными X и Y всегда начинайте с построения диаграммы разброса.
  • Прежде чем интерпретировать результаты регрессионного анализа, проверяйте условия его применимости.
  • Постройте график зависимости остатков от независимой переменной. Это позволит определить, насколько эмпирическая модель соответствует результатам наблюдения, и обнаружить нарушение постоянства дисперсии.
  • Для проверки предположения о нормальном распределении ошибок используйте гистограммы, диаграммы «ствол и листья», блочные диаграммы и графики нормального распределения.
  • Если условия применимости метода наименьших квадратов не выполняются, используйте альтернативные методы (например, модели квадратичной или множественной регрессии).
  • Если условия применимости метода наименьших квадратов выполняются, необходимо проверить гипотезу о статистической значимости коэффициентов регрессии и построить доверительные интервалы, содержащие математическое ожидание и предсказанное значение отклика.
  • Избегайте предсказывать значения зависимой переменной за пределами диапазона изменения независимой переменной.
  • Имейте в виду, что статистические зависимости не всегда являются причинно-следственными. Помните, что корреляция между переменными не означает наличия причинно-следственной зависимости между ними.

Резюме. Как показано на структурной схеме (рис. 27), в заметке описаны модель простой линейной регрессии, условия ее применимости и способы проверки этих условий. Рассмотрен t-критерий для проверки статистической значимости наклона регрессии. Для предсказания значений зависимой переменной использована регрессионная модель. Рассмотрен пример, связанный с выбором места для торговой точки, в котором исследуется зависимость годового объема продаж от площади магазина. Полученная информация позволяет точнее выбрать место для магазина и предсказать его годовой объем продаж. В следующих заметках будет продолжено обсуждение регрессионного анализа, а также рассмотрены модели множественной регрессии.

Рис. 27. Структурная схема заметки

[1] Используются материалы книги Левин и др. Статистика для менеджеров. – М.: Вильямс, 2004. – с. 792–872

[2] Если зависимая переменная является категорийной, необходимо применять логистическую регрессию.

Основы линейной регрессии

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

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

Если мы полагаем, что y зависит от x, причём изменения в y вызываются именно изменениями в x, мы можем определить линию регрессии (регрессия y на x), которая лучше всего описывает прямолинейное соотношение между этими двумя переменными.

Статистическое использование слова «регрессия» исходит из явления, известного как регрессия к среднему, приписываемого сэру Френсису Гальтону (1889).

Он показал, что, хотя высокие отцы имеют тенденцию иметь высоких сыновей, средний рост сыновей меньше, чем у их высоких отцов. Средний рост сыновей «регрессировал» и «двигался вспять» к среднему росту всех отцов в популяции. Таким образом, в среднем высокие отцы имеют более низких (но всё-таки высоких) сыновей, а низкие отцы имеют сыновей более высоких (но всё-таки довольно низких).

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

Математическое уравнение, которое оценивает линию простой (парной) линейной регрессии:

x называется независимой переменной или предиктором.

Y – зависимая переменная или переменная отклика. Это значение, которое мы ожидаем для y (в среднем), если мы знаем величину x, т.е. это «предсказанное значение y»

  • a – свободный член (пересечение) линии оценки; это значение Y, когда x=0 (Рис.1).
  • b – угловой коэффициент или градиент оценённой линии; она представляет собой величину, на которую Y увеличивается в среднем, если мы увеличиваем x на одну единицу.
  • a и b называют коэффициентами регрессии оценённой линии, хотя этот термин часто используют только для b.

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

Рис.1. Линия линейной регрессии, показывающая пересечение a и угловой коэффициент b (величину возрастания Y при увеличении x на одну единицу)

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

Мы выполняем регрессионный анализ, используя выборку наблюдений, где a и b – выборочные оценки истинных (генеральных) параметров, α и β , которые определяют линию линейной регрессии в популяции (генеральной совокупности).

Наиболее простым методом определения коэффициентов a и b является метод наименьших квадратов (МНК).

Подгонка оценивается, рассматривая остатки (вертикальное расстояние каждой точки от линии, например, остаток = наблюдаемому y – предсказанный y, Рис. 2).

Линию лучшей подгонки выбирают так, чтобы сумма квадратов остатков была минимальной.

Рис. 2. Линия линейной регрессии с изображенными остатками (вертикальные пунктирные линии) для каждой точки.

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

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

Можно использовать остатки для проверки следующих предположений, лежащих в основе линейной регрессии:

  • Остатки нормально распределены с нулевым средним значением;

Если допущения линейности, нормальности и/или постоянной дисперсии сомнительны, мы можем преобразовать или и рассчитать новую линию регрессии, для которой эти допущения удовлетворяются (например, использовать логарифмическое преобразование или др.).

Аномальные значения (выбросы) и точки влияния

«Влиятельное» наблюдение, если оно опущено, изменяет одну или больше оценок параметров модели (т.е. угловой коэффициент или свободный член).

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

И для выбросов, и для «влиятельных» наблюдений (точек) используют модели, как с их включением, так и без них, обращают внимание на изменение оценки (коэффициентов регрессии).

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

Гипотеза линейной регрессии

При построении линейной регрессии проверяется нулевая гипотеза о том, что генеральный угловой коэффициент линии регрессии β равен нулю.

Если угловой коэффициент линии равен нулю, между и нет линейного соотношения: изменение не влияет на

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

Вычислить статистику критерия, равную отношению , которая подчиняется распределению с степенями свободы, где стандартная ошибка коэффициента

,

— оценка дисперсии остатков.

Обычно если достигнутый уровень значимости нулевая гипотеза отклоняется.

Можно рассчитать 95% доверительный интервал для генерального углового коэффициента :

где процентная точка распределения со степенями свободы что дает вероятность двустороннего критерия

Это тот интервал, который содержит генеральный угловой коэффициент с вероятностью 95%.

Для больших выборок, скажем, мы можем аппроксимировать значением 1,96 (то есть статистика критерия будет стремиться к нормальному распределению)

Оценка качества линейной регрессии: коэффициент детерминации R 2

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

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

Долю общей дисперсии , которая объясняется регрессией называют коэффициентом детерминации, обычно выражают через процентное соотношение и обозначают R 2 (в парной линейной регрессии это величина r 2 , квадрат коэффициента корреляции), позволяет субъективно оценить качество уравнения регрессии.

Разность представляет собой процент дисперсии который нельзя объяснить регрессией.

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

Применение линии регрессии для прогноза

Можно применять регрессионную линию для прогнозирования значения по значению в пределе наблюдаемого диапазона (никогда не экстраполируйте вне этих пределов).

Мы предсказываем среднюю величину для наблюдаемых, которые имеют определенное значение путем подстановки этого значения в уравнение линии регрессии.

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

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

Подобным образом можно рассчитать более широкую область, внутри которой, как мы ожидаем, лежит наибольшее число (обычно 95%) наблюдений.

Простые регрессионные планы

Простые регрессионные планы содержат один непрерывный предиктор. Если существует 3 наблюдения со значениями предиктора P , например, 7, 4 и 9, а план включает эффект первого порядка P , то матрица плана X будет иметь вид

а регрессионное уравнение с использованием P для X1 выглядит как

Если простой регрессионный план содержит эффект высшего порядка для P , например квадратичный эффект, то значения в столбце X1 в матрице плана будут возведены во вторую степень:

а уравнение примет вид

Y = b 0 + b 1 P 2

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

Пример: простой регрессионный анализ

Этот пример использует данные, представленные в таблице:

Рис. 3. Таблица исходных данных.

Данные составлены на основе сравнения переписей 1960 и 1970 в произвольно выбранных 30 округах. Названия округов представлены в виде имен наблюдений. Информация относительно каждой переменной представлена ниже:

Рис. 4. Таблица спецификаций переменных.

Задача исследования

Для этого примера будут анализироваться корреляция уровня бедности и степень, которая предсказывает процент семей, которые находятся за чертой бедности. Следовательно мы будем трактовать переменную 3 ( Pt_Poor ) как зависимую переменную.

Можно выдвинуть гипотезу: изменение численности населения и процент семей, которые находятся за чертой бедности, связаны между собой. Кажется разумным ожидать, что бедность ведет к оттоку населения, следовательно, здесь будет отрицательная корреляция между процентом людей за чертой бедности и изменением численности населения. Следовательно мы будем трактовать переменную 1 ( Pop_Chng ) как переменную-предиктор.

Просмотр результатов

Коэффициенты регрессии

Рис. 5. Коэффициенты регрессии Pt_Poor на Pop_Chng.

На пересечении строки Pop_Chng и столбца Парам. не стандартизованный коэффициент для регрессии Pt_Poor на Pop_Chng равен -0.40374 . Это означает, что для каждого уменьшения численности населения на единицу, имеется увеличение уровня бедности на .40374. Верхний и нижний (по умолчанию) 95% доверительные пределы для этого не стандартизованного коэффициента не включают ноль, так что коэффициент регрессии значим на уровне p . Обратите внимание на не стандартизованный коэффициент, который также является коэффициентом корреляции Пирсона для простых регрессионных планов, равен -.65, который означает, что для каждого уменьшения стандартного отклонения численности населения происходит увеличение стандартного отклонения уровня бедности на .65.

Распределение переменных

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

Рис. 6. Гистограмма переменной Pt_Poor.

Как вы можете заметить, распределение этой переменной заметно отличается от нормального распределения. Тем не менее, хотя даже два округа (два правых столбца) имеют высокий процент семей, которые находятся за чертой бедности, чем ожидалось в случае нормального распределения, кажется, что они находятся «внутри диапазона.»

Рис. 7. Гистограмма переменной Pt_Poor.

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

Диаграмма рассеяния

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

Рис. 8. Диаграмма рассеяния.

Диаграмма рассеяния показывает явную отрицательную корреляцию ( -.65 ) между двумя переменными. На ней также показан 95% доверительный интервал для линии регрессии, т.е., с 95% вероятностью линия регрессии проходит между двумя пунктирными кривыми.

Критерии значимости

Рис. 9. Таблица, содержащая критерии значимости.

Критерий для коэффициента регрессии Pop_Chng подтверждает, что Pop_Chng сильно связано с Pt_Poor , p .

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

источники:

http://baguzin.ru/wp/prostaya-linejnaya-regressiya/

http://statistica.ru/theory/osnovy-lineynoy-regressii/

Download Article

Download Article

The sum of squared errors, or SSE, is a preliminary statistical calculation that leads to other data values. When you have a set of data values, it is useful to be able to find how closely related those values are. You need to get your data organized in a table, and then perform some fairly simple calculations. Once you find the SSE for a data set, you can then go on to find the variance and standard deviation.

  1. Image titled Calculate the Sum of Squares for Error (SSE) Step 1

    1

    Create a three column table. The clearest way to calculate the sum of squared errors is begin with a three column table. Label the three columns as {text{Value}}, {text{Deviation}}, and {text{Deviation}}^{2}.[1]

  2. Image titled Calculate the Sum of Squares for Error (SSE) Step 2

    2

    Fill in the data. The first column will hold the values of your measurements. Fill in the {text{Value}} column with the values of your measurements. These may be the results of some experiment, a statistical study, or just data provided for a math problem.[2]

    • In this case, suppose you are working with some medical data and you have a list of the body temperatures of ten patients. The normal body temperature expected is 98.6 degrees. The temperatures of ten patients are measured and give the values 99.0, 98.6, 98.5, 101.1, 98.3, 98.6, 97.9, 98.4, 99.2, and 99.1. Write these values in the first column.

    Advertisement

  3. Image titled Calculate the Sum of Squares for Error (SSE) Step 3

    3

    Calculate the mean. Before you can calculate the error for each measurement, you must calculate the mean of the full data set.[3]

  4. Image titled Calculate the Sum of Squares for Error (SSE) Step 4

    4

    Calculate the individual error measurements. In the second column of your table, you need to fill in the error measurements for each data value. The error is the difference between the measurement and the mean.[4]

    • For the given data set, subtract the mean, 98.87, from each measured value, and fill in the second column with the results. These ten calculations are as follows:
  5. Image titled Calculate the Sum of Squares for Error (SSE) Step 5

    5

    Calculate the squares of the errors. In the third column of the table, find the square of each of the resulting values in the middle column. These represent the squares of the deviation from the mean for each measured value of data.[5]

    • For each value in the middle column, use your calculator and find the square. Record the results in the third column, as follows:
  6. Image titled Calculate the Sum of Squares for Error (SSE) Step 6

    6

    Add the squares of errors together. The final step is to find the sum of the values in the third column. The desired result is the SSE, or the sum of squared errors.[6]

    • For this data set, the SSE is calculated by adding together the ten values in the third column:
    • SSE=6.921
  7. Advertisement

  1. Image titled Calculate the Sum of Squares for Error (SSE) Step 7

    1

    Label the columns of the spreadsheet. You will create a three column table in Excel, with the same three headings as above.

    • In cell A1, type in the heading “Value.”
    • In cell B1, enter the heading “Deviation.»
    • In cell C1, enter the heading “Deviation squared.”
  2. Image titled Calculate the Sum of Squares for Error (SSE) Step 8

    2

    Enter your data. In the first column, you need to type in the values of your measurements. If the set is small, you can simply type them in by hand. If you have a large data set, you may need to copy and paste the data into the column.

  3. Image titled Calculate the Sum of Squares for Error (SSE) Step 9

    3

    Find the mean of the data points. Excel has a function that will calculate the mean for you. In some vacant cell underneath your data table (it really doesn’t matter what cell you choose), enter the following:[7]

    • =Average(A2:___)
    • Do not actually type a blank space. Fill in that blank with the cell name of your last data point. For example, if you have 100 points of data, you will use the function:
      • =Average(A2:A101)
      • This function includes data from A2 through A101 because the top row contains the headings of the columns.
    • When you press Enter or when you click away to any other cell on the table, the mean of your data values will automatically fill the cell that you just programmed.
  4. Image titled Calculate the Sum of Squares for Error (SSE) Step 10

    4

    Enter the function for the error measurements. In the first empty cell in the “Deviation” column, you need to enter a function to calculate the difference between each data point and the mean. To do this, you need to use the cell name where the mean resides. Let’s assume for now that you used cell A104.[8]

    • The function for the error calculation, which you enter into cell B2, will be:
      • =A2-$A$104. The dollar signs are necessary to make sure that you lock in cell A104 for each calculation.
  5. Image titled Calculate the Sum of Squares for Error (SSE) Step 11

    5

    Enter the function for the error squares. In the third column, you can direct Excel to calculate the square that you need.[9]

    • In cell C2, enter the function
      • =B2^2
  6. Image titled Calculate the Sum of Squares for Error (SSE) Step 12

    6

    Copy the functions to fill the entire table. After you have entered the functions in the top cell of each column, B2 and C2 respectively, you need to fill in the full table. You could retype the function in every line of the table, but this would take far too long. Use your mouse, highlight cells B2 and C2 together, and without letting go of the mouse button, drag down to the bottom cell of each column.

    • If we are assuming that you have 100 data points in your table, you will drag your mouse down to cells B101 and C101.
    • When you then release the mouse button, the formulas will be copied into all the cells of the table. The table should be automatically populated with the calculated values.
  7. Image titled Calculate the Sum of Squares for Error (SSE) Step 13

    7

    Find the SSE. Column C of your table contains all the square-error values. The final step is to have Excel calculate the sum of these values.[10]

    • In a cell below the table, probably C102 for this example, enter the function:
      • =Sum(C2:C101)
    • When you click Enter or click away into any other cell of the table, you should have the SSE value for your data.
  8. Advertisement

  1. Image titled Calculate the Sum of Squares for Error (SSE) Step 14

    1

    Calculate variance from SSE. Finding the SSE for a data set is generally a building block to finding other, more useful, values. The first of these is variance. The variance is a measurement that indicates how much the measured data varies from the mean. It is actually the average of the squared differences from the mean.[11]

    • Because the SSE is the sum of the squared errors, you can find the average (which is the variance), just by dividing by the number of values. However, if you are calculating the variance of a sample set, rather than a full population, you will divide by (n-1) instead of n. Thus:
      • Variance = SSE/n, if you are calculating the variance of a full population.
      • Variance = SSE/(n-1), if you are calculating the variance of a sample set of data.
    • For the sample problem of the patients’ temperatures, we can assume that 10 patients represent only a sample set. Therefore, the variance would be calculated as:
  2. Image titled Calculate the Sum of Squares for Error (SSE) Step 15

    2

    Calculate standard deviation from SSE. The standard deviation is a commonly used value that indicates how much the values of any data set deviate from the mean. The standard deviation is the square root of the variance. Recall that the variance is the average of the square error measurements.[12]

    • Therefore, after you calculate the SSE, you can find the standard deviation as follows:
      • {text{Standard Deviation}}={sqrt  {{frac  {{text{SSE}}}{n-1}}}}
    • For the data sample of the temperature measurements, you can find the standard deviation as follows:
  3. Image titled Calculate the Sum of Squares for Error (SSE) Step 16

    3

    Use SSE to measure covariance. This article has focused on data sets that measure only a single value at a time. However, in many studies, you may be comparing two separate values. You would want to know how those two values relate to each other, not only to the mean of the data set. This value is the covariance.[13]

    • The calculations for covariance are too involved to detail here, other than to note that you will use the SSE for each data type and then compare them. For a more detailed description of covariance and the calculations involved, see Calculate Covariance.
    • As an example of the use of covariance, you might want to compare the ages of the patients in a medical study to the effectiveness of a drug in lowering fever temperatures. Then you would have one data set of ages and a second data set of temperatures. You would find the SSE for each data set, and then from there find the variance, standard deviations and covariance.
  4. Advertisement

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Thanks for submitting a tip for review!

References

About This Article

Article SummaryX

To calculate the sum of squares for error, start by finding the mean of the data set by adding all of the values together and dividing by the total number of values. Then, subtract the mean from each value to find the deviation for each value. Next, square the deviation for each value. Finally, add all of the squared deviations together to get the sum of squares for error. To learn how to calculate the sum of squares for error using Microsoft Excel, scroll down!

Did this summary help you?

Thanks to all authors for creating a page that has been read 508,003 times.

Did this article help you?

  • Сузуки гранд витара ошибка р0335
  • Сумма квадратов ошибок мнк
  • Судья не колеблясь исправил свою ошибку как пишется
  • Сузуки гранд витара ошибка двигатель
  • Сумма квадратов ошибок sse