Słownik metodologiczny · Projekt badania

Analiza per protocol – kogo obejmuje i dlaczego bywa obciążona?

Analiza per protocol ogranicza badanie randomizowane do osób, które przestrzegały protokołu. Pokazujemy, jak ustalić kryterium, czym różni się od analizy as treated i jak może pokazać efekt interwencji, która nie działa.

Strona główna / Słownik / Analiza per protocol
W skrócie: Analiza per protocol obejmuje tylko uczestników, którzy otrzymali interwencję zgodnie z protokołem. Odpowiada na inne pytanie niż ITT i może być obciążona, bo osoby przestrzegające protokołu różnią się od pozostałych. Kryterium odstępstwa ustal z góry, a PP raportuj jako analizę dodatkową.

Co to jest analiza per protocol?

Analiza per protocol (ang. per-protocol analysis, PP) obejmuje tylko tych uczestników badania randomizowanego, którzy otrzymali przydzieloną interwencję zgodnie z protokołem, bez poważnych odstępstw (Gupta, 2011). To podzbiór osób z analizy ITT, która obejmuje wszystkich wylosowanych. Pokrewna, ale inna jest analiza as treated: porównuje osoby według tego, co faktycznie dostały, a nie według przydziału.

Kogo wykluczyć i jak to ustalić

  • Kryterium z góry. Przed zebraniem danych zapisz, co jest poważnym odstępstwem: np. udział w mniej niż 6 z 8 sesji, przyjęcie zakazanego leczenia, brak pomiaru w oknie czasowym. Próg adherencji wpisz do rejestracji badania.
  • To samo w obu ramionach. Odstępstwa w grupie kontrolnej (np. ktoś sam zaczął podobną terapię) też wykluczają z PP.
  • Diagram przepływu. Podaj, ile osób i z jakiego powodu wypadło z PP w każdej grupie.

Przykład

Po 150 osób z bólem krzyża wylosowano do programu ćwiczeń albo do kontroli; program w rzeczywistości nie działa (dane symulowane). Program przerwało 31 osób, częściej te z silniejszym bólem na starcie (7.11 wobec 5.84 pkt w skali 0–10). Według ITT różnica wyniosła 0.05 pkt, 95% CI [−0.46, 0.56]. PP bez przerywających dała −0.35 pkt, 95% CI [−0.88, 0.18], a as treated −0.61 pkt, 95% CI [−1.13, −0.10]: pozorną korzyść z interwencji, która nic nie zmienia. Usunięcie osób zależnie od rokowania niszczy porównywalność grup z randomizacji.

Jak opisać w pracy

Analizą główną była analiza ITT (N = 300): różnica w nasileniu bólu po 8 tygodniach wyniosła 0.05 pkt, 95% CI [−0.46, 0.56]. W analizie per protocol, z której wykluczono 31 osób, które nie ukończyły programu zgodnie z ustalonym z góry kryterium (n = 269), różnica wyniosła −0.35 pkt, 95% CI [−0.88, 0.18].

Na co uważać

  • PP to porównanie obserwacyjne. Hernán i Robins (2017) pokazują, że proste PP może być obciążone, i omawiają metody, które uwzględniają czynniki wpływające na przestrzeganie protokołu (podobnie jak propensity score).
  • Badania non-inferiority. Tu ITT nie jest automatycznie ostrożniejsza. Schumi i Wittes (2011) ostrzegają, że im mniej starannie prowadzone badanie, tym łatwiej wykazać brak gorszości, i omawiają wybór populacji ITT i PP. Raportuj wtedy obie analizy.
  • PP to nie sposób na braki danych. Osoby bez pomiaru końcowego to inny problem, opisany w haśle LOCF i proste imputacje.

Więcej o raportowaniu badań interwencji znajdziesz we wpisie statystyka dla fizjoterapeuty.

Przykład reprodukowalny

ITT, per protocol i as treated w R

Kod symuluje badanie bez rzeczywistego efektu, w którym program częściej przerywają osoby z silniejszym bólem, i porównuje trzy analizy.

Trzy populacje analizy w jednym badaniu

Dane wejściowe: ból w skali 0–10 na starcie i po 8 tygodniach u 300 osób (dane symulowane, set.seed(217)).

