Słownik metodologiczny · Regresja

Autokorelacja reszt w regresji – co psuje i jak ją naprawić?

Gdy błędy regresji kolejnych obserwacji są skorelowane, współczynniki zostają, ale błędy standardowe i wartości p przestają być wiarygodne. Pokazujemy, jak to wykryć, jak poprawić model w R i jak opisać wynik w pracy.

Strona główna / Słownik / Autokorelacja reszt
W skrócie: Autokorelacja reszt oznacza, że błędy regresji kolejnych obserwacji są ze sobą skorelowane. Przy dodatniej autokorelacji zwykłe błędy standardowe są zwykle zaniżone, więc wyników „istotnych” jest za dużo. Wykryj ją wykresem ACF reszt i testem Breuscha–Godfreya, a popraw błędami HAC albo modelem z błędem AR(1).

Co to jest autokorelacja reszt?

Autokorelacja reszt (ang. residual autocorrelation) to korelacja błędów modelu regresji liniowej między obserwacjami sąsiadującymi w czasie. Narusza założenie niezależności błędów. Typowy przypadek to dane dzienniczkowe: jeśli model zaniżył wynik dziś, zaniży go zapewne i jutro. To coś innego niż autokorelacja samej zmiennej: liczy się zależność, której predyktory nie wyjaśniły.

Skutki, wykrywanie i korekty

Współczynniki MNK zwykle pozostają nieobciążone, ale tracą efektywność, a przy dodatniej autokorelacji zwykłe błędy standardowe są zaniżone. Cochrane i Orcutt (1949) pokazali, ile efektywności tracą zwykłe metody, i zaproponowali procedurę jej odzyskania.

  • Wykrywanie: wykres ACF reszt, test Durbina-Watsona dla rzędu 1 i test Breuscha–Godfreya dla wyższych rzędów. Godfrey (1978) wyprowadził ten test także dla modeli z opóźnioną zmienną zależną.
  • Korekta wnioskowania: błędy standardowe HAC Newey–West (Newey i West, 1987), odporne na heteroskedastyczność i autokorelację. Podobnie jak błędy HC3 poprawiają tylko błędy standardowe, ale uwzględniają też autokorelację.
  • Model zależności: regresja uogólnioną metodą najmniejszych kwadratów (GLS) z błędem AR(1).

Przykład

Osoba przez 90 dni notowała godziny snu (M = 6.65) i zmęczenie następnego dnia na skali 0–10 (M = 7.16; dane symulowane). Zwykła regresja dała b = −0.67, SE = 0.12. Reszty były skorelowane (.55 przy opóźnieniu 1, .23 przy 2), test Breuscha–Godfreya LM(2) = 28.21, p < .001. Błąd HAC wyniósł 0.18, czyli był półtora raza większy. Model GLS z AR(1) (φ = .58) dał b = −0.56, SE = 0.12, 95% CI [−0.79, −0.33], p < .001. W symulacji 2000 szeregów bez żadnego związku zwykła regresja dawała p < .05 w 17.1% prób, a test z błędem HAC w 9.4%.

Jak opisać w pracy

Reszty regresji zmęczenia na długość snu były autokorelowane (r = .55 przy opóźnieniu 1 dnia; test Breuscha–Godfreya LM(2) = 28.21, p < .001). Dlatego model oszacowano metodą GLS z błędem AR(1) (φ = .58). Dłuższy sen wiązał się z mniejszym zmęczeniem następnego dnia, b = −0.56, SE = 0.12, 95% CI [−0.79, −0.33], p < .001.

Na co uważać

  • HAC nie naprawia wszystkiego. W symulacji odsetek fałszywych alarmów spadł, ale nadal przekraczał nominalne 5%.
  • Opóźniona zmienna zależna zmienia sytuację. Gdy jest predyktorem, autokorelacja błędów obciąża także współczynniki.
  • Wiele osób to inny problem. Dane dzienniczkowe od wielu osób analizuj modelem wielopoziomowym z autokorelacją reszt.

Pozostałą diagnostykę modelu omawia wpis Diagnostyka regresji w R.

Przykład reprodukowalny

Autokorelacja reszt w R

Kod symuluje 90 dni dzienniczka, dopasowuje zwykłą regresję, sprawdza autokorelację reszt testem Breuscha–Godfreya, liczy błąd standardowy HAC i model GLS z AR(1), a na końcu w krótkiej symulacji porównuje odsetek fałszywych wyników istotnych.

Wykrywanie i korekta autokorelacji reszt

Dane wejściowe: 90 dni: godziny snu i zmęczenie następnego dnia (0–10), z autokorelowanym predyktorem i błędem; w symulacji 2000 par niezależnych szeregów AR(0.6) po 90 punktów (dane symulowane, set.seed(2469)).

Co odczytać: b i SE z MNK, ACF reszt, statystykę LM, SE HAC, wynik GLS z 95% CI i φ oraz odsetek p < .05 przy braku związku dla obu metod.

