Prace dyplomowe · Regresja

Czy kontrolować wiek i płeć? Zmienne kontrolne w regresji

Krótka odpowiedź z przykładem w R: kiedy wiek i płeć warto dodać do regresji, kiedy nic nie dają, a kiedy tylko poszerzają przedział ufności – i jak uzasadnić to w pracy.

Strona główna / Blog / Czy kontrolować wiek i płeć
W skrócie: Kontroluj wiek lub płeć wtedy, gdy masz powód sądzić, że wpływają i na predyktor, i na wynik – wtedy usuwasz zakłócenie. Gdy wpływają tylko na wynik, ich dodanie zwykle zwęża przedział ufności. Gdy wiążą się tylko z predyktorem albo z niczym, nic nie dają albo poszerzają przedział. Decyzję podejmij przed analizą na podstawie teorii i wcześniejszych badań, nie testów istotności, a w pracy pokaż wynik bez kontroli i z kontrolą.

Dlaczego wiek i płeć trafiają do modelu „z przyzwyczajenia”

Promotor albo recenzent pyta: „A kontrolował(a) Pan(i) wiek i płeć?”. Najprostsza odpowiedź to dopisać obie zmienne do regresji. Tak robi większość autorów. Bernerth i Aguinis (2016) przejrzeli 580 artykułów z psychologii pracy. Ogromna większość z ponad 3500 zmiennych kontrolnych to te same zmienne demograficzne, głównie płeć, wiek i staż. Autorzy prawie nigdy nie wyjaśniali, dlaczego je uwzględniają. Spector i Brannick (2011) nazywają automatyczne „oczyszczanie” wyników zmiennymi demograficznymi metodologiczną miejską legendą.

Wiek i płeć mają jedną zaletę: powstają przed wszystkim, co badasz. Godziny pracy, stres czy wsparcie społeczne nie zmienią czyjegoś wieku ani płci. Dlatego wiek i płeć prawie nigdy nie są mediatorem ani wspólnym skutkiem badanych zmiennych, czyli tymi „złymi kontrolami”, o których piszą Cinelli i in. (2024). Pytanie brzmi więc nie „czy wolno”, ale „czy to coś daje”. Odpowiedź zależy od tego, z czym wiek lub płeć są związane w Twoim badaniu.

Kiedy tak, kiedy nie

Kiedy kontrolować wiek i płeć w regresji, a kiedy nie
SytuacjaDecyzjaCo się dzieje z efektem X
Wiek lub płeć wpływa i na predyktor X, i na wynik Y (zmienna zakłócająca)KontrolujOszacowanie się zmienia, bo usuwasz zakłócenie
Wiek lub płeć wpływa tylko na YWarto, zwłaszcza gdy związek jest silnyOszacowanie podobne, mniejszy błąd standardowy
Wiek lub płeć wiąże się tylko z XRaczej nieOszacowanie podobne, większy błąd standardowy
Brak związku z X i YNie trzebaNic nie zyskujesz, tracisz stopnie swobody
Pytasz, czy efekt jest inny u kobiet i mężczyznNie kontrola, tylko interakcjaKowariant tego nie sprawdzi; potrzebna moderacja
Eksperyment z losowym przydziałemTylko jeśli silnie przewidują YLosowanie usuwa zakłócenie, kontrola może tylko zwiększyć precyzję

O roli zmiennej rozstrzyga wiedza o tym, co jest przyczyną czego, a nie test istotności. Wysocki i in. (2022) pokazują, że dobór zmiennych kontrolnych trzeba uzasadnić założoną strukturą przyczynową. Przy niewłaściwym doborze oszacowanie bywa bardziej obciążone niż bez żadnej kontroli. Tę strukturę najłatwiej narysować jako diagram – krok po kroku pokazujemy to we wpisie grafy przyczynowe (DAG). Carlson i Wu (2012) proponują dla badań korelacyjnych zasadę: „w razie wątpliwości – pomiń”.

Przykład: praca zarobkowa a stres

Symulowane badanie objęło 260 osób studiujących. Pytanie brzmi: czy więcej godzin pracy zarobkowej w tygodniu (M = 18.53, SD = 9.02) wiąże się z wyższym stresem w PSS-10 (M = 28.53, SD = 5.11)? Dane wygenerowaliśmy sami, więc znamy prawdę. Każda godzina pracy podnosi stres o 0.15 punktu. Wiek jest zmienną zakłócającą: starsze osoby pracują więcej (r = .62), ale zgłaszają mniej stresu. Płeć wpływa tylko na stres. Stypendium zmniejsza liczbę godzin pracy (r = −.45), ale samo na stres nie działa.

