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

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 pracy | D_kliniczny | D_POZ |
|---|---|---|
| Szpital powiatowy (odniesienie) | 0 | 0 |
| Szpital kliniczny | 1 | 0 |
| POZ | 0 | 1 |
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 pracy | n | M satysfakcji | SD |
|---|---|---|---|
| Szpital powiatowy | 60 | 58,28 | 9,87 |
| Szpital kliniczny | 50 | 59,70 | 10,95 |
| POZ | 40 | 65,05 | 12,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)
| Predyktor | B | SE | t | p | 95% CI dla B |
|---|---|---|---|---|---|
| Stała | 52,58 | 2,17 | 24,22 | < 0,001 | [48,29; 56,87] |
| Szpital kliniczny (vs powiatowy) | 1,80 | 2,06 | 0,88 | 0,383 | [-2,26; 5,86] |
| POZ (vs powiatowy) | 6,71 | 2,19 | 3,07 | 0,003 | [2,39; 11,03] |
| Staż pracy (lata) | 0,45 | 0,13 | 3,41 | 0,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 Variablestworzy zmienne dla wszystkich kategorii (do modelu wstawiasz k - 1 z nich), alboTransform > Recode into Different Variablesdla 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
factorjest 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
| Kodowanie | Wartości | Co mówi stała | Co 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 1 | Nieważona średnia średnich kategorii | Odchylenie kategorii od tej średniej |
| Zmienna dychotomiczna 1/2 | 1 i 2 | Wartość bez sensu merytorycznego | Taki 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ć?
Jak interpretować współczynnik przy zmiennej zero-jedynkowej?
Jak wybrać kategorię odniesienia?
Co to jest pułapka zmiennych zero-jedynkowych?
Czy płeć trzeba kodować jako 0 i 1?
- 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.

