Słownik metodologiczny · Projekt badania

Schemat stepped-wedge – jak działa randomizacja schodkowa klastrów?

W schemacie stepped-wedge wszystkie klastry dostają interwencję, ale w losowej kolejności i krokami. Pokazujemy harmonogram, problem trendu czasowego, symulację w R, opis do pracy i najczęstsze błędy.

Strona główna / Słownik / Schemat stepped-wedge
W skrócie: Schemat stepped-wedge to badanie z randomizacją klastrową, w którym wszystkie klastry zaczynają bez interwencji i w losowej kolejności, krokami, przechodzą na interwencję. Losuje się moment wejścia klastra, a w analizie trzeba uwzględnić i klastry, i okres, bo efekt miesza się z trendem czasowym.

Co to jest schemat stepped-wedge?

Schemat stepped-wedge (ang. stepped wedge cluster randomised trial, schemat schodkowy) to odmiana badania z randomizacją klastrową. Wszystkie klastry – szpitale, przychodnie, szkoły – zaczynają w warunku kontrolnym, a potem krokami, w losowej kolejności, przechodzą na interwencję, aż otrzymają ją wszystkie (Hemming i in., 2015). Hussey i Hughes (2007) opisali go jako szczególny rodzaj klastrowego badania naprzemiennego i podali metody planowania oraz analizy.

Harmonogram

Losuje się nie osoby, lecz moment wejścia klastra. Przykładowy harmonogram dla 8 przychodni i 5 okresów (0 – kontrola, 1 – interwencja):

Losowy harmonogram stepped-wedge (R, set.seed(414))
PrzychodniaOkres 1Okres 2Okres 3Okres 4Okres 5
P3, P501111
P2, P400111
P1, P600011
P7, P800001

Schemat pasuje do sytuacji, w których interwencję i tak wdroży się wszędzie, ale nie da się tego zrobić naraz.

Czas jako zakłócacz

Udział klastrów z interwencją rośnie z okresem: 0%, 25%, 50%, 75%, 100%. Hemming i in. (2015) ostrzegają, że efekt interwencji miesza się wtedy z trendem czasowym. W symulacji (500 powtórzeń, 20 pacjentów na przychodnię i okres) prawdziwy efekt wynosił 0.30, a wyniki rosły o 0.15 na okres. Model wielopoziomowy bez okresu dawał średnio 0.662, a z okresem jako efektem stałym – 0.298.

Jak opisać w pracy

Zastosowano schemat stepped-wedge: 8 przychodni przydzielono losowo do czterech kroków wdrożenia (po 2 przychodnie), obserwowanych przez 5 okresów. Efekt interwencji oszacowano w modelu mieszanym z losowym wyrazem wolnym dla przychodni i okresem jako efektem stałym.

Na co uważać

  • Pominięcie okresu w modelu – patrz przykład.
  • Liczebność. Obliczenia muszą uwzględniać i klastry (efekt schematu, ICC), i czas (Hemming i in., 2015).
  • Selekcja. Przy rekrutacji osób już po poznaniu warunku klastra i bez ukrycia przydziału grozi błąd selekcji; zasady ukrycia omawia wpis Randomizacja w praktyce.

Szerzej o planowaniu badań z interwencją: przewodnik po badaniach klinicznych i badaniach przed i po.

Przykład reprodukowalny

Harmonogram i analiza stepped-wedge w R

Kod losuje kolejność wejścia 8 przychodni, buduje macierz harmonogramu, a potem w 500 symulacjach porównuje oszacowanie efektu z modelu bez okresu i z okresem.

Losowy harmonogram i wpływ trendu czasowego na oszacowanie

Dane wejściowe: dane symulowane z set.seed(414): 8 przychodni, 5 okresów, 20 pacjentów na przychodnię i okres; efekt 0.30, trend +0.15 na okres, ICC ok. 0.05.

Co odczytać: macierz 0/1 (wiersze – przychodnie w kolejności wejścia), odsetek przychodni z interwencją w okresach oraz średnią i SD oszacowań efektu w obu modelach.

R
suppressPackageStartupMessages(library(lme4))
set.seed(414)
# 1. Losowy harmonogram: 8 przychodni, 5 okresów, w każdym kroku 2 przychodnie przechodzą na interwencję
klastry <- paste0("P", 1:8)
krok <- setNames(rep(1:4, each = 2), sample(klastry))         # losowa kolejność wejścia
X <- t(sapply(klastry, function(k) as.integer(1:5 > krok[k])))  # 0 = kontrola, 1 = interwencja
colnames(X) <- paste0("okres", 1:5)
X[order(krok[klastry]), ]
colMeans(X)                                                    # odsetek przychodni z interwencją w okresie

