Słownik metodologiczny · Regresja

Odporne błędy standardowe (HC3) – kiedy je stosować i czym HC3 różni się od HC0?

Gdy rozrzut reszt nie jest stały, klasyczne błędy standardowe regresji przestają być wiarygodne. Wyjaśniamy estymator kanapkowy, różnicę między HC0 a HC3 i rolę dźwigni obserwacji na przykładzie policzonym w pakiecie sandwich.

Strona główna / Słownik / Odporne błędy standardowe (HC3)
W skrócie: Odporne błędy standardowe (HC) pozwalają poprawnie testować współczynniki regresji, gdy wariancja reszt nie jest stała. Nie zmieniają b, tylko błędy standardowe, przedziały ufności i p; w próbach do 250 osób wybieraj wariant HC3 – i to przed analizą.

Co to są odporne błędy standardowe?

Odporne błędy standardowe (ang. heteroskedasticity-consistent standard errors, HC; nazywane też błędami White’a lub estymatorem kanapkowym, sandwich) to błędy standardowe współczynników regresji liczone bez założenia homoskedastyczności, czyli stałej wariancji reszt. Stosuje się je, gdy rozrzut wyników zmienia się wraz z predyktorem (heterogeniczność wariancji), co w psychologii zdarza się np. przy czasach reakcji czy liczbie objawów. Współczynniki b się nie zmieniają; zmieniają się błędy standardowe, przedziały ufności i wartości p.

HC0 a HC3

Var(b) = (X′X)−1 X′ΩX (X′X)−1
HC0: ωi = ei² · HC3: ωi = ei² / (1 − hi)²

X to macierz predyktorów, Ω – macierz diagonalna z wagami ωi, ei – reszta, a hi – dźwignia obserwacji i. HC0 to pierwotny estymator White’a (1980), zgodny także przy heteroskedastyczności. HC3 powiększa reszty obserwacji o dużej dźwigni, które prosta MNK dopasowuje „za dobrze”. Long i Ervin (2000) pokazali w symulacjach, że HC0 często prowadził do błędnych wniosków przy N ≤ 250, a HC3 działał dobrze nawet przy 25 obserwacjach; przy N ≤ 250 zalecają HC3.

Przykład

W próbie 30 pacjentów (dane symulowane) nachylenie regresji spadku objawów na liczbę sesji psychoterapii (od 7 do 38) wyniosło b = 0.265 punktu na sesję, a rozrzut wyników rósł z liczbą sesji, BP(1) = 6.81, p = .009. Klasyczny błąd standardowy nachylenia wyniósł 0.105 (p = .017), HC0 – 0.121 (p = .037), a HC3 – 0.142 (p = .072). Różnica między HC0 a HC3 bierze się z pacjentów z wieloma sesjami: największa dźwignia (h = .24, 38 sesji) zwiększa w HC3 kwadrat reszty 1.74 raza. Wniosek o istotności zależy więc od estymatora.

Jak zapisać w pracy

Błędy standardowe oszacowano estymatorem odpornym na heteroskedastyczność HC3; liczba sesji nie wiązała się istotnie ze spadkiem objawów, b = 0.27, SE = 0.14, 95% CI [−0.03, 0.56], t(28) = 1.87, p = .072.

Na co uważać

  • Wybór estymatora po obejrzeniu p. Zdecyduj o nim w planie analizy. Long i Ervin (2000) radzą nie uzależniać użycia odpornych błędów od testu wstępnego, a Hayes i Cai (2007) – stosować je w regresji MNK rutynowo (udostępniają też makra do SPSS i SAS).
  • HC3 nie naprawia modelu. Jeśli lejek na wykresie reszt wynika z pominiętej nieliniowości lub interakcji, popraw model; diagnostykę pokazujemy w poradniku regresja wieloraka krok po kroku.
  • Zależne obserwacje. HC0–HC3 zakładają niezależność obserwacji; dane z klas czy pomiary powtarzane wymagają błędów klastrowych albo modelu wielopoziomowego.
  • Brak nazwy wariantu. Napisz, którego estymatora użyto, bo programy mają różne ustawienia domyślne; w R sandwich::vcovHC() domyślnie liczy HC3 (przykład modelu ekonometrycznego z HC3 w poradniku statystyka w pracy z zarządzania i ekonomii).
Przykład reprodukowalny

Przykład w R

Kod porównuje klasyczny błąd standardowy nachylenia z estymatorami HC0 i HC3, liczy 95% przedział ufności z HC3, a na końcu odtwarza HC3 „ręcznie” ze wzoru kanapkowego, by pokazać rolę dźwigni.

Błędy standardowe HC0 i HC3 w pakiecie sandwich

Dane wejściowe: liczba sesji psychoterapii i spadek objawów 30 pacjentów (dane symulowane, set.seed(60)).

