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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Тест Голдфелда-Кванта)
(Исходный код)
Строка 179: Строка 179:
==Исходный код==
==Исходный код==
-
[https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/ResAnalysis Функции анализирующие остатки (реализовано в MATLAB)]
+
[https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Ivkin2010Analysis Функции анализирующие остатки (реализовано в MATLAB)]
==См. также==
==См. также==

Версия 22:55, 10 марта 2012

Содержание

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

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

Задана выборка 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. Делим наблюдения на три части, причём они должны быть равны или примерно равны, а также первая и третья должны быть одинаковы.
  3. Провести две независимые регрессии для первой части и для последней. Рассчитать выровненные значения и построить соответствующие остатки (y_{vyr} -y):e_1 и e_2;
  4. Cоставить cтатистику Фишера F=(\sum(e_1)^2)/(\sum(e_2)^2. Если F>Fкр, следовательно есть гетероскедостичность.

Тест Ансари-Брэдли

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

  • Расположим n = n_1 + n_2 по возрастанию;
  • Расставим метки таким образом : (n_1+n_2)/2 , (n_1+n_2)/2 - 1, \dots ,2,1,1,2, \dots , (n_1+n_2)/2 - 1, (n_1+n_2)/2

Эвристика

Суть данной эвристики состоит в ранжировании псевдодисперсий и в анализе полученной гистограммы. Под псевдодисперсией будем понимать величины  dis_i = \varepsilon_i^2 - mean^2, где mean = \sum_{i=1}^n \varepsilon_i/n. Простейший анализ гистограммы, состоящей из 10 интервалов, будем проводить сравнением количества элементов на первых двух интервалах. Это отношение будем сравнивать с некоторой, заранее заданной константой, на основе чего и будем принимать решение о гетероскедастичности. Вот пример гистограммы для гомоскедастичного случая (график его остатков был представлен ранее):

image:hist.png

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

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

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


Три модели

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

Модель №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
  • Кобзарь А. И. Прикладная математическая статистика. — М.: Физматлит, 2006. — 816 с. ISBN 5-9221-0707-0


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


В настоящее время задание завершено и проверено. Данная страница может свободно правиться другими участниками проекта MachineLearning.ru.

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