Анализ регрессионных остатков (пример)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Модель №2 (плохая,одномерная))
(Модель №1 (хорошая))
Строка 78: Строка 78:
Наша модель : <tex>y_i=\sum_{j=1}^m w_j x_{ij} + \varepsilon_i, i=1,\dots,n</tex>, где <tex>\varepsilon_i \sim N(0,\sigma), i= 1,\dots,n</tex>. Таким образом все гипотезы должны выполняться и гетероскедастичность должна отсутствовать.
Наша модель : <tex>y_i=\sum_{j=1}^m w_j x_{ij} + \varepsilon_i, i=1,\dots,n</tex>, где <tex>\varepsilon_i \sim N(0,\sigma), i= 1,\dots,n</tex>. Таким образом все гипотезы должны выполняться и гетероскедастичность должна отсутствовать.
-
[A,x,res] = GetGoodExample
+
<big>[A,x,res] = GetGoodExample
[meanst, distab, normchi2, normjb] = ResAnalysis(res)
[meanst, distab, normchi2, normjb] = ResAnalysis(res)
GoldfeldQuandt(A(:,1:end-1),A(:,end),1)
GoldfeldQuandt(A(:,1:end-1),A(:,end),1)
GoldfeldQuandt(A(:,1:end-1),A(:,end),2)
GoldfeldQuandt(A(:,1:end-1),A(:,end),2)
-
HistAnalys(res)
+
HistAnalys(res)</big>
Получаем результат:
Получаем результат:
-
% Проверка основных гипотиз
+
<big>% Проверка основных гипотиз
meanst = 0
meanst = 0
distab = 0.0500
distab = 0.0500
Строка 95: Строка 95:
goldfeldquandt1 = 0
goldfeldquandt1 = 0
goldfeldquandt2 = 0
goldfeldquandt2 = 0
-
result = 0
+
result = 0</big>

Версия 03:39, 29 июня 2010

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

Содержание

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

Задана выборка D = \{ y_i,\mathbf{x}_i\}_{i=1}^n откликов и признаков. Рассматривается множество линейных регрессионных моделей вида:

y_i=\sum_{j=1}^m w_j x_{ij} + \varepsilon_i, i=1,\dots,n. Требуется создать инструмент анализа адекватности модели используя анализ регрессионных остатков и исследовать значимость признаков и поведение остатков в случае гетероскедастичности.

Описание алгоритма

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

Анализ регрессионных остатков заключается в проверке нескольких гипотез:

  •  E \varepsilon_i = 0,i= 1,\dots,n
    (1)
  •  D \varepsilon_i = \sigma^2,i= 1,\dots,n
    (2)
  •   \varepsilon_i \sim N(0,\sigma), i= 1,\dots,n
    (3)
  •   \varepsilon_i,  i= 1,\dots,n
    (4)
     — независимы

где \varepsilon_i=y_i - f_i, i= 1,\dots,n, — регрессионные остатки конкретной модели. f_i - отклики посчитанные по модели, а y_i - эмпирические отклики.

Для проверки первой гипотезы воспользуемся критерием знаков. Проверка второй гипотезы по сути является проверкой на гомоскедастичность, то есть на постоянство дисперсии, случай гетероскедастичности будет рассмотрен ниже. Для этого воспользуемся двумя статистическими тестами: тестом Ансари-Брэдли и критерием Голдфелда-Кванта. Так как тест Ансари-Брэдли фактически осуществляет проверку гипотезы, что у двух предоставленных выборок дисперсии одинаковы, а мы фактически имеем только один вектор остатков, то произведем несколько тестов, сравнивая в каждом две случайные выборки из нашего вектора остатков. Проверку нормальности распределения осуществим с помощью критерия согласия хи-квадрат, модифицированного для проверки на нормальность, то есть сравнивая данное нам распределение в остатках с нормальным распределением, имеющим моментные характеристики, вычисленные из вектора остатков. Наконец, проверку последнего условия реализуем с помощью статистики Дарбина-Уотсона.

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

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

