Słownik metodologiczny · Projekt badania

Analiza pośrednia (interim) – kiedy można wcześniej zatrzymać badanie?

Analiza pośrednia sprawdza dane przed końcem badania, a reguła zatrzymania mówi, kiedy można je przerwać. Pokazujemy, ile kosztuje zaglądanie do danych bez korekty, granice Pococka i O'Briena–Fleminga, symulację w R i opis do pracy.

Strona główna / Słownik / Analiza pośrednia (interim)
W skrócie: Analiza pośrednia (interim) to analiza danych przed planowanym końcem badania, a reguła zatrzymania – ustalona z góry granica, po której przekroczeniu badanie się przerywa. Bez korekty pięć spojrzeń na dane podnosi błąd I rodzaju z 5% do ok. 14%; granice Pococka i O'Briena–Fleminga utrzymują go na 5%.

Co to jest analiza pośrednia?

Analiza pośrednia (ang. interim analysis) to analiza danych zebranych przed planowanym końcem badania, wykonywana po to, by zdecydować, czy je kontynuować. Reguła zatrzymania (ang. stopping rule) to ustalona z góry granica statystyki testu: jej przekroczenie kończy badanie wcześniej. Pocock (1977) opisał grupowe plany sekwencyjne, w których rekrutację dzieli się na równe grupy, a po każdej testuje się zgromadzone dane.

Dlaczego potrzebna jest surowsza granica

Każde spojrzenie na dane to kolejny test, więc działa problem wielokrotnych porównań. W symulacji 100 000 badań bez prawdziwego efektu z pięcioma analizami (cztery pośrednie i końcowa) odsetek fałszywie pozytywnych wyników, czyli błąd I rodzaju, wynosił:

  • |Z| > 1.96 w każdej analizie (bez korekty): 14.4%;
  • Bonferroni (|Z| > 2.576): 3.2% – za ostrożnie;
  • Pocock (stała granica 2.414): 5.0%;
  • O'Brien–Fleming (4.593, 3.248, 2.652, 2.297, 2.054): 5.0%.

Granica O'Briena i Fleminga (1979) jest bardzo surowa na początku i zbliża się do 1.96 w analizie końcowej (nominalne p .040 wobec .016 u Pococka). Autorzy pokazali, że poziom istotności i moc całej procedury są praktycznie takie jak w pojedynczym teście na pełnej próbie. Lan i DeMets (1983) zaproponowali funkcję wydawania α, dzięki której liczby i terminów analiz nie trzeba ustalać z góry. Ogólniej o poprawkach na wielokrotne porównania piszemy osobno.

Jak opisać w pracy

Zaplanowano cztery analizy pośrednie po zebraniu 20%, 40%, 60% i 80% danych oraz analizę końcową. Badanie miało zostać przerwane z powodu skuteczności po przekroczeniu granicy O'Briena–Fleminga (|Z| ≥ 4.593, 3.248, 2.652, 2.297; w analizie końcowej 2.054), co utrzymuje łączny błąd I rodzaju na poziomie .05.

Na co uważać

  • Reguła dopisana po fakcie. Liczbę analiz i granice zapisz w planie analizy statystycznej i przy rejestracji badania.
  • Niezaplanowane spojrzenia. Każde liczy się do błędu I rodzaju, nawet jeśli nie przerwało badania.
  • Brak opisu w raporcie. Podaj, ile analiz pośrednich wykonano i dlaczego badanie zakończono – zgodnie z wytycznymi CONSORT.
Przykład reprodukowalny

Błąd I rodzaju przy analizach pośrednich w R

Kod symuluje 100 000 badań bez prawdziwego efektu z pięcioma analizami, wyznacza granice Pococka i O'Briena–Fleminga na połowie symulacji i sprawdza na drugiej połowie, jak często każda reguła daje fałszywie pozytywny wynik.

Granice i błąd I rodzaju dla czterech reguł zatrzymania

Dane wejściowe: dane symulowane z set.seed(415): 100 000 ścieżek statystyki Z przy pięciu równych porcjach danych i braku efektu.

Co odczytać: tabelę granic |Z| w pięciu analizach, łączny błąd I rodzaju każdej reguły i nominalne p odpowiadające granicy w analizie końcowej. Granice z symulacji są przybliżeniem dokładnych wartości tablicowych.

