Co to jest ARIMA?
ARIMA (ang. autoregressive integrated moving average) to model, który opisuje szereg czasowy przez jego własną przeszłość. Zapis ARIMA(p, d, q) ma trzy części:
- AR(p) – bieżąca wartość zależy od p wcześniejszych wartości;
- I(d) – szereg różnicuje się d razy, aby był stacjonarny;
- MA(q) – bieżąca wartość zależy od q wcześniejszych błędów (wstrząsów).
W psychologii ARIMA służy głównie do opisu dynamiki i prognozy, np. liczby zgłoszeń do poradni.
Jak dobrać model?
- Obejrzyj wykres i ustal d: ile różnicowań potrzeba do stacjonarności.
- Na podstawie ACF i PACF zróżnicowanego szeregu wskaż wstępne p i q.
- Porównaj kilka modeli kryterium informacyjnym (w R domyślnie AICc). Krokowy algorytm doboru opisany przez Hyndmana i Khandakar (2008), funkcja
auto.arima(), robi to automatycznie, także dla danych z sezonowością. - Sprawdź reszty. Box i Pierce (1970) pokazali, że w dobrze dobranym modelu reszty powinny być szumem białym, a test Ljunga–Boxa (Ljung i Box, 1978) sprawdza to łącznie dla wielu opóźnień.
Przykład
Tygodniowa liczba wizyt w internetowym serwisie wsparcia psychologicznego wzrosła w ciągu 120 tygodni z 300 do 357 (dane symulowane). Testy stacjonarności wskazały jedno różnicowanie. Według AICc najlepszy był model ARIMA(1,1,0): φ1 = 0.43 (SE = 0.08), σ² = 32.99, AICc = 757.07. Zmiana z tygodnia na tydzień zależała więc od zmiany poprzedniej. Reszty nie odbiegały od szumu białego, Q(9) = 9.94, p = .355 (10 opóźnień minus 1 parametr). Prognoza na następny tydzień to 360.9 wizyty, 95% PI [349.6, 372.1], a na czwarty tydzień 363.5, 95% PI [330.7, 396.3].
Jak opisać w pracy
Na co uważać
- Automatyczny wybór to nie koniec. Zawsze obejrzyj reszty i sprawdź, czy model ma sens merytoryczny.
- Przedział prognozy szybko się poszerza. W przykładzie po czterech tygodniach był prawie trzy razy szerszy niż po jednym.
- Zmiana po interwencji to inny problem. Do oceny efektu programu użyj modelu przerwanego szeregu czasowego.
Pełną analizę z sezonowym modelem ARIMA pokazuje wpis Szeregi czasowe w praktyce.
ARIMA w R
Kod symuluje szereg tygodniowy, sprawdza liczbę potrzebnych różnicowań, dobiera model funkcją auto.arima(), testuje reszty i liczy prognozę na cztery tygodnie.
Dobór modelu, diagnostyka reszt i prognoza
R
suppressPackageStartupMessages(library(forecast))
set.seed(2430)
y <- 300 + arima.sim(list(order = c(1, 1, 0), ar = 0.5), n = 119, sd = 6) # 120 tygodni
wizyty <- ts(round(y), frequency = 1) # tygodniowa liczba wizyt w serwisie wsparcia psychologicznego
c(pierwszy = wizyty[1], ostatni = wizyty[120]) # pierwszy i ostatni tydzień
ndiffs(wizyty) # ile różnicowań sugerują testy stacjonarności
m <- auto.arima(wizyty, seasonal = FALSE) # wybór p, d, q według AICc
m
Box.test(residuals(m), lag = 10, type = "Ljung-Box", fitdf = 1) # reszty: szum biały?
p <- forecast(m, h = 4, level = 95) # prognoza na 4 tygodnie
round(data.frame(prognoza = p$mean, dolna = p$lower[, 1], gorna = p$upper[, 1]), 1)Wynik w R
pierwszy ostatni
300 357
[1] 1
Series: wizyty
ARIMA(1,1,0)
Coefficients:
ar1
0.4286
s.e. 0.0839
sigma^2 = 32.99: log likelihood = -376.48
AIC=756.97 AICc=757.07 BIC=762.53
Box-Ljung test
data: residuals(m)
X-squared = 9.9406, df = 9, p-value = 0.3553
prognoza dolna gorna
1 360.9 349.6 372.1
2 362.5 342.9 382.1
3 363.2 336.5 390.0
4 363.5 330.7 396.3Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet forecast).
- 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/
- forecast (wersja 9.0.2): Hyndman, R., Athanasopoulos, G., Bergmeir, C., Caceres, G., Chhay, L., O’Hara-Wild, M., Petropoulos, F., Razbash, S., Wang, E., & Yasmeen, F. (2026). forecast: Forecasting functions for time series and linear models (R package version 9.0.2) [Computer software]. https://doi.org/10.32614/CRAN.package.forecast
Najczęstsze pytania
Co oznaczają liczby w zapisie ARIMA(1,1,0)?
Pierwsza liczba to rząd autoregresji (1 wcześniejsza wartość), druga – liczba różnicowań (1), trzecia – rząd średniej ruchomej (0, czyli bez składnika MA).
Ile pomiarów potrzeba do modelu ARIMA?
Nie ma jednej granicy. Przy kilkudziesięciu pomiarach oszacowania autokorelacji są niepewne, a szeregi z sezonowością wymagają kilku pełnych cykli, więc im dłuższy szereg, tym bezpieczniej.
Czym ARIMA różni się od regresji z trendem?
Regresja z trendem wyjaśnia wynik czasem i predyktorami. ARIMA opisuje dynamikę samego szeregu i służy głównie do prognozy. Można je łączyć, dodając predyktory do modelu z błędem ARIMA.
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ówBibliografia i dalsza literatura naukowa (APA 7)
- Box, G. E. P., & Pierce, D. A. (1970). Distribution of residual autocorrelations in autoregressive-integrated moving average time series models. Journal of the American Statistical Association, 65(332), 1509–1526. https://doi.org/10.1080/01621459.1970.10481180
- Hyndman, R. J., & Khandakar, Y. (2008). Automatic time series forecasting: The forecast package for R. Journal of Statistical Software, 27(3). https://doi.org/10.18637/jss.v027.i03 ● Otwarty dostęp
- Ljung, G. M., & Box, G. E. P. (1978). On a measure of lack of fit in time series models. Biometrika, 65(2), 297–303. https://doi.org/10.1093/biomet/65.2.297
Cytowania BibTeX
@article{box1970distribution, author={Box, George E. P. and Pierce, David A.}, title={{Distribution of residual autocorrelations in autoregressive-integrated moving average time series models}}, journal={Journal of the American Statistical Association}, year={1970}, volume={65}, number={332}, pages={1509--1526}, doi={10.1080/01621459.1970.10481180}}@article{hyndman2008automatic, author={Hyndman, Rob J. and Khandakar, Yeasmin}, title={{Automatic time series forecasting: The forecast package for R}}, journal={Journal of Statistical Software}, year={2008}, volume={27}, number={3}, doi={10.18637/jss.v027.i03}}@article{ljung1978measure, author={Ljung, Greta M. and Box, George E. P.}, title={{On a measure of lack of fit in time series models}}, journal={Biometrika}, year={1978}, volume={65}, number={2}, pages={297--303}, doi={10.1093/biomet/65.2.297}}