# 2. Symulacja: efekt interwencji 0.30, trend czasowy +0.15 na okres, 20 pacjentów na przychodnię i okres
symuluj <- function() {
  d <- expand.grid(osoba = 1:20, okres = 1:5, klaster = klastry)
  d$interwencja <- X[cbind(as.integer(d$klaster), d$okres)]
  u <- rnorm(8, 0, sqrt(0.05)); names(u) <- klastry           # ICC ok. 0.05
  d$y <- 0.30 * d$interwencja + 0.15 * (d$okres - 1) + u[as.character(d$klaster)] + rnorm(nrow(d), 0, sqrt(0.95))
  d$okres <- factor(d$okres)
  c(bez_okresu = fixef(lmer(y ~ interwencja + (1 | klaster), data = d))[["interwencja"]],
    z_okresem  = fixef(lmer(y ~ interwencja + okres + (1 | klaster), data = d))[["interwencja"]])
}
oszac <- t(replicate(500, suppressMessages(symuluj())))  # pomija komunikaty o dopasowaniu osobliwym
round(rbind(srednia = colMeans(oszac), sd = apply(oszac, 2, sd)), 3)   # prawdziwy efekt = 0.30
Wynik w R
   okres1 okres2 okres3 okres4 okres5
P3      0      1      1      1      1
P5      0      1      1      1      1
P2      0      0      1      1      1
P4      0      0      1      1      1
P1      0      0      0      1      1
P6      0      0      0      1      1
P7      0      0      0      0      1
P8      0      0      0      0      1
okres1 okres2 okres3 okres4 okres5
  0.00   0.25   0.50   0.75   1.00
        bez_okresu z_okresem
srednia      0.662     0.298
sd           0.076     0.121

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet lme4). W pracy podaj wersje faktycznie użytych pakietów (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/
  2. lme4 (wersja 2.0.1): Bates, D., Mächler, M., Bolker, B., & Walker, S. (2015). Fitting linear mixed-effects models using lme4. Journal of Statistical Software, 67(1), 1–48. https://doi.org/10.18637/jss.v067.i01

Najczęstsze pytania

Czym stepped-wedge różni się od zwykłej randomizacji klastrowej?

W klasycznym badaniu klastrowym połowa klastrów dostaje interwencję, a połowa pozostaje kontrolą przez cały czas. W stepped-wedge interwencję otrzymują w końcu wszystkie klastry, a losowana jest tylko kolejność wejścia.

Dlaczego w analizie stepped-wedge trzeba uwzględnić okres?

Bo pod koniec badania interwencję ma więcej klastrów niż na początku. Jeśli wyniki i tak rosną z czasem, model bez okresu przypisze ten wzrost interwencji – w naszej symulacji oszacowanie było ponad dwukrotnie zawyżone.

Czy w schemacie stepped-wedge losuje się uczestników?

Nie. Jednostką randomizacji jest klaster, a losuje się krok, w którym klaster rozpocznie interwencję. Uczestnicy mogą się zmieniać między okresami albo być obserwowani wielokrotnie.

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.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Hemming, K., Haines, T. P., Chilton, P. J., Girling, A. J., & Lilford, R. J. (2015). The stepped wedge cluster randomised trial: Rationale, design, analysis, and reporting. BMJ, 350, Article h391. https://doi.org/10.1136/bmj.h391 ● Otwarty dostęp
  2. Hussey, M. A., & Hughes, J. P. (2007). Design and analysis of stepped wedge cluster randomized trials. Contemporary Clinical Trials, 28(2), 182–191. https://doi.org/10.1016/j.cct.2006.05.007

Cytowania BibTeX

@article{hemming2015stepped, author={Hemming, Karla and Haines, Terry P. and Chilton, Peter J. and Girling, Alan J. and Lilford, Richard J.}, title={{The stepped wedge cluster randomised trial: Rationale, design, analysis, and reporting}}, journal={BMJ}, year={2015}, volume={350}, eid={h391}, doi={10.1136/bmj.h391}}
@article{hussey2007design, author={Hussey, Michael A. and Hughes, James P.}, title={{Design and analysis of stepped wedge cluster randomized trials}}, journal={Contemporary Clinical Trials}, year={2007}, volume={28}, number={2}, pages={182--191}, doi={10.1016/j.cct.2006.05.007}}
R