Słownik metodologiczny · Regresja

Dummy coding

Pełne wyjaśnienie, zastosowanie naukowe i praktyczne, przykład, dobre praktyki oraz gotowy zapis wyniku w APA 7.

Strona główna / Słownik / Dummy coding

Co oznacza Dummy coding?

Dummy coding zamienia zmienną kategorialną z k poziomami na k−1 wskaźników 0/1 względem kategorii referencyjnej.

Zastosowanie, warunki i dobre praktyki

Kodowanie zero-jedynkowe wyznacza kategorię odniesienia, względem której interpretowane są współczynniki pozostałych poziomów. Wyraz wolny odpowiada wartości przewidywanej dla kategorii referencyjnej, a każdy parametr różnicy względem niej przy stałych pozostałych zmiennych. Zmiana kategorii odniesienia zmienia parametry, lecz nie dopasowanie ani przewidywania modelu.

Najważniejsze zastosowanie: Stosuj w regresji i SEM, gdy chcesz włączyć predyktor nominalny.

Jak to się oblicza i co oznaczają symbole?

D = 1 dla kategorii badanej; D = 0 dla kategorii referencyjnej

Współczynnik przy D jest różnicą względem jawnie wybranej kategorii odniesienia. Zmienna z k kategoriami wymaga zwykle k−1 wskaźników, aby uniknąć dokładnej współliniowości.

Dla predyktora z k kategoriami tworzy się zwykle k − 1 wskaźników. Jeżeli rodzaj terapii ma poziomy „kontrola”, „CBT” i „ACT”, a kontrola jest referencją, model zawiera wskaźnik CBT oraz wskaźnik ACT. Wyraz wolny opisuje przewidywany wynik w grupie kontrolnej przy zerowych wartościach pozostałych predyktorów. Współczynnik CBT jest różnicą CBT–kontrola, a współczynnik ACT różnicą ACT–kontrola. Nie jest to porównanie CBT z ACT; takie porównanie wymaga zmiany referencji albo odpowiedniego kontrastu.

Wprowadzenie wszystkich k wskaźników razem z wyrazem wolnym powoduje dokładną współliniowość. Zmiana kategorii odniesienia zmienia zapis współczynników, ale nie przewidywane wartości i nie dopasowanie modelu. Przy interakcji współczynniki efektów głównych mają znaczenie warunkowe, dlatego nie wystarczy odczytać tabeli tak samo jak w modelu bez interakcji. Brak danych nie może być zakodowany jako zestaw samych zer, bo zostałby błędnie uznany za kategorię referencyjną.

Kontrola kodowania wskaźnikowego

  • Wybierz i nazwij kategorię odniesienia zgodnie z pytaniem badawczym.
  • Obejrzyj macierz kodów dla kilku rekordów z każdej kategorii.
  • Nie umieszczaj wszystkich k wskaźników wraz z wyrazem wolnym.
  • Raportuj właściwe kontrasty lub wartości przewidywane, gdy potrzebne jest inne porównanie.

Przykład praktyczny i gotowa interpretacja

Sytuacja: Dla regionu A/B/C wybierasz A jako referencję; współczynniki B i C opisują różnice względem A.

Jak ją zinterpretować: Każdy współczynnik porównuje dany poziom z jawnie wybraną kategorią odniesienia przy stałych pozostałych predyktorach. Zmiana kategorii referencyjnej zmienia zapis parametrów, ale nie przewidywania ani dopasowanie modelu.

Najczęstsza pułapka i granica interpretacji

Zmiana kategorii referencyjnej zmienia współczynniki, ale nie dopasowanie i przewidywania modelu. Parametr dla poziomu B nie opisuje „efektu B” w oderwaniu od modelu: jest kontrastem B z wybraną referencją przy ustalonych wartościach pozostałych predyktorów. Przy interakcji taki kontrast jest dodatkowo warunkowy względem poziomu drugiej zmiennej.

Przykład reprodukowalny dla tego hasła

Dummy coding z jawną kategorią odniesienia

Przykład dotyczy wyłącznie kodowania wskaźnikowego jednej zmiennej nominalnej. Nie odwraca pozycji i nie tworzy wyniku kwestionariusza.

Dane wejściowe: Zmienna terapia ma kategorie kontrola, CBT i ACT. Kontrola jest kategorią odniesienia, więc powstają dwa predyktory 0/1.

Co sprawdzić w wyniku: Współczynnik CBT porównuje CBT z kontrolą, a współczynnik ACT — ACT z kontrolą. Zmiana kategorii odniesienia zmienia parametry, ale nie przewidywania modelu.