Współczynnik godzin pracy w czterech modelach regresji stresu z różnymi zmiennymi kontrolnymi, dane symulowane
Modelb [95% CI]SER²
Bez kontroli0.03 [−0.04, 0.10]0.035.002
+ wiek0.18 [0.10, 0.26]0.042.122
+ wiek + płeć0.19 [0.11, 0.27]0.039.234
+ wiek + płeć + stypendium0.20 [0.10, 0.29]0.047.235

Cztery modele dają trzy lekcje:

  • Wiek trzeba było kontrolować. Bez niego efekt pracy znika: b = 0.03, p = .445. Starsi pracują więcej, ale stresują się mniej, więc oba wpływy się znoszą. Po dodaniu wieku b = 0.18, czyli blisko prawdziwego 0.15. Zakłócenie nie zawsze zawyża efekt – tu go ukrywało.
  • Płeć nie zmieniła oszacowania, ale je uściśliła. R² wzrosło z .122 do .234, a błąd standardowy spadł z 0.042 do 0.039.
  • Stypendium tylko zaszkodziło. Oszacowanie prawie się nie zmieniło, ale błąd standardowy wzrósł do 0.047, a przedział się poszerzył. Zmienna związana tylko z predyktorem zabiera mu część zmienności, na której opiera się oszacowanie.

W prawdziwym badaniu nie znasz prawdy. Rolę wieku i płci musisz więc uzasadnić wcześniejszymi badaniami albo teorią, zanim zobaczysz wyniki. Jeśli dodajesz i usuwasz zmienne, aż efekt stanie się istotny, to p-hacking.

Trzy pułapki przy wieku i płci

  • Decyzja na podstawie testu. „Grupy nie różniły się istotnie wiekiem, więc pominąłem wiek” to zły argument. O zakłóceniu decyduje siła związków, a nie p w małej próbie.
  • Wiek wpisany liniowo, gdy związek jest krzywoliniowy. Jeśli stres rośnie do trzydziestki, a potem spada, liniowy składnik usunie tylko część zakłócenia. Obejrzyj wykres rozrzutu wieku i wyniku.
  • Płeć w próbie, w której prawie wszyscy to kobiety. Współczynnik oparty na kilkunastu mężczyznach jest mało precyzyjny. Opisz skład próby jako ograniczenie, zamiast udawać, że kontrola go rozwiązuje. Jak pytać o płeć i wiek w ankiecie, opisuje hasło pytania o płeć i wiek w ankiecie.

Jeśli Twoja hipoteza dotyczy różnicy między kobietami i mężczyznami, kontrola płci jej nie sprawdzi. Potrzebujesz interakcji predyktora z płcią – zob. jak porównać regresję w dwóch grupach.

Jak to opisać w pracy

Dla każdej zmiennej kontrolnej podaj jedno zdanie uzasadnienia i pokaż wynik bez kontroli oraz z kontrolą. Interpretuj tylko współczynnik, który odpowiada na pytanie badawcze. W tabeli podaj wszystkie predyktory (wzór: tabela regresji w APA). Gdy wprowadzasz zmienne kontrolne w osobnym bloku, przyda się wpis regresja hierarchiczna krok po kroku.

W modelu kontrolowano wiek, ponieważ według wcześniejszych badań wiąże się zarówno z liczbą godzin pracy zarobkowej, jak i z poziomem stresu, oraz płeć jako predyktor stresu. Stypendium nie zostało uwzględnione, ponieważ mogło wpływać na liczbę godzin pracy, ale nie na stres. Przy stałym wieku i płci każda dodatkowa godzina pracy zarobkowej w tygodniu wiązała się z wyższym stresem o 0.19 punktu, b = 0.19, 95% CI [0.11, 0.27], t(256) = 4.81, p < .001; model wyjaśniał 23.4% wariancji stresu, R² = .23. Bez zmiennych kontrolnych współczynnik wynosił 0.03, 95% CI [−0.04, 0.10], p = .445.

Budowę całego modelu, założenia i diagnostykę pokazujemy w poradniku regresja wieloraka krok po kroku, a miejsce takiej analizy w całej pracy – w przewodniku statystyka w pracy dyplomowej. Jeśli chcesz omówić dobór zmiennych kontrolnych przed analizą, zajrzyj do oferty dla studentów.

Przykład reprodukowalny

Zmienne kontrolne w R: cztery modele

Kod odtwarza wszystkie liczby z tekstu: statystyki opisowe, korelacje i współczynnik godzin pracy z błędem standardowym i 95% CI w czterech modelach lm().

Wiek, płeć i stypendium jako zmienne kontrolne

Dane wejściowe: 260 osób studiujących, godziny pracy zarobkowej tygodniowo, stres PSS-10 (0–40), wiek, płeć i stypendium (dane symulowane, set.seed(1881)); tylko funkcje bazowego R.

Co odczytać: średnie i korelacje, tabelę czterech modeli (b, SE, 95% CI, p, R², df) i pełny wydruk modelu z wiekiem i płcią.

