Чому нам потрібно відмовитись від однієї фіктивної змінної?


16

Я дізнався, що для створення регресійної моделі ми повинні піклуватися про категоричні змінні, перетворюючи їх у фіктивні змінні. Наприклад, якщо в наборі даних є така змінна, як розташування:

Location 
----------
Californian
NY
Florida

Ми повинні їх перетворити так:

1  0  0
0  1  0
0  0  1

Однак було запропоновано відмовитись від однієї манекенної змінної, незалежно від того, скільки існує змінних фіктивних змін.

Чому нам потрібно відмовитись від однієї фіктивної змінної?


3
Тому що третю манекен можна пояснити як лінійну комбінацію перших двох: FL = 1 - (CA + NY).
ланцюгD

@chainD, але що пояснює більш ніж три манекени?
Мітхун Саркер Шувро

2
Незалежно від загальної кількості, це буде просто на 1 менше, ніж загальна кількість категорій у вас. Розширюючи свій приклад, скажімо, всі 50 станів були представлені в наборі даних. Скажімо, для даної особи ви дивитесь на перші 49 манекенів, які, як правило, становлять усі нулі, тоді ви знаєте, що останній манекен - це 1 навіть без огляду (якщо припустити, що всі в наборі даних є з одного з 50 штатів). Іншими словами, інформація про останню манекена вже міститься в результаті перших 49, так би мовити.
ланцюгD

@chainD дякую
Mithun Sarker Shuvro

1
якщо це не весна, не літо і не осінь, то це зима!
Стів

Відповіді:


10

Простіше кажучи, тому що один рівень вашої категоричної ознаки (тут розташування) стає референтною групою під час фіктивного кодування для регресії і є зайвим. Я цитую тут форму "Категорична змінна категорій K або рівнів, як правило, вводить регресію у вигляді послідовності фіктивних змінних K-1. Це становить лінійну гіпотезу про рівень рівня".

Про це вже йшлося в цій дуже приємній відповіді stats.stackexchange .

Мені сказали, що в Курсері є розширений курс Яндекса, який детальніше висвітлює цю тему, якщо у вас все ще виникають сумніви, дивіться тут . Зауважте, що ви завжди можете безкоштовно перевірити вміст курсу. ;-)

Ще один приємний пост, якщо ви хочете ґрунтовне пояснення з великою кількістю прикладів зі статистичною перспективою і не обмежуючись лише фіктивним кодуванням, дивіться це в UCLA (в R)

Зауважте, що якщо ви використовуєте pandas.get_dummies, є параметр, тобто drop_first, чи потрібно виводити манекени k-1 з k категоріального рівня, видаляючи перший рівень. Зверніть увагу default = False, це означає, що посилання не випадає, а k манекени створені з k категоріального рівня!


4
Зауважте, що це справедливо лише в тому випадку, якщо у вашої моделі є перехоплення (тобто постійний термін). В іншому випадку, використовуючи «гаряче» кодування та не відкидаючи одну змінну манекена, ви неявно додаєте перехоплення.
Ілля Стреле

1

Вам не потрібно опускати рівень, залежно від випадку використання.

Дивіться,
у яких випадках не слід скидати перший рівень категоричних змінних?
і набагато більш загальне питання
при контрольованому навчанні, чому погано мати співвідносні функції?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.