Zmienne zero-jedynkowe (dummy) w regresji - kodowanie, kategoria odniesienia i interpretacja

Dane · 9 min czytania
Ilustracja do artykułu: Zmienne zero-jedynkowe (dummy) w regresji - kodowanie, kategoria odniesienia i interpretacja
W skrócie: zmienną kategorialną o k kategoriach wstawiasz do regresji jako k - 1 zmiennych zero-jedynkowych, a pominięta kategoria staje się punktem odniesienia. Współczynnik przy zmiennej 0/1 to różnica między daną kategorią a kategorią odniesienia przy stałych pozostałych predyktorach. Kategorię odniesienia wybierasz tak, by była liczna i miała sens merytoryczny, a o znaczeniu całej zmiennej decyduje test bloku (ΔR² z testem F). W pracy zawsze napisz, co było kategorią odniesienia.

Zmienne zero-jedynkowe (ang. dummy variables, w ekonometrii także zmienne fikcyjne lub sztuczne) to zmienne przyjmujące wartości 0 i 1, za pomocą których wstawiasz do regresji predyktor kategorialny. Każda kategoria poza jedną, zwaną kategorią odniesienia, dostaje własną zmienną 0/1, a współczynnik przy niej pokazuje różnicę między tą kategorią a kategorią odniesienia.

Tak koduje się miejsce zamieszkania, kierunek studiów, rodzaj placówki czy wykształcenie, gdy chcesz je uwzględnić w regresji liniowej, logistycznej albo porządkowej. W tym wpisie znajdziesz regułę k - 1, przykład na przykładowych danych z pełną interpretacją współczynników, sposób zmiany kategorii odniesienia, test całej zmiennej kategorialnej i gotowy opis w APA 7. Ogólną interpretację tabel regresji opisuje wpis regresja wieloraka: interpretacja wyników.

Dlaczego nie można wpisać kategorii jako 1, 2, 3

W bazie danych kategorie często mają kody liczbowe, np. 1 = szpital powiatowy, 2 = szpital kliniczny, 3 = POZ. Jeśli wstawisz taką kolumnę do regresji jako zwykły predyktor, program potraktuje ją jak zmienną ilościową. Założy, że kategorie są uporządkowane i że „odległość” między 1 a 2 jest taka sama jak między 2 a 3. Dostaniesz jeden współczynnik o treści „wzrost rodzaju placówki o jednostkę”, który nie ma sensu, a wynik zmieni się po samej zmianie kolejności kodów.

Zmienna nominalna nie ma porządku ani odległości (więcej o tym we wpisie zmienne nominalne, porządkowe i ilościowe), więc trzeba ją rozbić na zmienne zero-jedynkowe. Wyjątkiem jest zmienna dychotomiczna, np. płeć: jedna zmienna 0/1 wystarcza i wstawiasz ją bezpośrednio.

Ile zmiennych zero-jedynkowych utworzyć: reguła k - 1

Zmienna o k kategoriach wymaga k - 1 zmiennych zero-jedynkowych. Kategoria, która nie dostaje własnej zmiennej, to kategoria odniesienia (bazowa): osoby z tej kategorii mają zero we wszystkich zmiennych 0/1. Dla trzech rodzajów placówek z kategorią odniesienia „szpital powiatowy”:

Miejsce pracyD_klinicznyD_POZ
Szpital powiatowy (odniesienie)00
Szpital kliniczny10
POZ01

Dlaczego nie trzy zmienne? Bo trzecia byłaby zbędna: jeśli osoba ma 0 w D_kliniczny i 0 w D_POZ, wiadomo, że pracuje w szpitalu powiatowym. Wstawienie wszystkich k zmiennych razem ze stałą to tak zwana pułapka zmiennych zero-jedynkowych. Suma tych zmiennych jest zawsze równa 1, czyli identyczna ze stałą modelu, więc powstaje współliniowość doskonała i model nie da się oszacować (program usunie jedną zmienną albo zgłosi błąd). Szerzej o tym zjawisku piszemy we wpisie o współliniowości i VIF.

Przykład: satysfakcja z pracy a miejsce pracy

Przykładowe dane: 150 pielęgniarek. Zmienna zależna to satysfakcja z pracy (0-100 pkt, M = 60,56, SD = 11,37). Predyktory: miejsce pracy (szpital powiatowy, n = 60; szpital kliniczny, n = 50; POZ, n = 40) i staż pracy w latach (M = 12,40, SD = 6,66).

Miejsce pracynM satysfakcjiSD
Szpital powiatowy6058,289,87
Szpital kliniczny5059,7010,95
POZ4065,0512,90

Model tylko ze zmiennymi zero-jedynkowymi