R
# B188 – czy kontrolować wiek i płeć? Cztery modele na jednych danych (dane symulowane, set.seed(1881))
# 260 osób studiujących zaocznie i dziennie: godziny pracy zarobkowej tygodniowo (X) i stres PSS-10 (Y, 0–40).
# Prawda w symulacji: każda godzina pracy podnosi stres o 0.15 pkt.
# Wiek wpływa na X i na Y (zmienna zakłócająca), płeć tylko na Y, stypendium tylko na X.
set.seed(1881)
n <- 260
wiek <- round(19 + rgamma(n, shape = 2, scale = 2.2))
kobieta <- rbinom(n, 1, 0.6)
stypendium <- rbinom(n, 1, 0.3)
praca <- pmax(0, round(-14 + 1.5 * wiek - 8 * stypendium + rnorm(n, 0, 6)))
pss <- 24 + 0.15 * praca - 0.55 * (wiek - 23) + 4 * kobieta + rnorm(n, 0, 4.5)
dane <- data.frame(praca, pss = pmin(40, pmax(0, round(pss))), wiek,
                   plec = factor(ifelse(kobieta == 1, "kobieta", "mężczyzna"), levels = c("mężczyzna", "kobieta")),
                   stypendium)

# 1. Opis: z czym wiąże się wiek, płeć i stypendium?
round(c(M_praca = mean(dane$praca), SD_praca = sd(dane$praca), M_pss = mean(dane$pss), SD_pss = sd(dane$pss),
        M_wiek = mean(dane$wiek), SD_wiek = sd(dane$wiek)), 2)
round(cor(dane[, c("praca", "pss", "wiek", "stypendium")]), 2)

# 2. Cztery modele: współczynnik godzin pracy, jego SE i 95% CI
modele <- list(
  "bez kontroli"                = lm(pss ~ praca, dane),
  "+ wiek"                      = lm(pss ~ praca + wiek, dane),
  "+ wiek + płeć"               = lm(pss ~ praca + wiek + plec, dane),
  "+ wiek + płeć + stypendium"  = lm(pss ~ praca + wiek + plec + stypendium, dane))
wyniki <- t(sapply(modele, function(m) {
  ci <- confint(m)["praca", ]
  c(b = coef(m)[["praca"]], SE = summary(m)$coefficients["praca", 2], dolna = ci[[1]], gorna = ci[[2]],
    p = summary(m)$coefficients["praca", 4], R2 = summary(m)$r.squared, df = m$df.residual)
}))
round(wyniki, 3)
round(wyniki[, c("b", "dolna", "gorna")], 2)                  # do zapisu w tekście (2 miejsca)

# 3. Model docelowy (wiek i płeć) – pełny wydruk do tabeli
summary(modele[["+ wiek + płeć"]])
round(confint(modele[["+ wiek + płeć"]]), 2)
Wynik w R
 M_praca SD_praca    M_pss   SD_pss   M_wiek  SD_wiek 
   18.53     9.02    28.53     5.11    23.39     3.28 
           praca   pss  wiek stypendium
praca       1.00  0.05  0.62      -0.45
pss         0.05  1.00 -0.24      -0.13
wiek        0.62 -0.24  1.00      -0.02
stypendium -0.45 -0.13 -0.02       1.00
                               b    SE  dolna gorna     p    R2  df
bez kontroli               0.027 0.035 -0.042 0.096 0.445 0.002 258
+ wiek                     0.182 0.042  0.099 0.265 0.000 0.122 257
+ wiek + płeć              0.190 0.039  0.112 0.268 0.000 0.234 256
+ wiek + płeć + stypendium 0.197 0.047  0.103 0.290 0.000 0.235 255
                              b dolna gorna
bez kontroli               0.03 -0.04  0.10
+ wiek                     0.18  0.10  0.26
+ wiek + płeć              0.19  0.11  0.27
+ wiek + płeć + stypendium 0.20  0.10  0.29

Call:
lm(formula = pss ~ praca + wiek + plec, data = dane)

Residuals:
     Min       1Q   Median       3Q      Max 
-10.4371  -3.1794   0.0215   3.0578  12.9421 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  38.6779     2.2234  17.396  < 2e-16 ***
praca         0.1899     0.0395   4.808 2.61e-06 ***
wiek         -0.6741     0.1087  -6.200 2.25e-09 ***
pleckobieta   3.5031     0.5704   6.142 3.10e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.497 on 256 degrees of freedom
Multiple R-squared:  0.2344,	Adjusted R-squared:  0.2254 
F-statistic: 26.13 on 3 and 256 DF,  p-value: 8.903e-15

            2.5 % 97.5 %
(Intercept) 34.30  43.06
praca        0.11   0.27
wiek        -0.89  -0.46
pleckobieta  2.38   4.63