R^2 \equiv 1 - {\sum_i (y_i - {f}_i)^2\over \sum_i (y_i-\bar{y})^2\,

где y_i — эмпирический отклик, f_i — отклик, посчитанный по модели, и \bar{y} — математическое ожидание y_i.

Гетероскедастичность

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

Визуальный анализ

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

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

В данном случае визуально можно констатировать факт непостоянства дисперсии и даже связать это изменение с номером эксперимента (или возможно с одним из признаков, если он монотонно изменялся по номеру эксперимента).

Еще один пример визуально определимой гетероскедастичности.

Статистические методы детекции

Опишем суть нескольких общеупотребительных статистических тестов на гетероскедастичность. Во всех этих тестах основной гипотезой H_0 является равенство \sigma_1^2=\sigma_2^2=\dots=\sigma_n^2 против альтернативной гипотезы H_1: не H_0.

Тест Уайта

Содержательный смысл теста в том, что часто гетероскедастичность модели вызвана зависимостью (возможно довольно сложной) дисперсий ошибок от признаков. Реализуя эту идею, Уайт предложил метод тестирования гипотезы H_0 без каких-либо предположений о структуре гетероскедастичности. Сначала к исходной модели применяется обычный метод наименьших квадратов и находятся остатки регрессии e_t, t=1,\dots\,n. Затем осуществляется регрессия квадратов этих остатков e_t^2 на все признаки, их квадраты, попарные произведения и константу. Тогда при гипотезе H_0 величина nR^2 асимптотически имеет распределение \chi^2(N-1), где R^2 — коэффициент детерминации, а N — число регрессоров второй регрессии. Плюс данного теста — его универсальность. Минусы : 1) если гипотеза H_0 отвергается, то никаких указаний на функциональную форму гетероскедастичности мы не получаем; 2) несомненным минусом является поиск вслепую вида регрессии(начинаем приближать простыми полиномами второй степени без какой бы то ни было причины на это)

Тест Голдфелда-Кванта

Этот тест применяется, когда есть предположение о прямой зависимости дисперсии ошибок от некоторого признака. Алгоритм метода:

  1. упорядочить данные ппо убыванию того признака, относительно которого сделано предположение;
  2. исключить d средних наблюдений ( d должно быть порядка четверти от общего количества наблюдений);
  3. провести две независимые регрессии для первых n/2 - d/2 наблюдений и последних n/2 - d/2 наблюдений и построить соответствующие остатки e_1 и e_2;
  4. составить статистику F = e_1'e_1/e_2'e_2. Если верна гипотеза H_0, то F имеет распределение Фишера с (n/2 - d/2 - k, n/2 - d/2 - k) степенями свободы. Большая величина этой статистики означает, что гипотезу H_0 стоит отвергнуть.

Эвристика

Вычислительный эксперимент на модельных данных

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


Три модели

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

Модель №1 (хорошая)

Наша модель : y_i=\sum_{j=1}^m w_j x_{ij} + \varepsilon_i, i=1,\dots,n, где \varepsilon_i \sim N(0,\sigma), i= 1,\dots,n. Таким образом все гипотезы должны выполняться и гетероскедастичность должна отсутствовать.

[A,x,res] = GetGoodExample
[meanst, distab, normchi2, normjb] = ResAnalysis(res)
GoldfeldQuandt(A(:,1:end-1),A(:,end),1)
GoldfeldQuandt(A(:,1:end-1),A(:,end),2)
HistAnalys(res)


Получаем результат:

 % Проверка основных гипотиз 
 meanst = 0
 distab = 0.0500
 normchi2 = 0
 normjb = 0
 %Проверка на гетероскедастичность% 
 goldfeldquandt1 = 0
 goldfeldquandt2 = 0
 result = 0


График остатков этой модели уже был приведен выше и не представляет особого интереса.

Модель №2 (плохая,одномерная)

