Jeśli mam zmienną z 4 poziomami, teoretycznie muszę użyć 3 zmiennych zastępczych. W praktyce, jak się to faktycznie odbywa? Czy używam 0-3, czy używam 1-3 i zostawiam puste 4? Jakieś sugestie?
UWAGA: Będę pracował w R.
AKTUALIZACJA: Co by się stało, gdybym użył tylko jednej kolumny, która używa 1-4 odpowiadającej AD? Czy to zadziała lub wprowadzi problemy?
r
regression
categorical-data
categorical-encoding
screechOwl
źródło
źródło
Odpowiedzi:
W praktyce zwykle pozwala się, aby wybrane oprogramowanie obsługiwało tworzenie i manipulowanie zmiennymi fikcyjnymi. Można to rozwiązać na kilka sposobów; Oto kilka typowych możliwości dla zestawu danych z czterema obserwacjami, po jednej na każdym poziomie A, B, C i D. Są to różne parametryzacje; zapewniają dokładnie takie same dopasowanie modelu, ale z różnymi interpretacjami parametrów. Można łatwo konwertować między sobą za pomocą podstawowej algebry; zauważ, że wszystkie są liniowymi kombinacjami; w rzeczywistości można zastosować dowolną kombinację liniową.
Użyj różnic od pierwszego poziomu (domyślnie w R):
Używaj różnic z ostatniego poziomu (domyślnie w SAS):
Użyj kontrastów „sum”:
Użyj kontrastów „Helmert”:
źródło
Załóżmy, że twoje poziomy zmiennych to A, B, C i D. Jeśli masz regres stały w regule, musisz użyć trzech zmiennych pozornych, w przeciwnym razie musisz mieć wszystkie cztery.
Istnieje wiele matematycznie równoważnych sposobów implementacji zmiennych zastępczych. Jeśli masz regresję w stałym wyrażeniu, jednym ze sposobów jest wybranie jednego z poziomów jako poziomu „podstawowego” i porównanie z nim pozostałych trzech. Powiedzmy, dla konkretności, że poziom bazowy to A. Wtedy twoja pierwsza zmienna fikcyjna przyjmuje wartość 1, ilekroć poziom to B, a 0 w przeciwnym razie; drugi przyjmuje wartość 1 za każdym razem, gdy poziom wynosi C, a w przeciwnym razie przyjmuje wartość 1, a trzeci przyjmuje wartość 1, gdy poziom to D, a w przeciwnym razie 0. Ponieważ twój stały składnik jest cały czas równy 1, szacowany współczynnik pierwszej zmiennej zastępczej będzie oszacowaniem różnicy między poziomem B i A, i podobnie dla innych zmiennych zastępczych.
Jeśli nie masz stałego terminu, możesz po prostu użyć czterech zmiennych zastępczych, skonstruowanych jak w poprzednim przykładzie, dodając tylko jedną dla poziomu A.
źródło
W R zdefiniuj zmienną jako czynnik, która zaimplementuje ją dla Ciebie:
który zwraca
Dokumentacja „lm”, „współczynnik” i „wzór” w R wypełnia niektóre szczegóły.
źródło
lm(y ~ as.factor(x))
whuber powiedział ci w komentarzach, że kodowanie kodowania 0-3 lub 1-4 zamiast tworzenia zmiennych zastępczych nie jest tym, czego chcesz. To jest próba - mam nadzieję, że wyjaśnię, co zrobiłbyś z tym modelem i dlaczego jest on błędny.
Jeśli kodujesz zmienną X tak, że jeśli A to X = 1, jeśli B to X = 2, jeśli C to X = 3, jeśli D to X = 4, to po wykonaniu regresji otrzymasz tylko jeden parametr. Powiedzmy, że ostatecznie oszacowany parametr związany z X wynosił 2. Oznaczałoby to, że oczekiwana różnica między średnią B i średnią A wynosi 2. Mówi również, że oczekiwana różnica między średnią C a średnia B wynosi 2. Niektóre dla D i C. Wymusilibyście różnice w średnich dla tych grup, aby stosować ten bardzo ścisły wzór. Ten jeden parametr mówi dokładnie, jak wszystkie grupy oznaczają wzajemne relacje.
Więc jeśli wykonałeś tego rodzaju kodowanie, musisz założyć, że nie tylko poprawnie zamówiłeś (ponieważ w tym przypadku, jeśli spodziewasz się wzrostu z A do B, musisz spodziewać się wzrostu z B do C i z C do D), ale musisz także założyć, że ta różnica jest taka sama!
Jeśli zamiast tego wykonasz zasugerowane kodowanie, pozwalasz każdej grupie mieć własne środki - bez ograniczeń. Ten model jest znacznie bardziej rozsądny i odpowiada na pytania, które chcesz.
źródło