Słownik metodologiczny · Projekt badania

Minimalizacja przydziału – jak zrównoważyć grupy w kilku czynnikach naraz?

Minimalizacja przydziału kieruje kolejną osobę do grupy, w której jej przydział najmniej zwiększy nierównowagę czynników prognostycznych. Pokazujemy metodę Pococka–Simona, element losowy, przykład w R, opis do pracy i analizę.

Strona główna / Słownik / Minimalizacja przydziału
W skrócie: Minimalizacja przydziału to metoda, w której grupę dla kolejnej osoby wybiera się tak, by jak najmniej zwiększyć nierównowagę grup w kilku czynnikach prognostycznych naraz, zwykle z elementem losowym. Daje dobrą równowagę nawet w małych badaniach, ale czynniki minimalizacji trzeba uwzględnić w analizie.

Co to jest minimalizacja przydziału?

Minimalizacja przydziału (ang. minimization) to metoda, w której grupa dla kolejnej osoby zależy od cech osób już włączonych do badania. Pocock i Simon (1975) zaproponowali ją na sytuację, gdy czynników prognostycznych jest kilka, a bloki w warstwach zawodzą, bo liczba warstw zbliża się do liczebności próby. Minimalizacja nie równoważy kombinacji czynników, tylko rozkład każdego czynnika osobno. Dzięki temu można równoważyć cztery czy pięć czynników, przy których randomizacja warstwowa w małej próbie by zawiodła.

Jak działa minimalizacja

Altman i Bland (2005) opisują prostą wersję. Pierwszą osobę przydziela się losowo. Dla każdej następnej liczy się, ile osób o tych samych cechach (ta sama płeć, grupa wieku, nasilenie objawów, ośrodek) jest już w każdej grupie, i sumuje te liczby. Osoba trafia do grupy z mniejszą sumą, a przy remisie – losowo. Zwykle dodaje się element losowy: grupę minimalizującą nierównowagę wybiera się z prawdopodobieństwem np. 0.8. Równowaga jest wtedy trochę gorsza, ale przydział trudniej przewidzieć.

Przykład

40 osób przydzielono w R według czterech czynników (płeć, wiek, nasilenie, ośrodek) z prawdopodobieństwem wyboru grupy wskazanej równym 0.8. Dla 21. osoby (mężczyzna, 50+, łagodne objawy, ośrodek 1) suma wynosiła 18 w grupie A i 21 w grupie B, więc wskazaną grupą była A. Grupy liczyły po 20 osób, a największa różnica w poziomie czynnika wyniosła 3 osoby. W symulacji 2000 badań średnia największa nierównowaga wynosiła 2.81 osoby wobec 7.08 przy randomizacji prostej, a różnica co najmniej 4 osób zdarzała się w 23.6% wobec 95.0% badań.

Jak opisać w pracy

Uczestników przydzielono do grup (1 : 1) metodą minimalizacji według płci, wieku (< 50 / 50+), nasilenia objawów i ośrodka, z elementem losowym (prawdopodobieństwo wyboru grupy minimalizującej nierównowagę 0.8). Przydziału dokonywał centralny system niezależny od badaczy; czynniki minimalizacji uwzględniono w analizie.

Na co uważać

  • Analiza bez czynników minimalizacji. Kahan i Morris (2012) pokazali, że takie analizy dają za szerokie przedziały ufności i mniejszą moc. Uwzględnij czynniki jako kowarianty, np. w ANCOVA.
  • Brak elementu losowego. Deterministyczną minimalizację da się przewidzieć, jeśli zna się cechy wcześniejszych osób. Prowadź ją centralnie i zadbaj o ukrycie przydziału.
  • Zmienne ciągłe trzeba podzielić na kategorie przed rozpoczęciem badania.

Minimalizację obok bloków i warstw porównuje wpis Randomizacja w praktyce, a planowanie całego badania – Badania kliniczne i pomiar przed i po.

Przykład reprodukowalny

Minimalizacja w R

Kod wykonuje minimalizację w wersji Altmana i Blanda (2005) z elementem losowym, pokazuje obliczenie dla jednej osoby i porównuje nierównowagę czynników z randomizacją prostą.

Minimalizacja według czterech czynników z elementem losowym

Dane wejściowe: dane symulowane z set.seed(4110): 40 osób, czynniki płeć, wiek (< 50 / 50+), nasilenie objawów i ośrodek (1–3); symulacja 2000 badań.

Co odczytać: sumy dla 21. osoby, liczebności grup, największą nierównowagę w poziomie każdego czynnika oraz średnią i odsetek nierównowagi co najmniej 4 osób w symulacji.

R
# Minimalizacja (Pocock i Simon, 1975; Altman i Bland, 2005): dla nowej osoby sumujemy,
# ile osób o tych samych poziomach czynników jest już w każdym ramieniu; ramię z mniejszą sumą
# wybieramy z prawdopodobieństwem 0.8, przy remisie losujemy 1:1
set.seed(4110)
n <- 40
osoby <- data.frame(plec = sample(c("K", "M"), n, replace = TRUE, prob = c(.6, .4)),
                    wiek = sample(c("<50", "50+"), n, replace = TRUE),
                    nasilenie = sample(c("łagodne", "nasilone"), n, replace = TRUE, prob = c(.6, .4)),
                    osrodek = sample(c("1", "2", "3"), n, replace = TRUE))
