30 июня 2012

Протокол разведочного анализа данных: выявление коллинеарности



Когда цель анализа заключается в нахождении переменных (предикторов), определяющих значения зависимой переменной, важным этапом разведочного анализа данных является обнаружение коллинеарности (Zuur et al. 2010). Под коллинеарностью (англ. collinearity) понимают наличие линейной зависимости между двумя предикторами. В задачах с несколькими предикторами (например, при выполнении множественного регрессионного анализа) говорят также о мультиколлинеарности (англ. multicollinearity), т.е. наличии линейной зависимости между несколькими переменными. Наличие мультиколлинеарности приводит к неустойчивости оценок параметров статистической модели, что выражается, в частности, в повышенной дисперсии этих оценок. Как результат, исследователь может столкнуться с "парадоксальной" ситуацией, когда, например, все коэффициенты множественной регрессионной модели статистически незначимы, тогда как сама модель оказывается значимой (т.е. проверяемая при помощи F-теста гипотеза о равенстве всех коэффициентов нулю отвергается).

В присутствии мультиколлинеарности дисперсия оценок параметров модели возрастает пропорционально величине

\[VIF = \frac{1}{1 - R^{2}_{j}}\]
VIF означает "variance inflation factor", что переводится на русский язык как "фактор инфляции дисперсии" - чем он выше для j-го предиктора, тем сильнее линейная связь между этим и остальными предикторами. В приведенной выше формуле \(R^{2}_{j}\) - коэффициент детерминации j-го предиктора относительно остальных. Показатель VIF часто используется в регрессионном анализе для выявления мультиколлинеарности и последующего исключения из модели тех предикторов, у которых VIF оказывается слишком высоким. Существуют разные мнения по поводу того, какое значение VIF считать пороговым. Обычно критическим считают значение VIF = 5, несколько реже VIF = 10. Zuur et al. (2010) отмечают также, что в биологических исследованиях (в частности, в экологии), где наблюдаемые "сигналы" слабы, имеет смысл применять в качестве порогового значение VIF = 2.

Использование VIF включает следующие шаги:
  • Для каждого предиктора \(X_{j}\) строится регрессионная модель его зависимости от остальных предикторов: \(X_{j} = \alpha_{2}X_{2} + \alpha_{3}X_{3} + ... +\alpha_{k}X_{k} + c_{0} +\epsilon \)
  • На основе полученной регрессионной модели для каждого предиктора \(X_{j}\) рассчитывается VIF по приведенной выше формуле.
  • Полученные для каждого предиктора значения VIF сравниваются с выбранным пороговыми значениями. Предиктор с максимальным VIF, превышающем пороговое значение, исключается из анализа.
  • Предыдущие шаги повторяются, пока в модели не останутся предикторы с низкими VIF.
Функции для автоматического расчета VIF и выполнения перечиселенных выше шагов реализованы в нескольких пакетах для R. Одним из примеров таких функций является vif() из пакета car.


Комментариев нет :

Отправить комментарий