Анализ мультиколлинеарности (пример)
Материал из MachineLearning.
м  (→Фактор инфляции дисперсии (VIF))  | 
				м  (→Вычислительный эксперимент)  | 
			||
| Строка 90: | Строка 90: | ||
===Пример 2===  | ===Пример 2===  | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
Используется неизменные признаки <tex>x_1</tex>, <tex>x_2</tex> и зависящие от параметра <tex>k</tex> признаки <tex>y_1</tex>,<tex>y_2</tex>,<tex>y_3</tex>. При <tex>k=0</tex> все признаки ортогональны, при увеличении <tex>k</tex> признаки <tex>y_1</tex>, <tex>y_2</tex> приближаются к <tex>x_1</tex>, а <tex>y_3</tex> - к <tex>x_2</tex> вплоть до полной коллинеарности при <tex>k=1</tex>.<br/>  | Используется неизменные признаки <tex>x_1</tex>, <tex>x_2</tex> и зависящие от параметра <tex>k</tex> признаки <tex>y_1</tex>,<tex>y_2</tex>,<tex>y_3</tex>. При <tex>k=0</tex> все признаки ортогональны, при увеличении <tex>k</tex> признаки <tex>y_1</tex>, <tex>y_2</tex> приближаются к <tex>x_1</tex>, а <tex>y_3</tex> - к <tex>x_2</tex> вплоть до полной коллинеарности при <tex>k=1</tex>.<br/>  | ||
Зависимость VIF от параметра:<br/>  | Зависимость VIF от параметра:<br/>  | ||
| Строка 112: | Строка 100: | ||
 |}<br/>  |  |}<br/>  | ||