Наша модель : y_i=w*x_i + sin(x_i)\varepsilon_i, i=1,\dots,n, где \varepsilon_i \sim N(0,\sigma), i= 1,\dots,n. Таким образом, модель очевидным образом гетероскедастична, но визуальным анализом это сложно обнаружить(см.рисунок).

image:bad.png

[A,x,res] = GetBadExample
[meanst, distab, normchi2, normjb] = ResAnalysis(res)
GoldfeldQuandt(A(:,1:end-1),A(:,end),1)
HistAnalys(res)


Получаем результат:

 % Проверка основных гипотиз 
 meanst = 0
 distab = 0.0340
 normchi2 = 1.0020
 normjb = 1.0020
 %Проверка на гетероскедастичность% 
 goldfeldquandt1 = 0
 result = 1


Нормальность отвергнута. Гетероскедастичность была обнаружена только эвристикой. Приведем гистограмму полученную эвристикой:

image:badhist.png

Модель №3 (плохая,многомерная)

Наша модель : y_i=\sum_{j=1}^m w_j x_{ij} + ((x_1)^2+x_2)\varepsilon_i, i=1,\dots,n, где \varepsilon_i \sim N(0,\sigma), i= 1,\dots,n. Таким образом, модель очевидным образом гетероскедастична, но снова визуальным анализом это сложно обнаружить(см.рисунок).

image:bad1.png

[A,x,res] = GetBadExample1

[meanst, distab, normchi2, normjb] = ResAnalysis(res)
GoldfeldQuandt(A(:,1:end-1),A(:,end),1)
GoldfeldQuandt(A(:,1:end-1),A(:,end),2)
GoldfeldQuandt(A(:,1:end-1),A(:,end),5)
HistAnalys(res)


Получаем результат:

 % Проверка основных гипотиз 
 meanst = 0
 distab = 0.0288
 normchi2 = 1.0025
 normjb = 1.0025
 %Проверка на гетероскедастичность% 
 goldfeldquandt1 = 1
 goldfeldquandt2 = 1
 goldfeldquandt5 = 0
 result = 1


Нормальность отвергнута. Гетероскедастичность была обнаружена как эвристикой так и тестом Голдфелда-Квандта (зависимость от первой и второй и независимость от пятой переменной). Приведем гистограмму полученную эвристикой:

image:badhist1.png

Выводы

Статистические проверки на нормальность показали себя с наилудшей стороны. Эвристика показала хорошие результаты в исследовании на гетероскедастичность. Тест Голдфелда-Квандта не сработал только в одном тесте. Тест Ансари-Брэдли (использовался для проверки на постоянство дисперсии) показал наихудшие результаты, так как с его помощью не удалось различить две существенно разные модели. Это вполне объяснимо: мы применяли этот тест для сравнения дисперсий двух случайных выборок взятых из нашего вектора остатков. Вполне очевидно что результат достаточно не предсказуем вследствии именно этой случайности выборок. В итоге мы получали одинаковые результаты для разных моделей. (причем увеличение числа экспериментов не решает данной проблемы).

Исходный код

Функции анализирующие остатки (реализовано в MATLAB)

См. также

Wikipedia о гетероскедастичности, англ.

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

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

Литература

  • Н.Джонсон, Ф.Лион Статистика и планирование эксперимента в технике и науке, перевод с английского «Мир»,1980. — 610 c.
  • Я. Р. Магнус, П. К. Катышев, А. А. Пересецкий Эконометрика. Начальный курс:Учеб. — 6 изд.,перераб.и доп. — М.:Дело,2004. — 576 с. ISBN 5-7749-0055-Х
  • Applied Logistic Regression/ David W. Hosmer,Stanley Lemeshow.-2nd ed. -Wiley-Interscience Publication,2000. - 397 c. ISBN 0-471-35632-8


Данная статья является непроверенным учебным заданием.
Студент: Участник:Никита Ивкин
Преподаватель: Участник:В.В.Стрижов
Срок: 28 мая 2010

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.

Личные инструменты