Co odczytać: wiersze Std. Error i Pr(>|t|) w kolumnach klasyczne, HC0 i HC3, przedział ufności z HC3 i największą dźwignię z mnożnikiem 1/(1 − h)².

R
suppressPackageStartupMessages({ library(sandwich); library(lmtest) })
# Dane symulowane: 30 pacjentów; liczba sesji psychoterapii i spadek objawów (punkty)
set.seed(60)
sesje <- round(6 + rgamma(30, shape = 1.5, rate = 0.12))
poprawa <- round(3 + 0.30 * sesje + rnorm(30, 0, 0.5 + 0.2 * sesje))   # rozrzut rośnie z liczbą sesji
range(sesje)                                               # od 7 do 38 sesji
m <- lm(poprawa ~ sesje)
bptest(m)                                                  # test Breuscha–Pagana

# Nachylenie z trzema estymatorami macierzy kowariancji
typy <- c(klasyczne = "const", HC0 = "HC0", HC3 = "HC3")
round(sapply(typy, function(t) coeftest(m, vcov. = vcovHC(m, type = t))["sesje", ]), 3)
round(coefci(m, vcov. = vcovHC(m, type = "HC3"))["sesje", ], 2)   # 95% CI z HC3

# HC3 krok po kroku: kwadrat reszty dzielony przez (1 − h)², h – dźwignia obserwacji
X <- model.matrix(m); h <- hatvalues(m); A <- solve(crossprod(X))
round(sqrt(diag(A %*% crossprod(X * resid(m) / (1 - h)) %*% A)), 3)
round(c(h_max = max(h), sesje = sesje[which.max(h)], mnoznik = 1 / (1 - max(h))^2), 2)
Wynik w R
[1]  7 38

	studentized Breusch-Pagan test

data:  m
BP = 6.8129, df = 1, p-value = 0.00905

           klasyczne   HC0   HC3
Estimate       0.265 0.265 0.265
Std. Error     0.105 0.121 0.142
t value        2.536 2.194 1.872
Pr(>|t|)       0.017 0.037 0.072
 2.5 % 97.5 % 
 -0.03   0.56 
(Intercept)       sesje 
      1.867       0.142 
  h_max   sesje mnoznik 
   0.24   38.00    1.74 

Bibliografia oprogramowania

Wyniki na tej stronie pochodzą z uruchomienia pokazanego kodu w R 4.5.3. 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/
  2. 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
  3. 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/

Najczęstsze pytania

Czym różni się HC3 od HC0?

HC0 (estymator White’a) używa kwadratów reszt, a HC3 dzieli je przez (1 − h)², powiększając reszty obserwacji o dużej dźwigni. Dlatego HC3 lepiej działa w małych próbach (Long i Ervin, 2000).

Jak policzyć błędy standardowe HC3 w R?

Dopasuj model lm() i wpisz lmtest::coeftest(model, vcov. = sandwich::vcovHC(model, type = "HC3")). Ten sam argument vcov. przyjmuje funkcja lmtest::coefci(), która liczy przedziały ufności.

Czy odporne błędy standardowe zmieniają współczynniki regresji?

Nie. Współczynniki b są takie same jak w zwykłej MNK; zmieniają się tylko błędy standardowe, a więc statystyki t, wartości p i przedziały ufności.

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. Hayes, A. F., & Cai, L. (2007). Using heteroskedasticity-consistent standard error estimators in OLS regression: An introduction and software implementation. Behavior Research Methods, 39(4), 709–722. https://doi.org/10.3758/bf03192961 ● Otwarty dostęp
  2. Long, J. S., & Ervin, L. H. (2000). Using heteroscedasticity consistent standard errors in the linear regression model. The American Statistician, 54(3), 217–224. https://doi.org/10.1080/00031305.2000.10474549
  3. White, H. (1980). A heteroskedasticity-consistent covariance matrix estimator and a direct test for heteroskedasticity. Econometrica, 48(4), 817–838. https://doi.org/10.2307/1912934

Cytowania BibTeX

@article{hayes2007using, author={Hayes, Andrew F. and Cai, Li}, title={{Using heteroskedasticity-consistent standard error estimators in OLS regression: An introduction and software implementation}}, journal={Behavior Research Methods}, year={2007}, volume={39}, number={4}, pages={709--722}, doi={10.3758/bf03192961}}
@article{long2000using, author={Long, J. Scott and Ervin, Laurie H.}, title={{Using heteroscedasticity consistent standard errors in the linear regression model}}, journal={The American Statistician}, year={2000}, volume={54}, number={3}, pages={217--224}, doi={10.1080/00031305.2000.10474549}}
@article{white1980heteroskedasticity, author={White, Halbert}, title={{A heteroskedasticity-consistent covariance matrix estimator and a direct test for heteroskedasticity}}, journal={Econometrica}, year={1980}, volume={48}, number={4}, pages={817--838}, doi={10.2307/1912934}}
R