Dlaczego musimy odrzucić jedną zmienną fikcyjną?

16

Nauczyłem się, że aby stworzyć model regresji, musimy zadbać o zmienne jakościowe, przekształcając je w zmienne obojętne. Na przykład, jeśli w naszym zestawie danych znajduje się zmienna taka jak lokalizacja:

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

Musimy przekonwertować je w następujący sposób:

1  0  0
0  1  0
0  0  1

Zasugerowano jednak, że musimy odrzucić jedną zmienną fikcyjną, bez względu na to, ile jest tam zmiennych fikcyjnych.

Dlaczego musimy odrzucić jedną zmienną fikcyjną?

Mithun Sarker Shuvro
źródło
3
Ponieważ trzeci manekin można wyjaśnić jako liniową kombinację pierwszych dwóch: FL = 1 - (CA + NY).
chainD
@ łańcuchD, ale jakie jest wyjaśnienie dla więcej niż trzech zmiennych-obojętnych?
Mithun Sarker Shuvro
2
Bez względu na sumę, będzie to tylko 1 mniej niż całkowita liczba kategorii, które masz. Rozszerzając przykład, powiedzmy, że wszystkie 50 stanów było reprezentowanych w zbiorze danych. Dla konkretnej osoby, powiedzmy, że patrzysz na pierwszych 49 manekinów, które mają wszystkie zera, to wiesz, że ostatni manekin ma wartość 1, nawet nie patrząc (zakładając, że wszyscy w zbiorze danych pochodzą z jednego z 50 stanów). Innymi słowy, informacja o ostatnim manekinie jest już zawarta w wyniku pierwszych 49, że tak powiem.
chainD
@ łańcuchD dziękuję
Mithun Sarker Shuvro
1
jeśli nie jest wiosna, nie lato i jesień, to jest zima!
Stev

Odpowiedzi:

10

Po prostu, ponieważ jeden poziom twojej jakościowej funkcji (tutaj lokalizacja) staje się grupą odniesienia podczas fałszywego kodowania regresji i jest zbędny. Cytuję tutaj formę „Zmienna kategorialna kategorii K lub poziomów zwykle wchodzi w regresję jako sekwencja zmiennych fikcyjnych K-1. Jest to hipoteza liniowa na średnich poziomów”.

Jest to już omówione w tej bardzo ładnej odpowiedzi na statystyki.stackexchange .

Powiedziano mi, że jest zaawansowany kurs Yandex w Coursera, który obejmuje ten temat bardziej szczegółowo, jeśli nadal masz wątpliwości, zobacz tutaj . Pamiętaj, że zawsze możesz przeprowadzić audyt zawartości kursu za darmo. ;-)

Kolejny fajny post, jeśli chcesz dokładnego wyjaśnienia z dużą ilością przykładów z perspektywy statystycznej i nie ograniczając się tylko do fałszywego kodowania, zobacz to z UCLA (w R)

Zauważ, że jeśli używasz pandas.get_dummies, istnieje parametr, tzn. drop_firstCzy chcesz usunąć manekiny k-1 z k jakościowych poziomów, usuwając pierwszy poziom. Uwaga default = False, co oznacza, że ​​referencja nie jest usuwana, a k manekinów utworzono z k kategorii poziomów!

TwinPenguins
źródło
4
Zauważ, że jest to prawdą tylko wtedy, gdy twój model ma punkt przecięcia (tj. Stały termin). W przeciwnym razie, używając kodowania na gorąco i nie odrzucając jednej zmiennej zastępczej, domyślnie dodajesz punkt przecięcia.
Elias Strehle