Я зіткнувся з точно таким же питанням і намагався пройти шлях. Дивіться мою детальну відповідь нижче.
Перш за все, я знайшов 4 варіанти отримання подібних значень VIF в R:
• corvif
команда з пакету AED,
• vif
команда з автомобільного пакета,
• vif
команда з пакету rms,
• vif
команда з пакету DAAG.
Використання цих команд на наборі предикторів, що не включає жодних факторів / категоричних змінних або поліноміальних термінів, йде вперед. Усі три команди дають однаковий числовий вихід, навіть незважаючи наcorvif
команда з пакету AED позначає результати як GVIF.
Однак, як правило, GVIF грає лише для факторів та поліноміальних змінних. Змінні, для яких потрібен більше 1 коефіцієнт і, отже, більше 1 ступеня свободи, зазвичай оцінюються за допомогою GVIF. Для одно коефіцієнтних умов VIF дорівнює GVIF.
Таким чином, ви можете застосувати стандартні правила щодо того, чи може бути колінеарність проблемою, наприклад, поріг 3, 5 або 10. Однак можна застосовувати певну обережність (див. Http://www.nkd-group.com/ghdash/mba555/PDF/VIF%20article.pdf ).
У випадку багатокоефіцієнтних термінів, наприклад, наприклад, категоричних предикторів, 4 пакети дають різні результати. Thevif
команди з середньоквадратичних і пакетів Daag виробляють значення VIF, в той час як дві інші значень виробляють GVIF.
Давайте спочатку подивимося на значення VIF із пакетів rms та DAAG:
TNAP ICE RegB RegC RegD RegE
1.994 2.195 3.074 3.435 2.907 2.680
TNAP і ICE - неперервні предиктори, а Reg - категоріальна змінна, представлена манекенами RegB до RegE. У цьому випадку RegA є базовою лінією. Усі значення VIF досить помірні і зазвичай не варто хвилюватися. Проблема з цим результатом полягає в тому, що на нього впливає базова лінія категоріальної змінної. Щоб бути впевненим у відсутності значення VIF вище прийнятного рівня, необхідно було б повторити цей аналіз для кожного рівня категоріальної змінної, що є базовою. У цьому випадку п’ять разів.
Застосовуючи corvif
команду з пакета AED або vif
команду з автомобільного пакета, виробляються значення GVIF:
| GVIF | Df | GVIF^(1/2Df) |
TNAP | 1.993964 | 1 | 1.412078 |
ICE | 2.195035 | 1 | 1.481565 |
Reg | 55.511089 | 5 | 1.494301 |
GVIF розраховується для наборів пов'язаних регресорів, таких як набір фіктивних регресорів. Для двох безперервних змінних TNAP та ICE це те саме, що і раніше значення VIF. Для категоричної змінної Reg тепер ми отримуємо одне дуже високе значення GVIF, навіть якщо значення VIF для одиничних рівнів категоріальної змінної були всі помірні (як показано вище).
Г VЯЖ( 1 / ( 2 × D f) )Г VЯЖ( 1 / ( 2 × D f) )значення категоріальної змінної є аналогічним заходом для зменшення точності оцінки коефіцієнтів завдяки колінеарності (навіть не готові до цитування також дивіться на http://socserv2.socsci.mcmaster.ca/jfox/papers/linear- моделі-проблеми.pdf ).
GVIF(1/(2×Df))Г VЯЖ( 1 / ( 2 × D f) )
Г VЯЖ( 1 / ( 2 × D f) )GVIF(1/(2×Df))GVIF2(1/(2×Df))<2