Bibliografia oprogramowania

Wyniki na tej stronie pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje lm() i confint() z pakietu stats). W pracy podaj wersję R (sessionInfo()).

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/

Najczęstsze pytania

Czy recenzent może wymagać kontroli wieku i płci?

Może o nią zapytać, ale odpowiedzią powinno być uzasadnienie, a nie automatyczne dopisanie zmiennych. Wyjaśnij, czy wiek i płeć mogą wpływać na predyktor i wynik, i pokaż wynik w obu wersjach modelu. Jeśli różnica jest mała, napisz o tym wprost.

Czy dodanie wieku i płci do regresji może pogorszyć wynik?

Tak. Zmienna związana tylko z predyktorem, a nie z wynikiem, zwiększa błąd standardowy jego współczynnika i poszerza przedział ufności. W przykładzie z tego wpisu taka zmienna podniosła SE z 0.039 do 0.047. Każda zbędna zmienna zabiera też stopień swobody.

Czym się różni kontrola płci od sprawdzenia różnic między kobietami i mężczyznami?

Kontrola płci zakłada, że związek predyktora z wynikiem jest taki sam u kobiet i mężczyzn, i tylko wyrównuje poziom wyniku. Jeśli pytasz, czy związek jest silniejszy w jednej grupie, potrzebujesz interakcji predyktora z płcią, czyli analizy moderacji.

Czy w eksperymencie trzeba kontrolować wiek i płeć?

Przy losowym przydziale do warunków wiek i płeć nie zakłócają efektu manipulacji. Warto je dodać tylko wtedy, gdy silnie przewidują wynik, bo wtedy zwiększają precyzję oszacowania. Decyzję zapisz przed zebraniem danych.

Powiązane hasła

Przeczytaj też

Nie wiesz, które zmienne kontrolne uwzględnić w swojej regresji?

Pomożemy uzasadnić dobór zmiennych kontrolnych, policzymy modele i wyjaśnimy wyniki tak, żebyś umiał(a) samodzielnie je opisać i obronić.

Oferta dla studentówWyceń analizę

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Bernerth, J. B., & Aguinis, H. (2016). A critical review and best-practice recommendations for control variable usage. Personnel Psychology, 69(1), 229–283. https://doi.org/10.1111/peps.12103
  2. Carlson, K. D., & Wu, J. (2012). The illusion of statistical control: Control variable practice in management research. Organizational Research Methods, 15(3), 413–435. https://doi.org/10.1177/1094428111428817
  3. Cinelli, C., Forney, A., & Pearl, J. (2024). A crash course in good and bad controls. Sociological Methods & Research, 53(3), 1071–1104. https://doi.org/10.1177/00491241221099552 ● Otwarty dostęp: pełny tekst
  4. Spector, P. E., & Brannick, M. T. (2011). Methodological urban legends: The misuse of statistical control variables. Organizational Research Methods, 14(2), 287–305. https://doi.org/10.1177/1094428110369842
  5. Wysocki, A. C., Lawson, K. M., & Rhemtulla, M. (2022). Statistical control requires causal justification. Advances in Methods and Practices in Psychological Science, 5(2), Article 25152459221095823. https://doi.org/10.1177/25152459221095823 ● Otwarty dostęp

Cytowania BibTeX

@article{bernerth2016critical, author={Bernerth, Jeremy B. and Aguinis, Herman}, title={{A critical review and best-practice recommendations for control variable usage}}, journal={Personnel Psychology}, year={2016}, volume={69}, number={1}, pages={229--283}, doi={10.1111/peps.12103}}
@article{carlson2012illusion, author={Carlson, Kevin D. and Wu, Jinpei}, title={{The illusion of statistical control: Control variable practice in management research}}, journal={Organizational Research Methods}, year={2012}, volume={15}, number={3}, pages={413--435}, doi={10.1177/1094428111428817}}
@article{cinelli2024crash, author={Cinelli, Carlos and Forney, Andrew and Pearl, Judea}, title={{A crash course in good and bad controls}}, journal={Sociological Methods \& Research}, year={2024}, volume={53}, number={3}, pages={1071--1104}, doi={10.1177/00491241221099552}}
@article{spector2011methodological, author={Spector, Paul E. and Brannick, Michael T.}, title={{Methodological urban legends: The misuse of statistical control variables}}, journal={Organizational Research Methods}, year={2011}, volume={14}, number={2}, pages={287--305}, doi={10.1177/1094428110369842}}
@article{wysocki2022statistical, author={Wysocki, Anna C. and Lawson, Katherine M. and Rhemtulla, Mijke}, title={{Statistical control requires causal justification}}, journal={Advances in Methods and Practices in Psychological Science}, year={2022}, volume={5}, number={2}, eid={25152459221095823}, doi={10.1177/25152459221095823}}
R