Regresja satysfakcji na D_kliniczny i D_POZ daje: stała = 58,28, B dla D_kliniczny = 1,42 (p = 0,506), B dla D_POZ = 6,77 (p = 0,003). Porównaj to z tabelą średnich. Stała to średnia kategorii odniesienia (szpital powiatowy). Współczynnik D_kliniczny to różnica średnich: 59,70 - 58,28 = 1,42. Współczynnik D_POZ to 65,05 - 58,28 = 6,77.

Test F całego modelu, F(2, 147) = 4,68, p = 0,011, R2 = 0,06, jest identyczny z wynikiem jednoczynnikowej analizy wariancji dla tych trzech grup. To nie przypadek: ANOVA jest szczególnym przypadkiem regresji ze zmiennymi zero-jedynkowymi. Różnica polega na tym, że regresja od razu pokazuje porównania z kategorią odniesienia, a ANOVA wymaga do tego testów post hoc.

Model ze zmienną ilościową (staż pracy)

PredyktorBSEtp95% CI dla B
Stała52,582,1724,22< 0,001[48,29; 56,87]
Szpital kliniczny (vs powiatowy)1,802,060,880,383[-2,26; 5,86]
POZ (vs powiatowy)6,712,193,070,003[2,39; 11,03]
Staż pracy (lata)0,450,133,410,001[0,19; 0,71]

Model jest istotny, F(3, 146) = 7,23, p < 0,001, R2 = 0,13, skorygowane R2 = 0,11.

Interpretacja współczynnika przy zmiennej zero-jedynkowej

Współczynnik przy zmiennej 0/1 czytasz zawsze jako różnicę względem kategorii odniesienia, przy stałych pozostałych predyktorach:

  • B = 6,71 dla POZ: pielęgniarki z POZ mają przewidywaną satysfakcję wyższą o 6,71 pkt niż pielęgniarki ze szpitala powiatowego o takim samym stażu. Przedział ufności [2,39; 11,03] nie obejmuje zera, więc różnica jest istotna.
  • B = 1,80 dla szpitala klinicznego: różnica względem szpitala powiatowego przy tym samym stażu wynosi 1,80 pkt i jest nieistotna (p = 0,383).
  • B = 0,45 dla stażu: każdy rok stażu wiąże się z satysfakcją wyższą o 0,45 pkt, niezależnie od miejsca pracy.
  • Stała 52,58 to przewidywana satysfakcja osoby ze szpitala powiatowego ze stażem 0 lat. Takich osób w danych nie ma (minimum to 1 rok), więc stałej nie interpretujesz. Jeśli chcesz, żeby miała sens, wycentruj staż (odejmij średnią); stała stanie się wtedy wynikiem osoby ze szpitala powiatowego o przeciętnym stażu.

Przewidywane wartości dla osób ze stażem 13 lat to: 58,44 pkt w szpitalu powiatowym, 60,24 pkt w klinicznym i 65,15 pkt w POZ. Różnice między nimi to dokładnie współczynniki zmiennych zero-jedynkowych. Model zakłada przy tym, że efekt stażu jest taki sam w każdej placówce (równoległe linie regresji). Jeśli podejrzewasz, że jest inaczej, dodajesz interakcje staż × D_kliniczny i staż × D_POZ; to już analiza moderacji.

Kategoria odniesienia: jak ją wybrać i zmienić

Wybór kategorii odniesienia nie zmienia dopasowania modelu (R2, F i przewidywania są identyczne), zmienia tylko to, które porównania widzisz w tabeli. Wybierz kategorię, która:

  • ma sens jako punkt porównania (grupa kontrolna, „brak”, sytuacja typowa),
  • jest liczna, bo mała kategoria odniesienia daje szerokie przedziały ufności dla wszystkich porównań i podwyższa VIF zmiennych 0/1,
  • pozwala bezpośrednio odpowiedzieć na hipotezę.

W przykładzie tabela nie pokazuje porównania szpitala klinicznego z POZ. Gdy kategorią odniesienia uczynisz POZ, współczynniki wyniosą: szpital powiatowy -6,71 (p = 0,003) i szpital kliniczny -4,91, 95% CI [-9,41; -0,41], p = 0,033. Pozostałe wartości modelu się nie zmieniają. Uwaga: jeśli wykonujesz wszystkie trzy porównania par, a nie tylko te z góry zaplanowane, stosuje się poprawkę na wielokrotne porównania. Po poprawce Bonferroniego (p × 3) porównanie kliniczny-POZ daje p = 0,098 i przestaje być istotne.

Test całej zmiennej kategorialnej