Наблюдается две основных зависимости - первая зависимость между признаками <tex>x_1</tex>, <tex>y_1</tex>, <tex>y_2</tex> и вторая между признаками <tex>x_2</tex>, <tex>y_3</tex>.  | Наблюдается две основных зависимости - первая зависимость между признаками <tex>x_1</tex>, <tex>y_1</tex>, <tex>y_2</tex> и вторая между признаками <tex>x_2</tex>, <tex>y_3</tex>.  | ||
| + | |||
| + | ===Пример 3===  | ||
| + | Используются [http://www-stat.stanford.edu/~hastie/Papers/LARS/ реальные данные]. На них был проведен эксперимент по вычислению VIF и таблицы BKW.  | ||
| + | {| class="wikitable" style="text-align: center;"  | ||
| + | |- bgcolor="#ccccc"  | ||
| + | ! width=30 % |#  | ||
| + | ! width=40 % |VIF  | ||
| + | ! width=30 % |#  | ||
| + | ! width=40 % |VIF  | ||
| + | |-  | ||
| + | | '''1''' || 1.21 || '''7''' || 3.82     | ||
| + | |-  | ||
| + | | '''2''' || 1.31 || '''8''' || 7.43   | ||
| + | |-  | ||
| + | | '''3''' || 1.69 || '''9''' || 3.46    | ||
| + | |-  | ||
| + | | '''4''' || 1.51 || '''10''' || 1.47   | ||
| + | |-  | ||
| + | | '''5''' || 19.27 || '''11''' || 1.97   | ||
| + | |-  | ||
| + | | '''6''' || 16.37 || ''' ''' || ''' '''   | ||
| + | |-  | ||
| + | |}  | ||
| + | У двух признаков значение фактора инфляции дисперсии больше 10, еще у одного больше 5. Такой результат — следствие их мультиколлинеарности относительно остальных признаков нашего набора.  | ||
| + | |||
| + | {| class="wikitable" style="text-align: center;"  | ||
| + | |- bgcolor="#ccccc"  | ||
| + | ! width=70 % |Condition index   | ||
| + | ! width=50 % |<tex>var({b}_{1}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{2}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{3}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{4}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{5}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{6}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{7}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{8}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{9}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{10}) </tex>  | ||
| + | ! width=50 % |<tex>var({b}_{11}) </tex>  | ||
| + | |-  | ||
| + | | 1 || 0.0004 || 0.0006 || 0.0001 || 0.0001 || 0.0000 || 0.0000 || 0.0001 || 0.0001 || 0.0000 || 0.0000 || 0.0008   | ||
| + | |-  | ||
| + | | 7.12 || 0.0031 || 0.0016 || 0.00016 || 0.0002 || 0.0001 || 0.0000 || 0.0251 || 0.0043 || 0.0000 || 0.0002 || 0.2885   | ||
| + | |-  | ||
| + | | 9.03 || 0.0003 || 0.2262 || 0.0013 || 0.0007 || 0.0000 || 0.0010 || 0.0284 || 0.0154 || 0.0000 || 0.0001 || 0.1557   | ||
| + | |-  | ||
| + | | 10.88 || 0.0149 || 0.3400 || 0.0003 || 0.0035 || 0.0022 || 0.01285 || 0.0007 || 0.0179 || 0.0000 || 0.0003 || 0.0380  | ||
| + | |-  | ||
| + | | 14.14 || 0.9113 || 0.0819 || 0.0036 || 0.0003 || 0.0001 || 0.0001 || 0.0179 || 0.0001 || 0.0003 || 0.0004 || 0.0158  | ||
| + | |-  | ||
| + | | 18.83 || 0.0233 || 0.2490 || 0.1015 || 0.0240 || 0.0032 || 0.0238 || 0.0240 || 0.0325 || 0.0105 || 0.0398 || 0.3721  | ||
| + | |-  | ||
| + | | 26.77 || 0.0032 || 0.0063 || 0.6467 || 0.0012 || 0.0004 || 0.0268 || 0.0326 || 0.0897 || 0.0318 || 0.0296 || 0.0324  | ||
| + | |-  | ||
| + | | 29.44 || 0.0316 || 0.0509 || 0.1138 || 0.9072 || 0.0000 || 0.0075 || 0.0504 || 0.0163 || 0.0073 || 0.0040 || 0.0128  | ||
| + | |-  | ||
| + | |||
| + | | 34.04 || 0.0065 || 0.0026 || 0.0337 || 0.0310 || 0.0014 || 0.0211 || 0.0472 || 0.0863 || 0.0322 || 0.8635 || 0.0105  | ||
| + | |-  | ||
| + | | '''46.73''' || 0.0043 || 0.0048 || 0.0009 || 0.0124 || 0.0460 || 0.0027 || '''0.5990''' || '''0.7163''' || 0.3045 || 0.0003 || 0.0468  | ||
| + | |-  | ||
| + | | '''101.67''' || 0.0006 || 0.03557 || 0.0974 || 0.0190 || '''0.9462''' || '''0.9036''' || 0.1742 || 0.0207 || '''0.613''' || 0.0612 || 0.0261  | ||
| + | |-  | ||
| + | |}  | ||
| + | |||
| + | Из таблицы видно что самому большому индексу обусловленности соответствует связь между 5, 6 и 9 признаками которым соответсвуют 19, 16 и 3 значения VIF. Также видна зависимость между 7 и 8 признаками - со значениями 3 и 7 VIF соответственно.  | ||
== Исходный код ==  | == Исходный код ==  | ||
Версия 07:26, 24 ноября 2010
Мультиколлинеарность — тесная корреляционная взаимосвязь между отбираемыми для анализа факторами, совместно воздействующими на общий результат, которая затрудняет оценивание регрессионных параметров.
Содержание | 
Постановка задачи
Задана выборка  признаков и зависимой переменной. Рассматривается линейная регрессионная модель вида:
Предполагается, что вектор регрессионных невязок имеет нулевое математическое ожидание и дисперсию 
.
Требуется создать инструмент исследования мультиколлинеарности признаков (методики VIF, Belsley) и проверить его работу на модельных данных.
Описание алгоритма
Фактор инфляции дисперсии (VIF)
В задаче восстановления регрессии фактор инфляции дисперсии (VIF) — мера мультиколлинеарности. Он позволяет оценить увеличение дисперсии заданного коэффициента регрессии, происходящее из-за высокой корреляции данных.
Дисперсия  может быть выражена как:
 
Первая дробь связана с дисперсией невязок и дисперсией векторов признаков. Вторая — фактор инфляции дисперсии, связанный с корреляцей данного признака с другими:
где  — коэффициент детерминации j-го признака относительно остальных - фактически он содержит информацию о том, насколько точно можно построить регрессию для j-го признака относительно остальных, т.е его зависимость от них. 
 
Равенство единице фактора инфляции дисперсии говорит об ортогональности вектора значений признака остальным. Если значение  велико, то 
 — мало, то есть 
 близко к 1. Большие значения фактора инфляции дисперсии соответствуют почти линейной зависимости j-го столбца от остальных.
Методика Belsley, Kuh, и Welsch (BKW)
Диагностика коллинеарности BKW основана на двух элементах, относящихся к  матрице данных 
 использующейся в линейной регрессии 
 : индексы обусловленности(the scaled condition indexes) и дисперсионные доли(the  variance-decomposition proportions). Оба этих диагностических элемента могут быть получены из сингулярного разложения (SVD) матрицы 
: 
, где 
 и 
 - диагональная с неотрицательными элементами 
 называющимися сингулярными числами 
. Индексы обусловленности это:
, 
 
 для всех 
. Большое значение 
 указывает на зависимость близкую к линейной между признаками и чем больше 
 тем сильнее зависимость. Дисперсионные доли находятся из того факта, что используя SVD ковариационная матрица метода наименьших квадратов 
 может записана как:
 
где  это дисперсия возмущения 
. Таким образом дисперсия 
-го регрессионного коэффициента 
 это 
-й диогональный элемент (3): 
где  - сингулярные значения 
 и 
. 
Определим 
-е дисперсионное соотношение как долю дисперсии 
-го регрессионного коэффициента связанная с 
-м компонентом его разложения (4). Доля считается как:
 
, 
, 
 
Дисперсионное соотношение: 
 
, 
 
 
Данные удобно представить в виде таблицы: 
| Condition index | ||||
|---|---|---|---|---|
|   |   |   | ... |   | 
|   |   | ... | ... |   | 
| . | . | . | . | |
| . | . | . | . | |
| . | . | . | . | |
|   |   |   | ... |   | 
Перед использованием BKW необходимо отмасштабировать матрицу . Стандартно применяется приведение столбцов к одинаковой длинне(норму). Будем рассматривать отмасштабированные индексы обусловленности 
 :
 
, 
Алгоритм BKW
1. Стандартизация столбцов матрицы.
2. Вычисление индексов обусловленности и дисперсионных долей.
3. Определение количества зависимостей.
Превышение индексом обусловленности выбраного заранее порога означает наличие зависимости между признаками.
Относительная сила зависимости определяется положение значения индекса обусловленности в прогресии 1, 3, 10, 30, 100, 300, 1000 итд.
4. Определение признаков участвующих в зависимости. 
2 случая :
1) Только один достаточно большой индекс обусловленности - тогда возможно определение участвующих в зависимости признаков из дисперсионных долей: признак считается вовлеченным если его дисперсионная доля связанная с этим индексом превышает выбранный порог  (обычно 0.25).
2) Есть несколько больших индексов обусловленности. В этом случае вовлеченность признака в зависимость определяется по сумме его дисперсионных долей отвечающих большим значениям индекса обусловленности - когда сумма превышает порог  признак участвует как минимум в одной линейной зависимости.
Вычислительный эксперимент
В эксперименте используются модельные данные, для которых вычисляется VIF и матрица Belsley в зависимоти от параметра определяющего степень коллинеарности между признаками. Зависимость VIF и индексов обусловленности показана на графиках. Остальная часть таблицы BKW раскрашивалась (от темно-синего для 0 к темно-красному для 1) и создавалось видео показывающее ее изменение при параметре от 0 до 1.
Пример 1
Используются два ортогональных признака , 
 и третий признак 
 зависящий от параметра 
