Słownik metodologiczny · Projekt badania

Przerwany szereg czasowy – jak ocenić efekt interwencji bez randomizacji?

Przerwany szereg czasowy porównuje poziom i trend wyniku przed interwencją i po niej. Pokazujemy model regresji segmentowej, przykład w R z błędem AR(1), opis do pracy i główne zagrożenia trafności.

Strona główna / Słownik / Przerwany szereg czasowy
W skrócie: Przerwany szereg czasowy to schemat quasi-eksperymentalny, w którym wiele pomiarów przed interwencją i po niej pozwala ocenić zmianę poziomu i zmianę trendu. Model określ z góry, uwzględnij autokorelację i sezonowość, a wynik porównuj z trendem przedłużonym z okresu przed interwencją.

Co to jest przerwany szereg czasowy?

Przerwany szereg czasowy (ang. interrupted time series, ITS) to schemat quasi-eksperymentalny, w którym wynik mierzy się wiele razy przed interwencją i po niej. Wagner i in. (2002) nazywają go najsilniejszym schematem quasi-eksperymentalnym do oceny podłużnych efektów interwencji. W odróżnieniu od schematu pretest–posttest trend sprzed interwencji pokazuje, jak wynik zmieniałby się bez niej. Kontopantelis i in. (2015) omawiają ITS jako podejście na sytuacje bez randomizacji.

Model regresji segmentowej

Yt = β0 + β1·czas + β2·po + β3·czas_po + et

β1 to trend przed interwencją, β2 – natychmiastowa zmiana poziomu, a β3 – zmiana nachylenia. Zmienna „po” ma wartość 0 przed interwencją i 1 po niej, a „czas_po” liczy okresy od interwencji. Lopez Bernal i in. (2016) zalecają, by przewidywany kształt efektu określić przed analizą. Wymieniają też główne problemy: autokorelację reszt, sezonowość i zmienne zakłócające zmieniające się w czasie.

Przykład

Uczelnia wprowadziła program samopomocy online i przez 24 miesiące przed nim oraz 24 miesiące po nim liczyła konsultacje kryzysowe na 10 000 studentów (dane symulowane). Średnie okresów (41.9 i 38.0) różniły się niewiele, ale model z błędem AR(1) (φ = .23) pokazał więcej. Przed programem liczba konsultacji rosła o 0.35 na miesiąc, 95% CI [0.18, 0.52]. Po wprowadzeniu programu poziom spadł o 5.88, 95% CI [−9.12, −2.63], p = .001, a nachylenie zmieniło się o −0.52 na miesiąc, 95% CI [−0.76, −0.27], p < .001. Po interwencji trend wynosił −0.17 na miesiąc. W 48. miesiącu model przewiduje 35.9 konsultacji, a trend przedłużony z okresu przed programem – 54.2.

Jak opisać w pracy

Efekt programu oceniono w schemacie przerwanego szeregu czasowego (24 miesiące przed i 24 po wprowadzeniu) za pomocą regresji segmentowej z błędem AR(1). Przed programem liczba konsultacji rosła o 0.35 na miesiąc, 95% CI [0.18, 0.52]. Po wprowadzeniu programu poziom obniżył się o 5.88, 95% CI [−9.12, −2.63], p = .001, a nachylenie zmieniło się o −0.52 na miesiąc, 95% CI [−0.76, −0.27], p < .001.

Na co uważać

  • Historia to główne zagrożenie. Inne zdarzenie w tym samym miesiącu podważa trafność wewnętrzną. Pomaga szereg porównawczy bez interwencji.
  • Nie porównuj samych średnich. Przy rosnącym trendzie zwykłe porównanie okresów zaniża efekt, jak w przykładzie.
  • Ustal moment interwencji z góry. Szukanie punktu przerwania w danych to ukryte porównania wielokrotne.

Schemat z grupą porównawczą omawia wpis Quasi-eksperyment i różnica w różnicach.

Przykład reprodukowalny

Przerwany szereg czasowy w R

Kod symuluje 48 miesięcy z interwencją po 24. miesiącu, dopasowuje regresję segmentową metodą najmniejszych kwadratów i z błędem AR(1) (GLS) oraz porównuje przewidywania z trendem przedłużonym z okresu przed interwencją.

Zmiana poziomu i nachylenia

Dane wejściowe: 48 miesięcznych wskaźników konsultacji kryzysowych na 1000 studentów, zmienne czas, po i czas_po (dane symulowane, set.seed(2455)).

Co odczytać: średnie okresów, współczynniki MNK i autokorelację ich reszt, współczynniki GLS z 95% CI i φ, nachylenie po interwencji oraz przewidywanie dla 48. miesiąca z interwencją i bez niej.