R
suppressPackageStartupMessages({library(lmtest); library(sandwich); library(nlme)})
set.seed(2469)
n <- 90                                                       # 90 dni dzienniczka jednej osoby
sen <- round(7 + as.numeric(arima.sim(list(ar = 0.5), n = n, sd = 0.8)), 1)   # godziny snu
zmeczenie <- round(pmin(11 - 0.6 * sen + as.numeric(arima.sim(list(ar = 0.6), n = n, sd = 0.9)), 10), 1)  # 0–10
round(c(M_sen = mean(sen), M_zmeczenie = mean(zmeczenie)), 2)
m <- lm(zmeczenie ~ sen)
round(coeftest(m)[2, ], 3)                                    # MNK: zwykły błąd standardowy
round(acf(residuals(m), lag.max = 2, plot = FALSE)$acf[2:3], 2)
bgtest(m, order = 2)                                          # test Breuscha–Godfreya, rząd 2
round(coeftest(m, vcov = NeweyWest(m))[2, ], 3)               # błąd standardowy HAC (Newey–West)
g <- gls(zmeczenie ~ sen, correlation = corAR1(form = ~ 1))
round(c(summary(g)$tTable[2, ], confint(g)[2, ]), 3)
round(coef(g$modelStruct$corStruct, unconstrained = FALSE), 2)
# Mini-symulacja: brak związku (b = 0), predyktor i błąd z AR(0.6); odsetek p < .05 w 2000 powtórzeniach
sym <- replicate(2000, {
  x <- as.numeric(arima.sim(list(ar = 0.6), n = 90)); y <- as.numeric(arima.sim(list(ar = 0.6), n = 90))
  mm <- lm(y ~ x)
  c(MNK = coeftest(mm)[2, 4] < .05, HAC = coeftest(mm, vcov = NeweyWest(mm))[2, 4] < .05)
})
round(rowMeans(sym), 3)
Wynik w R
      M_sen M_zmeczenie 
       6.65        7.16 
  Estimate Std. Error    t value   Pr(>|t|) 
    -0.674      0.120     -5.597      0.000 
[1] 0.55 0.23

	Breusch-Godfrey test for serial correlation of order up to 2

data:  m
LM test = 28.213, df = 2, p-value = 7.473e-07

  Estimate Std. Error    t value   Pr(>|t|) 
    -0.674      0.182     -3.704      0.000 
    Value Std.Error   t-value   p-value     2.5 %    97.5 % 
   -0.560     0.117    -4.784     0.000    -0.789    -0.331 
 Phi 
0.58 
  MNK   HAC 
0.171 0.094

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiety lmtest, sandwich, 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. lmtest (wersja 0.9.40): Zeileis, A., & Hothorn, T. (2002). Diagnostic checking in regression relationships. R News, 2(3), 7–10. https://CRAN.R-project.org/doc/Rnews/
  3. sandwich (wersja 3.1.1): Zeileis, A., Köll, S., & Graham, N. (2020). Various versatile variances: An object-oriented implementation of clustered covariances in R. Journal of Statistical Software, 95(1), 1–36. https://doi.org/10.18637/jss.v095.i01
  4. 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

Czy autokorelacja reszt obciąża współczynniki regresji?

Zwykle nie: jeśli predyktory nie zawierają opóźnionej zmiennej zależnej, współczynniki MNK pozostają nieobciążone. Problemem są błędy standardowe, wartości p i przedziały ufności, a także utrata efektywności.

Co wybrać: błędy Newey–West czy model GLS z AR(1)?

Błędy HAC (Newey–West) poprawiają tylko wnioskowanie i nie zmieniają współczynników. GLS z AR(1) modeluje zależność wprost i zwykle daje dokładniejsze oszacowania, jeśli struktura AR(1) dobrze opisuje dane.

Czy w danych przekrojowych trzeba sprawdzać autokorelację reszt?

Tylko wtedy, gdy kolejność obserwacji coś znaczy, np. kolejność badania, położenie geograficzne albo grupowanie. Przy zwykłej ankiecie kolejność wierszy w pliku nie ma znaczenia.

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. Cochrane, D., & Orcutt, G. H. (1949). Application of least squares regression to relationships containing auto-correlated error terms. Journal of the American Statistical Association, 44(245), 32–61. https://doi.org/10.1080/01621459.1949.10483290
  2. Godfrey, L. G. (1978). Testing against general autoregressive and moving average error models when the regressors include lagged dependent variables. Econometrica, 46(6), 1293–1301. https://doi.org/10.2307/1913829
  3. Newey, W. K., & West, K. D. (1987). A simple, positive semi-definite, heteroskedasticity and autocorrelation consistent covariance matrix. Econometrica, 55(3), 703–708. https://doi.org/10.2307/1913610

Cytowania BibTeX

@article{cochrane1949application, author={Cochrane, D. and Orcutt, G. H.}, title={{Application of least squares regression to relationships containing auto-correlated error terms}}, journal={Journal of the American Statistical Association}, year={1949}, volume={44}, number={245}, pages={32--61}, doi={10.1080/01621459.1949.10483290}}
@article{godfrey1978testing, author={Godfrey, L. G.}, title={{Testing against general autoregressive and moving average error models when the regressors include lagged dependent variables}}, journal={Econometrica}, year={1978}, volume={46}, number={6}, pages={1293--1301}, doi={10.2307/1913829}}
@article{newey1987simple, author={Newey, Whitney K. and West, Kenneth D.}, title={{A simple, positive semi-definite, heteroskedasticity and autocorrelation consistent covariance matrix}}, journal={Econometrica}, year={1987}, volume={55}, number={3}, pages={703--708}, doi={10.2307/1913610}}
R