Pytanie „czy miejsce pracy ma związek z satysfakcją” dotyczy całej zmiennej, a nie pojedynczych porównań. Odpowiada na nie test bloku: porównujesz model ze stażem z modelem ze stażem i obiema zmiennymi 0/1. Dodanie zmiennych miejsca pracy zwiększa R2 o 0,06, F(2, 146) = 4,81, p = 0,009. W SPSS uzyskasz to, wprowadzając zmienne w dwóch blokach (Next) i zaznaczając R squared change, a w jamovi przez Model Builder z dwoma blokami. Program ogólnego modelu liniowego (Analyze > General Linear Model > Univariate w SPSS) liczy ten test automatycznie, gdy wpiszesz miejsce pracy jako czynnik.

Zmienne zero-jedynkowe jednej cechy zawsze wprowadzasz do modelu i usuwasz razem. Nie usuwaj z modelu nieistotnej D_kliniczny, zostawiając D_POZ, bo zmienisz wtedy znaczenie kategorii odniesienia (szpital kliniczny połączy się z powiatowym).

Jak utworzyć zmienne zero-jedynkowe w SPSS, jamovi, R i Excelu

  • SPSS: Transform > Create Dummy Variables tworzy zmienne dla wszystkich kategorii (do modelu wstawiasz k - 1 z nich), albo Transform > Recode into Different Variables dla każdej zmiennej osobno.
  • jamovi: zmienną nominalną wstawiasz do pola Factors, a program sam tworzy kodowanie; kategorię odniesienia wybierasz w sekcji Reference Levels.
  • R: zmienna typu factor jest kodowana automatycznie, a odniesienie zmieniasz funkcją relevel(x, ref = "POZ").
  • Excel: w nowej kolumnie formuła =JEŻELI(C2="POZ";1;0), osobno dla każdej kategorii poza odniesieniem.

Jeśli dane z ankiety mają kategorie zapisane słowami, najpierw je ujednolij (literówki i spacje tworzą fałszywe kategorie); pomaga w tym wpis o kodowaniu danych z ankiety. Bardzo rzadkie kategorie (kilka osób) zwykle łączy się z merytorycznie bliską kategorią przed utworzeniem zmiennych 0/1.

Predyktor porządkowy: zmienne 0/1 czy jedna liczba

Wykształcenie (zawodowe, średnie, wyższe) ma porządek, ale odstępy między poziomami nie muszą być równe. Masz dwie drogi. Wstawienie go jako jednej zmiennej liczbowej (1, 2, 3) zakłada liniowy wzrost i zużywa jeden stopień swobody. Wstawienie zmiennych zero-jedynkowych niczego nie zakłada o kształcie związku, ale zużywa k - 1 stopni swobody. Przy kilku kategoriach i wystarczającej liczebności bezpieczniejsze są zmienne 0/1. Przy skali o wielu punktach (np. 7) częściej traktuje się zmienną jak ilościową.

Zmienne zero-jedynkowe w regresji logistycznej i porządkowej

Zasady kodowania są takie same w każdym modelu regresji, zmienia się tylko skala współczynnika. W regresji logistycznej interpretujesz iloraz szans: OR = 1,80 przy zmiennej D_POZ oznaczałby, że szansa zdarzenia w POZ jest 1,8 raza większa niż w kategorii odniesienia, przy stałych pozostałych predyktorach. W regresji porządkowej OR dotyczy szansy znalezienia się w wyższej kategorii zmiennej zależnej. W regresji logistycznej SPSS domyślnie przyjmuje za odniesienie ostatnią kategorię (opcja Categorical, Reference Category: Last), co często zaskakuje przy czytaniu wyników. Sprawdź to ustawienie, zanim zaczniesz interpretować kierunek ilorazów szans. Pilnuj też liczebności: w modelu logistycznym każda zmienna 0/1 to osobny parametr w rachunku liczby zdarzeń na predyktor.

Inne sposoby kodowania

KodowanieWartościCo mówi stałaCo mówi współczynnik
Zero-jedynkowe (dummy)0 i 1Średnia kategorii odniesienia (przy zerowych pozostałych predyktorach)Różnica kategorii względem odniesienia
Efektów (effect coding)-1, 0 i 1Nieważona średnia średnich kategoriiOdchylenie kategorii od tej średniej
Zmienna dychotomiczna 1/21 i 2Wartość bez sensu merytorycznegoTaki sam jak przy 0/1

W pracach dyplomowych zdecydowanie najczęstsze i najłatwiejsze do opisania jest kodowanie zero-jedynkowe. Kodowanie efektów przydaje się w modelach z interakcjami, gdy chcesz, żeby efekt jednej zmiennej odnosił się do średniej wszystkich kategorii drugiej, a nie do jednej kategorii odniesienia.