R
dane <- read.csv("dane.csv", stringsAsFactors = FALSE)
dane$terapia <- relevel(factor(dane$terapia), ref = "kontrola")

X <- model.matrix(~ terapia, data = dane)[, -1, drop = FALSE]
head(X)

# Te same kontrasty można wykorzystać bez ręcznego tworzenia kolumn.
model <- lm(wynik ~ terapia, data = dane)
coef(summary(model))
Python
import pandas as pd
import statsmodels.formula.api as smf

df = pd.read_csv("dane.csv")
df["terapia"] = pd.Categorical(
    df["terapia"], categories=["kontrola", "CBT", "ACT"]
)

X = pd.get_dummies(df["terapia"], drop_first=True, dtype=int)
print(X.head())

model = smf.ols('wynik ~ C(terapia, Treatment(reference="kontrola"))', data=df).fit()
print(model.summary())
IBM SPSS Statistics — Syntax
COMPUTE terapia_CBT=(terapia='CBT').
COMPUTE terapia_ACT=(terapia='ACT').
IF MISSING(terapia) terapia_CBT=$SYSMIS.
IF MISSING(terapia) terapia_ACT=$SYSMIS.
VARIABLE LABELS terapia_CBT 'CBT vs kontrola'
 /terapia_ACT 'ACT vs kontrola'.
EXECUTE.

REGRESSION /DEPENDENT wynik
 /METHOD=ENTER terapia_CBT terapia_ACT.

Bibliografia oprogramowania i wykorzystanych pakietów