. При 
 все признаки ортогональны, при увеличении 
 зависимый признак 
 приближается к 
, вплоть до полной коллинеарности при 
. 
Зависимость VIF от параметра:
![]()
Как видно из графика VIF  и 
 растет вплоть до бесконечности при 
, VIF 
 при этом не изменен и равен 1.
Зависимость индексов обусловленности  от 
:
![]()
Таблица дисперсионных долей:
Видно что признаки  и 
 связаны усиляющейся зависимостью, и что других связей нет.
Пример 2
Используется неизменные признаки , 
 и зависящие от параметра 
 признаки 
,
,
. При 
 все признаки ортогональны, при увеличении 
 признаки 
, 
 приближаются к 
, а 
 - к 
 вплоть до полной коллинеарности при 
.
Зависимость VIF от параметра:
![]()
Зависимость индексов обусловленности  от 
:
![]()
Таблица дисперсионных долей:
Наблюдается две основных зависимости - первая зависимость между признаками , 
, 
 и вторая между признаками 
, 
.
Пример 3
Используются реальные данные. На них был проведен эксперимент по вычислению VIF и таблицы BKW.
| # | VIF | # | VIF | 
|---|---|---|---|
| 1 | 1.21 | 7 | 3.82 | 
| 2 | 1.31 | 8 | 7.43 | 
| 3 | 1.69 | 9 | 3.46 | 
| 4 | 1.51 | 10 | 1.47 | 
| 5 | 19.27 | 11 | 1.97 | 
| 6 | 16.37 | 
У двух признаков значение фактора инфляции дисперсии больше 10, еще у одного больше 5. Такой результат — следствие их мультиколлинеарности относительно остальных признаков нашего набора.
| Condition index | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0.0004 | 0.0006 | 0.0001 | 0.0001 | 0.0000 | 0.0000 | 0.0001 | 0.0001 | 0.0000 | 0.0000 | 0.0008 | 
| 7.12 | 0.0031 | 0.0016 | 0.00016 | 0.0002 | 0.0001 | 0.0000 | 0.0251 | 0.0043 | 0.0000 | 0.0002 | 0.2885 | 
| 9.03 | 0.0003 | 0.2262 | 0.0013 | 0.0007 | 0.0000 | 0.0010 | 0.0284 | 0.0154 | 0.0000 | 0.0001 | 0.1557 | 
| 10.88 | 0.0149 | 0.3400 | 0.0003 | 0.0035 | 0.0022 | 0.01285 | 0.0007 | 0.0179 | 0.0000 | 0.0003 | 0.0380 | 
| 14.14 | 0.9113 | 0.0819 | 0.0036 | 0.0003 | 0.0001 | 0.0001 | 0.0179 | 0.0001 | 0.0003 | 0.0004 | 0.0158 | 
| 18.83 | 0.0233 | 0.2490 | 0.1015 | 0.0240 | 0.0032 | 0.0238 | 0.0240 | 0.0325 | 0.0105 | 0.0398 | 0.3721 | 
| 26.77 | 0.0032 | 0.0063 | 0.6467 | 0.0012 | 0.0004 | 0.0268 | 0.0326 | 0.0897 | 0.0318 | 0.0296 | 0.0324 | 
| 29.44 | 0.0316 | 0.0509 | 0.1138 | 0.9072 | 0.0000 | 0.0075 | 0.0504 | 0.0163 | 0.0073 | 0.0040 | 0.0128 | 
| 34.04 | 0.0065 | 0.0026 | 0.0337 | 0.0310 | 0.0014 | 0.0211 | 0.0472 | 0.0863 | 0.0322 | 0.8635 | 0.0105 | 
| 46.73 | 0.0043 | 0.0048 | 0.0009 | 0.0124 | 0.0460 | 0.0027 | 0.5990 | 0.7163 | 0.3045 | 0.0003 | 0.0468 | 
| 101.67 | 0.0006 | 0.03557 | 0.0974 | 0.0190 | 0.9462 | 0.9036 | 0.1742 | 0.0207 | 0.613 | 0.0612 | 0.0261 | 
Из таблицы видно что самому большому индексу обусловленности соответствует связь между 5, 6 и 9 признаками которым соответсвуют 19, 16 и 3 значения VIF. Также видна зависимость между 7 и 8 признаками - со значениями 3 и 7 VIF соответственно.
Исходный код
- Cкачать листинги алгоритмов можно здесь [1]
 
Смотри также
- Фактор инфляции дисперсии
 - Мультиколлинеарность
 - Метод наименьших квадратов
 - Линейная регрессия (пример)
 - Сингулярное разложение
 - Методика Belsley
 
Литература
- Gianfranco Galmacci, Collinearity Detection in Linear Regression. Computational Economics 9:215-227, 1996.
 - D. A. Belsley, A Guide to Using the Collinearity Diagnostics. Computer Science in Economics and Management 4: 33-50, 1991.
 
|   |  Данная статья является непроверенным учебным заданием.
 До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.  | 