Jak opisać zmienne zero-jedynkowe w pracy (APA 7)

W części metodologicznej napisz, jak zakodowano zmienną i co było kategorią odniesienia. W tabeli współczynników nazwij wiersze tak, żeby porównanie było widoczne, np. „POZ (vs szpital powiatowy)”. Przykładowy opis:

Miejsce pracy wprowadzono do modelu w postaci dwóch zmiennych zero-jedynkowych, z kategorią odniesienia „szpital powiatowy”. Model ze stażem pracy i miejscem pracy był istotny statystycznie, F(3, 146) = 7,23, p < 0,001, R2 = 0,13. Miejsce pracy wnosiło istotny wkład ponad staż, ΔR2 = 0,06, F(2, 146) = 4,81, p = 0,009. Pielęgniarki pracujące w POZ deklarowały wyższą satysfakcję niż pracujące w szpitalu powiatowym o porównywalnym stażu, B = 6,71, 95% CI [2,39; 11,03], p = 0,003, natomiast różnica między szpitalem klinicznym a powiatowym była nieistotna, B = 1,80, 95% CI [-2,26; 5,86], p = 0,383.

Typowe błędy

  • Wstawienie zmiennej nominalnej z kodami 1, 2, 3 jako zwykłego predyktora.
  • Wstawienie wszystkich k zmiennych 0/1 razem ze stałą (pułapka zmiennych zero-jedynkowych).
  • Brak informacji o kategorii odniesienia, przez co czytelnik nie wie, z czym porównano.
  • Interpretowanie B przy zmiennej 0/1 jako „wzrostu o jednostkę” zamiast różnicy między grupami.
  • Usuwanie pojedynczych nieistotnych zmiennych 0/1 z jednej cechy.
  • Kategoria odniesienia licząca kilka osób, która daje bardzo szerokie przedziały ufności.

Regresja liniowa i logistyczna z diagnostyką są dostępne w wyliczeniu automatycznym, a zamianę kategorii zapisanych słowami na liczby i łączenie rzadkich kategorii obejmuje dodatek do kodowania i przygotowania danych. Analizy wybierasz w kreatorze wyceny.

Najczęstsze pytania

Ile zmiennych zero-jedynkowych trzeba utworzyć?
O jedną mniej niż liczba kategorii (k - 1). Dla zmiennej o czterech kategoriach tworzysz trzy zmienne 0/1, a czwarta kategoria staje się kategorią odniesienia. Wstawienie wszystkich czterech razem ze stałą powoduje współliniowość doskonałą.
Jak interpretować współczynnik przy zmiennej zero-jedynkowej?
To różnica w przewidywanej wartości zmiennej zależnej między daną kategorią a kategorią odniesienia, przy stałych pozostałych predyktorach. B = 6,7 oznacza, że grupa oznaczona jedynką ma średnio wynik wyższy o 6,7 jednostki niż grupa odniesienia. W regresji logistycznej odpowiednikiem jest iloraz szans względem kategorii odniesienia.
Jak wybrać kategorię odniesienia?
Wybierz kategorię liczną i sensowną jako punkt porównania, np. grupę kontrolną albo sytuację najbardziej typową. Mała kategoria odniesienia daje szerokie przedziały ufności dla wszystkich porównań. Zmiana kategorii odniesienia nie zmienia R² ani testu F modelu.
Co to jest pułapka zmiennych zero-jedynkowych?
To błąd polegający na wstawieniu do modelu zmiennych 0/1 dla wszystkich kategorii razem ze stałą. Suma tych zmiennych jest zawsze równa 1, więc dubluje stałą i powstaje współliniowość doskonała. Program wtedy usuwa jedną zmienną albo nie liczy modelu.
Czy płeć trzeba kodować jako 0 i 1?
Najlepiej tak, bo wtedy stała ma sens jako wynik grupy oznaczonej zerem. Przy kodowaniu 1 i 2 współczynnik dla płci będzie taki sam, zmieni się tylko stała. W pracy podaj, która płeć ma kod 1.
Źródła:
  • Hardy, M. A. (1993). Regression with dummy variables. Sage.
  • Maddala, G. S. (2006). Ekonometria. Wydawnictwo Naukowe PWN.
  • Cohen, J., Cohen, P., West, S. G., & Aiken, L. S. (2003). Applied multiple regression/correlation analysis for the behavioral sciences (3rd ed.). Lawrence Erlbaum Associates.
Policzymy to za Ciebie
Test dobrany do hipotez, tabele, wykresy i opis w standardzie APA.
Wyceń analizę
Artykuł ma charakter edukacyjny. W razie wątpliwości skorzystaj z kreatora doboru analiz lub napisz do statystyka.