Co to jest randomizacja warstwowa?
Randomizacja warstwowa (ang. stratified randomization) to losowy przydział prowadzony osobno w warstwach – podgrupach wyznaczonych przez ważne czynniki prognostyczne, np. ośrodek, nasilenie objawów albo płeć. Każda warstwa ma własną listę przydziałów. Altman i Bland (1999) podkreślają, że w warstwach trzeba użyć randomizacji blokowej: przy randomizacji prostej w każdej warstwie warstwowanie nic nie daje. Celem jest podobny rozkład czynnika w obu grupach, a nie tylko równe liczebności.
Kiedy warstwować
Według przeglądu Kernana i in. (1999) warstwowanie opłaca się głównie w małych badaniach (poniżej 400 osób) i tylko wtedy, gdy czynnik silnie wpływa na wynik. Każdy kolejny czynnik mnoży liczbę warstw: nasilenie × płeć × 6 ośrodków to już 24 warstwy. Gdy warstw jest prawie tyle, ile osób, wiele bloków zostaje niedokończonych i równowaga znika. Wtedy lepiej sprawdza się minimalizacja przydziału.
Przykład
48 osób przydzielono w R w 4 warstwach (nasilenie objawów × płeć), z blokami po 4 w każdej warstwie. Osób z nasilonymi objawami było 10 w grupie A i 9 w grupie B, z łagodnymi – 15 i 14. W symulacji 10 000 badań po 40 osób różnica liczby osób z nasilonymi objawami między grupami wynosiła co najmniej 4 w 39.0% badań przy randomizacji prostej, w 0.5% przy 4 warstwach i w 25.4% przy 24 warstwach (z ośrodkiem).
Jak opisać w pracy
Na co uważać
- Pominięcie warstw w analizie. Kahan i Morris (2012) pokazali, że analiza bez zmiennych warstwujących zawyża błąd standardowy efektu: przedziały ufności są za szerokie, a moc testu mniejsza. Uwzględnij je w modelu, np. w ANCOVA.
- Za dużo warstw. Warstwuj tylko według silnych czynników prognostycznych.
- Warstwy po fakcie. Warstwowanie planuje się przed rekrutacją; podział na podgrupy po badaniu to analiza podgrup.
Listę przydziału dla 6 warstw pokazuje wpis Randomizacja w praktyce. Gdy losuje się całe ośrodki, a nie osoby, chodzi o randomizację klastrową.
Randomizacja warstwowa w R
Kod przydziela 48 osób w czterech warstwach z blokami po 4, a potem symuluje, jak często grupy różnią się liczbą osób z nasilonymi objawami przy randomizacji prostej, przy 4 i przy 24 warstwach.
Bloki w warstwach a liczba warstw
R
# Randomizacja warstwowa: osobna lista bloków (po 4) w każdej warstwie
set.seed(4100)
blok4 <- function(n) unlist(replicate(ceiling(n / 4), sample(rep(c("A", "B"), 2)), simplify = FALSE))[seq_len(n)]
# Przykład: 48 osób, warstwy = nasilenie objawów (łagodne / nasilone) × płeć (K / M)
osoby <- data.frame(nasilenie = sample(c("łagodne", "nasilone"), 48, replace = TRUE, prob = c(.6, .4)),
plec = sample(c("K", "M"), 48, replace = TRUE))
osoby$warstwa <- paste(osoby$nasilenie, osoby$plec)
osoby$grupa <- ave(osoby$warstwa, osoby$warstwa, FUN = function(x) blok4(length(x)))
table(osoby$warstwa, osoby$grupa)
table(osoby$nasilenie, osoby$grupa)
# Symulacja (10 000 badań po 40 osób): nierównowaga liczby osób z nasilonymi objawami
# |A − B| przy randomizacji prostej, warstwowej (4 warstwy) i warstwowej z ośrodkiem (6 ośrodków, 24 warstwy)
jedno <- function() {
nas <- runif(40) < .4
plec <- sample(c("K", "M"), 40, replace = TRUE)
osr <- sample(1:6, 40, replace = TRUE)
przydziel <- function(w) ave(rep("", 40), w, FUN = function(x) blok4(length(x)))
nier <- function(g) abs(sum(nas & g == "A") - sum(nas & g == "B"))
c(prosta = nier(sample(c("A", "B"), 40, replace = TRUE)),
warstwy4 = nier(przydziel(paste(nas, plec))),
warstwy24 = nier(przydziel(paste(nas, plec, osr))))
}
sym <- replicate(10000, jedno())
round(rowMeans(sym >= 4), 3) # P(różnica co najmniej 4 osób z nasilonymi objawami)
round(rowMeans(sym), 2) # średnia różnicaWynik w R
A B
łagodne K 6 6
łagodne M 9 8
nasilone K 6 5
nasilone M 4 4
A B
łagodne 15 14
nasilone 10 9
prosta warstwy4 warstwy24
0.390 0.005 0.254
prosta warstwy4 warstwy24
3.20 0.99 2.43 Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats). W pracy podaj wersję R, której faktycznie użyto (sessionInfo()).
- 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
Kiedy warstw jest za dużo?
W małych badaniach według jednej, najwyżej dwóch zmiennych (Altman i Bland, 1999). Każda zmienna mnoży liczbę warstw, a gdy warstw jest prawie tyle, ile osób, równowaga znika. Przy kilku ważnych czynnikach rozważ minimalizację.
Czy ośrodek jest zmienną warstwującą?
Tak. W badaniu wieloośrodkowym bez centralnej randomizacji każdy ośrodek ma własną listę przydziałów, więc ośrodek staje się warstwą (Altman i Bland, 1999). Uwzględnij go potem w analizie.
Czym randomizacja warstwowa różni się od doboru warstwowego próby?
Dobór warstwowy decyduje, kto trafi do badania, i służy reprezentatywności próby. Randomizacja warstwowa decyduje, do której grupy trafi osoba już zakwalifikowana, i służy porównywalności grup.
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
Randomizacja w praktyce
Bloki o losowej długości, warstwy, minimalizacja Pococka–Simona i ukrycie przydziału – lista przydziału w R, symulacja i wzór opisu CONSORT.
Czytaj →PoradnikRandomizacja klastrowa – plan i analiza
ICC z przedziałem ufności, efekt schematu przy nierównych oddziałach, cztery analizy tych samych danych, poprawki df i raport CONSORT – z kodem R.
Czytaj →PoradnikBadania kliniczne i pomiar przed i po – przewodnik
Osiem etapów badania z interwencją: schemat, etyka, błąd pomiaru, liczebność, ITT, ANCOVA, RCI i MCID oraz CONSORT – z linkami do każdego etapu.
Czytaj →Potrzebujesz wsparcia w analizie danych?
Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.
Wyceń analizęOferta dla studentówBibliografia i dalsza literatura naukowa (APA 7)
- Altman, D. G., & Bland, J. M. (1999). Statistics notes: How to randomise. BMJ, 319(7211), 703–704. https://doi.org/10.1136/bmj.319.7211.703 ● Otwarty dostęp
- Kahan, B. C., & Morris, T. P. (2012). Improper analysis of trials randomised using stratified blocks or minimisation. Statistics in Medicine, 31(4), 328–340. https://doi.org/10.1002/sim.4431
- Kernan, W. N., Viscoli, C. M., Makuch, R. W., Brass, L. M., & Horwitz, R. I. (1999). Stratified randomization for clinical trials. Journal of Clinical Epidemiology, 52(1), 19–26. https://doi.org/10.1016/S0895-4356(98)00138-3 ● Otwarty dostęp
Cytowania BibTeX
@article{altman1999how, author={Altman, Douglas G. and Bland, J. Martin}, title={{Statistics notes: How to randomise}}, journal={BMJ}, year={1999}, volume={319}, number={7211}, pages={703--704}, doi={10.1136/bmj.319.7211.703}}@article{kahan2012improper, author={Kahan, Brennan C. and Morris, Tim P.}, title={{Improper analysis of trials randomised using stratified blocks or minimisation}}, journal={Statistics in Medicine}, year={2012}, volume={31}, number={4}, pages={328--340}, doi={10.1002/sim.4431}}@article{kernan1999stratified, author={Kernan, Walter N. and Viscoli, Catherine M. and Makuch, Robert W. and Brass, Lawrence M. and Horwitz, Ralph I.}, title={{Stratified randomization for clinical trials}}, journal={Journal of Clinical Epidemiology}, year={1999}, volume={52}, number={1}, pages={19--26}, doi={10.1016/s0895-4356(98)00138-3}}