R
library(nlme)
set.seed(2455)
czas <- 1:48                                   # 24 miesiące przed i 24 po wprowadzeniu programu
po <- as.integer(czas > 24)                    # 0 = przed, 1 = po interwencji
czas_po <- pmax(0, czas - 24)                  # miesiące od interwencji
blad <- as.numeric(arima.sim(list(ar = 0.4), n = 48, sd = 2.5))
konsultacje <- round(40 + 0.25 * czas - 6 * po - 0.30 * czas_po + blad, 1)  # na 10 000 studentów
dane <- data.frame(konsultacje, czas, po, czas_po)
round(c(M_przed = mean(konsultacje[po == 0]), M_po = mean(konsultacje[po == 1])), 1)
m_ols <- lm(konsultacje ~ czas + po + czas_po, data = dane)
round(summary(m_ols)$coefficients, 3)
round(acf(residuals(m_ols), lag.max = 1, plot = FALSE)$acf[2], 2)    # autokorelacja reszt
m_ar <- gls(konsultacje ~ czas + po + czas_po, data = dane, correlation = corAR1(form = ~ czas))
round(cbind(summary(m_ar)$tTable[, c(1, 2, 4)], confint(m_ar)), 3)
round(coef(m_ar$modelStruct$corStruct, unconstrained = FALSE), 2) # phi
round(sum(coef(m_ar)[c("czas", "czas_po")]), 3)                   # nachylenie po interwencji
b <- coef(m_ar)                                                   # miesiąc 48: model a scenariusz bez interwencji
round(c(z_interwencja = sum(b * c(1, 48, 1, 24)), bez_interwencji = sum(b * c(1, 48, 0, 0)),
        roznica = sum(b * c(0, 0, 1, 24))), 1)
Wynik w R
M_przed    M_po 
   41.9    38.0 
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   37.791      0.990  38.182        0
czas           0.331      0.069   4.774        0
po            -5.603      1.358  -4.126        0
czas_po       -0.504      0.098  -5.149        0
[1] 0.13
             Value Std.Error p-value  2.5 % 97.5 %
(Intercept) 37.623     1.248   0.000 35.178 40.068
czas         0.346     0.087   0.000  0.176  0.515
po          -5.877     1.655   0.001 -9.121 -2.632
czas_po     -0.518     0.125   0.000 -0.763 -0.273
 Phi 
0.23 
[1] -0.172
  z_interwencja bez_interwencji         roznica 
           35.9            54.2           -18.3

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet nlme).

  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. nlme (wersja 3.1.168): Pinheiro, J., Bates, D., & R Core Team. (2025). nlme: Linear and nonlinear mixed effects models [R package]. https://doi.org/10.32614/CRAN.package.nlme

Najczęstsze pytania

Ile pomiarów potrzeba w przerwanym szeregu czasowym?

Nie ma jednej granicy. Trend przed interwencją musi być wiarygodny, więc potrzebujesz wielu punktów w obu okresach, a przy danych miesięcznych z sezonowością – kilku lat.

Czym przerwany szereg czasowy różni się od schematu pretest–posttest?

Pretest–posttest ma jeden pomiar przed i jeden po, więc nie odróżni efektu od trendu ani regresji do średniej. W przerwanym szeregu wiele pomiarów przed interwencją pokazuje, jak wynik zmieniał się bez niej.

Co to jest zmiana poziomu i zmiana nachylenia?

Zmiana poziomu to natychmiastowy skok wyniku tuż po interwencji. Zmiana nachylenia to różnica w tempie zmian po interwencji w porównaniu z trendem sprzed niej.

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. Kontopantelis, E., Doran, T., Springate, D. A., Buchan, I., & Reeves, D. (2015). Regression based quasi-experimental approach when randomisation is not an option: Interrupted time series analysis. BMJ, 350, Article h2750. https://doi.org/10.1136/bmj.h2750 ● Otwarty dostęp
  2. Lopez Bernal, J., Cummins, S., & Gasparrini, A. (2016). Interrupted time series regression for the evaluation of public health interventions: A tutorial. International Journal of Epidemiology, 46(1), 348–355. https://doi.org/10.1093/ije/dyw098 ● Otwarty dostęp
  3. Wagner, A. K., Soumerai, S. B., Zhang, F., & Ross-Degnan, D. (2002). Segmented regression analysis of interrupted time series studies in medication use research. Journal of Clinical Pharmacy and Therapeutics, 27(4), 299–309. https://doi.org/10.1046/j.1365-2710.2002.00430.x

Cytowania BibTeX

@article{kontopantelis2015regression, author={Kontopantelis, E. and Doran, T. and Springate, D. A. and Buchan, I. and Reeves, D.}, title={{Regression based quasi-experimental approach when randomisation is not an option: Interrupted time series analysis}}, journal={BMJ}, year={2015}, volume={350}, eid={h2750}, doi={10.1136/bmj.h2750}}
@article{lopezbernal2016interrupted, author={Lopez Bernal, James and Cummins, Steven and Gasparrini, Antonio}, title={{Interrupted time series regression for the evaluation of public health interventions: A tutorial}}, journal={International Journal of Epidemiology}, year={2016}, volume={46}, number={1}, pages={348--355}, doi={10.1093/ije/dyw098}}
@article{wagner2002segmented, author={Wagner, A. K. and Soumerai, S. B. and Zhang, F. and Ross-Degnan, D.}, title={{Segmented regression analysis of interrupted time series studies in medication use research}}, journal={Journal of Clinical Pharmacy and Therapeutics}, year={2002}, volume={27}, number={4}, pages={299--309}, doi={10.1046/j.1365-2710.2002.00430.x}}
R