W przykładach użyto: R, Python, IBM SPSS Statistics, pandas, statsmodels. W pracy badawczej podaj również faktycznie użyte wersje, które można odczytać poleceniami sessionInfo() w R oraz pip freeze lub importlib.metadata.version() w Pythonie. Cytuj wyłącznie narzędzia rzeczywiście użyte w końcowej analizie.

  1. R: R Core Team. (2026). R: A language and environment for statistical computing [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. Python: Van Rossum, G., & Drake, F. L., Jr. (2009). Python 3 reference manual. CreateSpace.
  3. IBM SPSS Statistics: IBM Corp. (2025). IBM SPSS Statistics for Macintosh (Version 31.0) [Computer software]. IBM Corp.
  4. pandas: McKinney, W. (2010). Data structures for statistical computing in Python. In S. van der Walt & J. Millman (Eds.), Proceedings of the 9th Python in Science Conference (pp. 56–61). https://doi.org/10.25080/Majora-92bf1922-00a
  5. statsmodels: Seabold, S., & Perktold, J. (2010). Statsmodels: Econometric and statistical modeling with Python. In S. van der Walt & J. Millman (Eds.), Proceedings of the 9th Python in Science Conference (pp. 92–96). https://doi.org/10.25080/Majora-92bf1922-011
BibTeX dla oprogramowania i pakietów
@manual{r-core-2026,
  author = {{R Core Team}},
  title = {R: A Language and Environment for Statistical Computing},
  organization = {R Foundation for Statistical Computing},
  address = {Vienna, Austria},
  year = {2026},
  url = {https://www.R-project.org/}
}
@book{vanrossum2009python,
  author = {Van Rossum, Guido and Drake, Fred L., Jr.},
  title = {Python 3 Reference Manual},
  publisher = {CreateSpace},
  year = {2009},
  isbn = {978-1-4414-1269-0}
}
@software{ibm2025spss,
  author = {{IBM Corp.}},
  title = {IBM SPSS Statistics for Macintosh},
  year = {2025},
  version = {31.0},
  publisher = {IBM Corp.}
}
@inproceedings{mckinney2010pandas,
  author = {McKinney, Wes},
  title = {Data Structures for Statistical Computing in Python},
  booktitle = {Proceedings of the 9th Python in Science Conference},
  editor = {van der Walt, Stéfan and Millman, Jarrod},
  year = {2010},
  pages = {56--61},
  doi = {10.25080/Majora-92bf1922-00a}
}
@inproceedings{seabold2010statsmodels,
  author = {Seabold, Skipper and Perktold, Josef},
  title = {Statsmodels: Econometric and Statistical Modeling with Python},
  booktitle = {Proceedings of the 9th Python in Science Conference},
  year = {2010},
  pages = {92--96},
  doi = {10.25080/Majora-92bf1922-011}
}

Definicje, zalecenia interpretacyjne i sposób raportowania oparto na literaturze metodologicznej wskazanej w bibliografii (Collins et al., 2024).

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Oferta dla badaczyOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Collins, G. S., Moons, K. G. M., Dhiman, P., Riley, R. D., Beam, A. L., Van Calster, B., Ghassemi, M., Liu, X., Reitsma, J. B., van Smeden, M., Boulesteix, A.-L., Camaradou, J. C., Celi, L. A., Denaxas, S., Denniston, A. K., Glocker, B., Golub, R. M., Harvey, H., Heinze, G., … Logullo, P. (2024). TRIPOD+AI statement: Updated guidance for reporting clinical prediction models. BMJ, 385, e078378. https://doi.org/10.1136/bmj-2023-078378
  2. Peduzzi, P., Concato, J., Kemper, E., Holford, T. R., & Feinstein, A. R. (1996). A simulation study of the number of events per variable in logistic regression analysis. Journal of Clinical Epidemiology, 49(12), 1373–1379. https://doi.org/10.1016/S0895-4356(96)00236-3
  3. Lang, T. A., & Altman, D. G. (2015). Basic statistical reporting for articles published in biomedical journals: The SAMPL guidelines. International Journal of Nursing Studies, 52(1), 5–9. https://doi.org/10.1016/j.ijnurstu.2014.09.006
  4. Lakens, D. (2022). Sample size justification. Collabra: Psychology, 8(1), 33267. https://doi.org/10.1525/collabra.33267
  5. Appelbaum, M., Cooper, H., Kline, R. B., Mayo-Wilson, E., Nezu, A. M., & Rao, S. M. (2018). Journal article reporting standards for quantitative research in psychology: The APA Publications and Communications Board task force report. American Psychologist, 73(1), 3–25. https://doi.org/10.1037/amp0000191
  6. Wilkinson, L., & Task Force on Statistical Inference. (1999). Statistical methods in psychology journals: Guidelines and explanations. American Psychologist, 54(8), 594–604. https://doi.org/10.1037/0003-066X.54.8.594

Cytowania BibTeX

@article{collins2024tripod, author={Collins, Gary S. and Moons, Karel G. M. and Dhiman, Paula and Riley, Richard D. and Beam, Andrew L. and Van Calster, Ben and Ghassemi, Marzyeh and Liu, Xiaoxuan and Reitsma, Johannes B. and van Smeden, Maarten and Boulesteix, Anne-Laure and Camaradou, Jennifer Catherine and Celi, Leo Anthony and Denaxas, Spiros and Denniston, Alastair K. and Glocker, Ben and Golub, Robert M. and Harvey, Hugh and Heinze, Georg and Hoffman, Michael M. and Kengne, André Pascal and Lam, Emily and Lee, Naomi and Loder, Elizabeth W. and Maier-Hein, Lena and Mateen, Bilal A. and McCradden, Melissa D. and Oakden-Rayner, Lauren and Ordish, Johan and Parnell, Richard and Rose, Sherri and Singh, Karandeep and Wynants, Laure and Logullo, Patricia}, title={TRIPOD+AI statement: updated guidance for reporting clinical prediction models}, journal={BMJ}, year={2024}, volume={385}, pages={e078378}, doi={10.1136/bmj-2023-078378}}
@article{peduzzi1996epv, author={Peduzzi, Peter and Concato, John and Kemper, Elizabeth and Holford, Theodore R. and Feinstein, Alvan R.}, title={A simulation study of the number of events per variable in logistic regression analysis}, journal={Journal of Clinical Epidemiology}, year={1996}, volume={49}, number={12}, pages={1373--1379}, doi={10.1016/S0895-4356(96)00236-3}}
@article{lang2015sampl, author={Lang, Thomas A. and Altman, Douglas G.}, title={Basic statistical reporting for articles published in biomedical journals: the SAMPL guidelines}, journal={International Journal of Nursing Studies}, year={2015}, volume={52}, number={1}, pages={5--9}, doi={10.1016/j.ijnurstu.2014.09.006}}
@article{lakens2022sample, author={Lakens, Daniël}, title={Sample size justification}, journal={Collabra: Psychology}, year={2022}, volume={8}, number={1}, pages={33267}, doi={10.1525/collabra.33267}}
@article{appelbaum2018jars, author={Appelbaum, Mark and Cooper, Harris and Kline, Rex B. and Mayo-Wilson, Evan and Nezu, Arthur M. and Rao, Stephen M.}, title={Journal article reporting standards for quantitative research in psychology}, journal={American Psychologist}, year={2018}, volume={73}, number={1}, pages={3--25}, doi={10.1037/amp0000191}}
@article{wilkinson1999statistical, author={Wilkinson, Leland and {Task Force on Statistical Inference}}, title={Statistical methods in psychology journals: Guidelines and explanations}, journal={American Psychologist}, year={1999}, volume={54}, number={8}, pages={594--604}, doi={10.1037/0003-066X.54.8.594}}
R