R
# Błąd I rodzaju przy pięciu analizach (4 pośrednie + końcowa) w badaniu bez prawdziwego efektu.
set.seed(415)
K <- 5; powt <- 100000
# Statystyka Z po k-tej analizie = suma k niezależnych porcji N(0, 1) / sqrt(k)
Z <- t(apply(matrix(rnorm(powt * K), powt, K), 1, cumsum)) / matrix(sqrt(1:K), powt, K, byrow = TRUE)
# Granice wyznaczone na pierwszej połowie symulacji, sprawdzone na drugiej
a <- 1:(powt / 2); b <- (powt / 2 + 1):powt
c_pocock <- quantile(apply(abs(Z[a, ]), 1, max), 0.95)                                     # stała granica
c_obf    <- quantile(apply(abs(Z[a, ]) * matrix(sqrt(1:K / K), length(a), K, byrow = TRUE), 1, max), 0.95)
granice <- rbind(naiwnie = rep(qnorm(0.975), K), Bonferroni = rep(qnorm(1 - 0.05 / (2 * K)), K),
                 Pocock = rep(c_pocock, K), OBrien_Fleming = c_obf * sqrt(K / 1:K))
colnames(granice) <- paste0("analiza", 1:K)
round(granice, 3)                                                                          # granice |Z|
round(apply(granice, 1, function(g) mean(apply(abs(Z[b, ]) > matrix(g, length(b), K, byrow = TRUE), 1, any))), 3)  # błąd I rodzaju
round(2 * pnorm(-granice[, K]), 4)                                                        # nominalne p w analizie końcowej
Wynik w R
               analiza1 analiza2 analiza3 analiza4 analiza5
naiwnie           1.960    1.960    1.960    1.960    1.960
Bonferroni        2.576    2.576    2.576    2.576    2.576
Pocock            2.414    2.414    2.414    2.414    2.414
OBrien_Fleming    4.593    3.248    2.652    2.297    2.054
       naiwnie     Bonferroni         Pocock OBrien_Fleming
         0.144          0.032          0.050          0.050
       naiwnie     Bonferroni         Pocock OBrien_Fleming
        0.0500         0.0100         0.0158         0.0400

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats). 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/

Najczęstsze pytania

Czy można zajrzeć do danych w trakcie badania bez żadnej korekty?

Można, ale każde spojrzenie z decyzją o przerwaniu to kolejny test. W naszej symulacji pięć analiz z progiem |Z| > 1.96 dało 14.4% fałszywie pozytywnych wyników zamiast 5%.

Czym różni się granica Pococka od granicy O'Briena–Fleminga?

Granica Pococka jest taka sama w każdej analizie, więc łatwiej przerwać badanie wcześnie, ale analiza końcowa wymaga surowszego progu. Granica O'Briena–Fleminga jest bardzo wysoka na początku, a w analizie końcowej bliska zwykłemu 1.96.

Co zrobić, gdy terminów analiz pośrednich nie da się ustalić z góry?

Użyj funkcji wydawania α (Lan i DeMets, 1983). Określa ona, jaką część błędu I rodzaju można zużyć do danego momentu badania, więc granica zależy od dotychczasowych analiz, a nie od ich łącznej liczby.

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. Lan, K. K. G., & DeMets, D. L. (1983). Discrete sequential boundaries for clinical trials. Biometrika, 70(3), 659–663. https://doi.org/10.1093/biomet/70.3.659
  2. O'Brien, P. C., & Fleming, T. R. (1979). A multiple testing procedure for clinical trials. Biometrics, 35(3), 549–556. https://doi.org/10.2307/2530245
  3. Pocock, S. J. (1977). Group sequential methods in the design and analysis of clinical trials. Biometrika, 64(2), 191–199. https://doi.org/10.1093/biomet/64.2.191

Cytowania BibTeX

@article{lan1983discrete, author={Lan, K. K. Gordon and DeMets, David L.}, title={{Discrete sequential boundaries for clinical trials}}, journal={Biometrika}, year={1983}, volume={70}, number={3}, pages={659--663}, doi={10.1093/biomet/70.3.659}}
@article{obrien1979multiple, author={O'Brien, Peter C. and Fleming, Thomas R.}, title={{A multiple testing procedure for clinical trials}}, journal={Biometrics}, year={1979}, volume={35}, number={3}, pages={549--556}, doi={10.2307/2530245}}
@article{pocock1977group, author={Pocock, Stuart J.}, title={{Group sequential methods in the design and analysis of clinical trials}}, journal={Biometrika}, year={1977}, volume={64}, number={2}, pages={191--199}, doi={10.1093/biomet/64.2.191}}
R