Co odczytać: liczbę osób, które przerwały program, ich ból na starcie oraz różnicę grup (b) z 95% CI w każdej analizie.

R
set.seed(217)
n <- 150                                                  # osób w ramieniu
grupa <- rep(c("program", "kontrola"), each = n)
bol0 <- round(rnorm(2 * n, 6, 1.5), 1)                    # bol na starcie (NRS 0–10)
bol8 <- round(bol0 - 1 + rnorm(2 * n, 0, 1.5), 1)          # program nie działa: ten sam spadek w obu grupach
# w programie częściej rezygnują osoby z silniejszym bolem
przerwal <- grupa == "program" & runif(2 * n) < plogis(-1.5 + 0.8 * (bol0 - 6))
d <- data.frame(grupa = factor(grupa, c("kontrola", "program")), bol8, przerwal)
efekt <- function(dd) { m <- lm(bol8 ~ grupa, dd); round(c(b = coef(m)[[2]], confint(m)[2, ], n = nrow(dd)), 2) }
sum(d$przerwal)                                           # ile osób przerwało program
round(tapply(bol0, d$przerwal, mean), 2)                  # bol na starcie: kontynuujący vs przerywający
d$otrzymal <- factor(ifelse(d$grupa == "program" & !d$przerwal, "program", "kontrola"), c("kontrola", "program"))
rbind(ITT        = efekt(d),
      PP         = efekt(subset(d, !przerwal)),
      as_treated = efekt(transform(d, grupa = otrzymal)))
Wynik w R
[1] 31
FALSE  TRUE 
 5.84  7.11 
               b 2.5 % 97.5 %   n
ITT         0.05 -0.46   0.56 300
PP         -0.35 -0.88   0.18 269
as_treated -0.61 -1.13  -0.10 300

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats).

  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

Czym analiza per protocol różni się od analizy as treated?

Per protocol wyklucza osoby z odstępstwami od protokołu. As treated nikogo nie wyklucza, tylko przenosi uczestników do grupy według faktycznie otrzymanego leczenia, a nie według przydziału.

Kiedy analiza per protocol jest analizą główną?

W badaniach superiority prawie nigdy, bo analizą główną jest ITT. W badaniach non-inferiority i równoważności zwykle raportuje się obie analizy i sprawdza, czy prowadzą do tego samego wniosku.

Czy wyniki per protocol i ITT powinny być podobne?

Przy dobrej adherencji zwykle są zbliżone. Duża rozbieżność sygnalizuje, że osoby przestrzegające protokołu różnią się od pozostałych, i wymaga opisu w dyskusji.

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. Gupta, S. K. (2011). Intention-to-treat concept: A review. Perspectives in Clinical Research, 2(3), 109–112. https://doi.org/10.4103/2229-3485.83221 ● Otwarty dostęp
  2. Hernán, M. A., & Robins, J. M. (2017). Per-protocol analyses of pragmatic trials. New England Journal of Medicine, 377(14), 1391–1398. https://doi.org/10.1056/nejmsm1605385
  3. Schumi, J., & Wittes, J. T. (2011). Through the looking glass: Understanding non-inferiority. Trials, 12(1), Article 106. https://doi.org/10.1186/1745-6215-12-106 ● Otwarty dostęp

Cytowania BibTeX

@article{gupta2011intention, author={Gupta, Sandeep K.}, title={{Intention-to-treat concept: A review}}, journal={Perspectives in Clinical Research}, year={2011}, volume={2}, number={3}, pages={109--112}, doi={10.4103/2229-3485.83221}}
@article{hernan2017per, author={Hernán, Miguel A. and Robins, James M.}, title={{Per-protocol analyses of pragmatic trials}}, journal={New England Journal of Medicine}, year={2017}, volume={377}, number={14}, pages={1391--1398}, doi={10.1056/nejmsm1605385}}
@article{schumi2011through, author={Schumi, Jennifer and Wittes, Janet T.}, title={{Through the looking glass: Understanding non-inferiority}}, journal={Trials}, year={2011}, volume={12}, number={1}, eid={106}, doi={10.1186/1745-6215-12-106}}
R