czynniki <- names(osoby)

minimalizuj <- function(dane, pr = 0.8, slad = 0) {
  grupa <- rep(NA_character_, nrow(dane))
  for (i in seq_len(nrow(dane))) {
    wczesniej <- seq_len(i - 1)
    suma <- sapply(c("A", "B"), function(k)
      sum(sapply(czynniki, function(f) sum(dane[[f]][wczesniej] == dane[[f]][i] & grupa[wczesniej] == k))))
    if (suma["A"] == suma["B"]) {
      grupa[i] <- sample(c("A", "B"), 1)
    } else {
      lepsze <- names(which.min(suma))
      grupa[i] <- if (runif(1) < pr) lepsze else setdiff(c("A", "B"), lepsze)
    }
    if (i %in% slad) cat(sprintf("osoba %d (%s): suma A = %d, suma B = %d -> %s\n", i,
                                 paste(unlist(dane[i, ]), collapse = "/"), suma["A"], suma["B"], grupa[i]))
  }
  grupa
}
osoby$grupa <- minimalizuj(osoby, slad = 21)
table(osoby$grupa)
nierownowaga <- function(g, dane) sapply(czynniki, function(f)
  max(abs(tapply(g == "A", dane[[f]], sum) - tapply(g == "B", dane[[f]], sum))))
rbind(minimalizacja = nierownowaga(osoby$grupa, osoby),
      prosta = nierownowaga(sample(c("A", "B"), n, replace = TRUE), osoby))

# Symulacja (2000 badań po 40 osób): największa nierównowaga w poziomie któregokolwiek czynnika
sym <- replicate(2000, {
  d <- data.frame(plec = sample(c("K", "M"), n, TRUE, c(.6, .4)), wiek = sample(c("<50", "50+"), n, TRUE),
                  nasilenie = sample(c("łagodne", "nasilone"), n, TRUE, c(.6, .4)), osrodek = sample(c("1", "2", "3"), n, TRUE))
  c(prosta = max(nierownowaga(sample(c("A", "B"), n, TRUE), d)),
    minimalizacja = max(nierownowaga(minimalizuj(d), d)))
})
round(rowMeans(sym), 2)                              # średnia największa nierównowaga (liczba osób)
round(rowMeans(sym >= 4), 3)                         # P(nierównowaga co najmniej 4 osób)
Wynik w R
osoba 21 (M/50+/łagodne/1): suma A = 18, suma B = 21 -> A

 A  B 
20 20 
              plec wiek nasilenie osrodek
minimalizacja    1    2         0       3
prosta           5    4         4       3
       prosta minimalizacja 
         7.08          2.81 
       prosta minimalizacja 
        0.950         0.236 

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()).

  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 badanie z minimalizacją można nazwać randomizowanym?

Nie w ścisłym sensie, bo przydział zależy od osób już włączonych. Z elementem losowym zachowuje jednak sporą nieprzewidywalność, a Altman i Bland (2005) uznają ją za uprawnioną alternatywę dla zwykłej randomizacji.

Ilu czynników można użyć w minimalizacji?

Więcej niż w randomizacji warstwowej, bo minimalizacja równoważy każdy czynnik osobno, a nie ich kombinacje (Pocock i Simon, 1975). W praktyce wybiera się kilka silnych czynników prognostycznych i ośrodek; zmienne ciągłe trzeba podzielić na kategorie.

Jak wykonać minimalizację w R?

Wystarczy pętla w base R: dla każdej nowej osoby policz sumę osób o tych samych cechach w każdej grupie i wybierz grupę z mniejszą sumą z prawdopodobieństwem np. 0.8. W prawdziwym badaniu przydziałem powinien zarządzać system centralny, a nie arkusz badacza.

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. Altman, D. G., & Bland, J. M. (2005). Treatment allocation by minimisation. BMJ, 330(7495), 843. https://doi.org/10.1136/bmj.330.7495.843 ● Otwarty dostęp
  2. 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
  3. Pocock, S. J., & Simon, R. (1975). Sequential treatment assignment with balancing for prognostic factors in the controlled clinical trial. Biometrics, 31(1), 103–115. https://doi.org/10.2307/2529712

Cytowania BibTeX

@article{altman2005treatment, author={Altman, Douglas G. and Bland, J. Martin}, title={{Treatment allocation by minimisation}}, journal={BMJ}, year={2005}, volume={330}, number={7495}, pages={843}, doi={10.1136/bmj.330.7495.843}}
@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{pocock1975sequential, author={Pocock, Stuart J. and Simon, Richard}, title={{Sequential treatment assignment with balancing for prognostic factors in the controlled clinical trial}}, journal={Biometrics}, year={1975}, volume={31}, number={1}, pages={103--115}, doi={10.2307/2529712}}
R