Słownik metodologiczny · Modele regresji

Estymator M – jak dopasować regresję, której nie przeciągają obserwacje odstające?

Estymator M w regresji odpornej obniża wagę obserwacji z dużymi resztami, zamiast je usuwać. Pokazujemy funkcje Hubera i Tukeya, różnicę wobec HC3 i MM, przykład w R oraz opis do pracy.

Strona główna / Słownik / Estymator M
W skrócie: Estymator M to sposób dopasowania regresji, w którym duże reszty liczą się słabiej niż w metodzie najmniejszych kwadratów. Obserwacje odstające w zmiennej zależnej dostają mniejsze wagi (Huber) lub wagę 0 (bisquare Tukeya), więc nie przeciągają linii. Na punkty o dużej dźwigni lepszy jest estymator MM.

Co to jest estymator M?

Estymator M (ang. M-estimator) w regresji odpornej minimalizuje nie sumę kwadratów reszt, lecz sumę funkcji ρ, która dla dużych reszt rośnie wolniej niż kwadrat. Dzięki temu pojedyncza obserwacja odstająca nie przeciąga linii regresji. Pomysł pochodzi od Hubera (1964), który szukał estymatorów położenia pośrednich między średnią a medianą, odpornych na domieszkę grubych błędów. Zwykła regresja liniowa (OLS) jest szczególnym przypadkiem z ρ(e) = e².

Funkcje Hubera i Tukeya, czyli wagi

W praktyce estymator M liczy się iteracyjnie ważoną metodą najmniejszych kwadratów: obserwacje z dużą resztą standaryzowaną dostają wagę mniejszą niż 1. Funkcja Hubera (stała 1.345) zostawia małym resztom wagę 1, a dużym ją obniża, ale nigdy do zera. Funkcja bisquare Tukeya (stała 4.685) jest opadająca: skrajne reszty dostają wagę 0. Obie stałe dają około 95% efektywności OLS przy normalnych błędach. Słabość estymatora M to punkty o dużej dźwigni: odstające w predyktorze potrafią go zepsuć. Estymator MM (Yohai, 1987) łączy punkt załamania 0.5 z wysoką efektywnością, a przegląd metod podają Yu i Yao (2017).

Przykład

W symulowanych danych (n = 60) wynik testu rósł z godzinami nauki. U pięciu osób z najdłuższą nauką wpisano wynik o 35 punktów za niski. Bez tych wierszy nachylenie wynosiło 2.30 pkt na godzinę. OLS na pełnych danych dał 0.87 (SE = 0.43), estymator Hubera 1.66 (SE = 0.32), a bisquare 2.35 (SE = 0.26), tyle samo co MM. Wagi Hubera dla błędnych wierszy wyniosły 0.24–0.38, a bisquare – 0.

Jak opisać w pracy

Ze względu na obserwacje odstające w zmiennej zależnej zastosowano regresję odporną z estymatorem M (funkcja bisquare Tukeya, MASS::rlm). Każda godzina nauki wiązała się z wynikiem wyższym o 2.35 pkt (SE = 0.26); w OLS nachylenie wyniosło 0.87 (SE = 0.43). Pięć obserwacji otrzymało wagę 0.

Na co uważać

  • To nie HC3. Odporne błędy standardowe poprawiają SE przy heteroskedastyczności, ale współczynniki zostają z OLS; estymator M zmienia same współczynniki.
  • Wagi to diagnoza. Obejrzyj obserwacje z wagą bliską 0 i porównaj je z odległością Cooka.
  • Zła specyfikacja. Gdy „odstające” tworzą wzór, np. krzywiznę, problemem jest model, nie dane.

Pełne porównanie metod pokazuje wpis Regresja odporna – estymatory M i MM, a decyzję o usuwaniu wierszy omawia Czy można usunąć obserwacje odstające?.

Przykład reprodukowalny

Estymator M w R

Kod symuluje dane z pięcioma błędnie wpisanymi wynikami, porównuje OLS z estymatorami M Hubera i Tukeya (MASS::rlm) oraz estymatorem MM (robustbase::lmrob) i pokazuje wagi obserwacji.

Godziny nauki a wynik testu z błędnymi wierszami

Dane wejściowe: 60 obserwacji symulowanych (set.seed(3742)): godziny nauki i wynik testu; pięciu osobom z najdłuższą nauką obniżono wynik o 35 pkt.

Co odczytać: współczynniki modeli (wiersz bez_bledow to OLS bez pięciu błędnych wierszy), nachylenia z błędami standardowymi, wagi Hubera i bisquare dla błędnych obserwacji oraz najmniejsze wagi pozostałych obserwacji.

R
suppressPackageStartupMessages({library(MASS); library(robustbase)})
set.seed(3742)
n <- 60
godziny <- runif(n, 0, 10)                       # godziny nauki
wynik   <- 50 + 3 * godziny + rnorm(n, sd = 5)   # prawdziwe nachylenie: 3 pkt/h
odst <- order(godziny, decreasing = TRUE)[1:5]  # 5 osób z najdłuższą nauką...
wynik[odst] <- wynik[odst] - 35                  # ...z błędnie wprowadzonym wynikiem (odstające w y)
dane <- data.frame(godziny, wynik)
czyste <- lm(wynik ~ godziny, data = dane[-odst, ])   # punkt odniesienia: bez błędnych wierszy

ols    <- lm(wynik ~ godziny, data = dane)
huber  <- rlm(wynik ~ godziny, data = dane)                     # estymator M Hubera (k = 1.345)
tukey  <- rlm(wynik ~ godziny, data = dane, psi = psi.bisquare)  # bisquare Tukeya (c = 4.685)
mm     <- lmrob(wynik ~ godziny, data = dane)                    # estymator MM
round(rbind(bez_bledow = coef(czyste), OLS = coef(ols), Huber = coef(huber),
            Tukey = coef(tukey), MM = coef(mm)), 2)
round(rbind(OLS = coef(summary(ols))[2, 1:2], Huber = coef(summary(huber))[2, 1:2],
            Tukey = coef(summary(tukey))[2, 1:2]), 3)
round(huber$w[odst], 2)                           # wagi Hubera dla 5 odstających
round(tukey$w[odst], 2)                           # wagi bisquare dla 5 odstających
round(c(huber_min_reszta = min(huber$w[-odst]), tukey_min_reszta = min(tukey$w[-odst]),
        skala_huber = huber$s), 2)
Wynik w R
           (Intercept) godziny
bez_bledow       53.14    2.30
OLS              57.78    0.87
Huber            55.14    1.66
Tukey            52.76    2.35
MM               52.78    2.35
      Estimate Std. Error
OLS      0.875      0.425
Huber    1.660      0.322
Tukey    2.355      0.262
[1] 0.38 0.31 0.24 0.35 0.29
[1] 0 0 0 0 0
huber_min_reszta tukey_min_reszta      skala_huber
            0.60             0.64             5.90

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiety MASS i robustbase). 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. MASS (wersja 7.3-65): Venables, W. N., & Ripley, B. D. (2002). Modern applied statistics with S (4th ed.). Springer. https://doi.org/10.1007/978-0-387-21706-2
  3. robustbase (wersja 0.99-7): Maechler, M., Rousseeuw, P., Croux, C., Todorov, V., Ruckstuhl, A., Salibian-Barrera, M., Verbeke, T., Koller, M., Conceicao, E. L., & Anna di Palma, M. (2026). robustbase: Basic robust statistics [R package]. http://robustbase.r-forge.r-project.org/

Najczęstsze pytania

Którą funkcję wybrać: Hubera czy bisquare Tukeya?

Huber jest bezpieczniejszy obliczeniowo i ma jedno rozwiązanie, ale dużym resztom zostawia część wagi. Bisquare całkowicie odrzuca skrajne reszty, lecz wymaga dobrego punktu startowego – dlatego w estymatorze MM startuje z odpornego oszacowania (Yohai, 1987).

Czy estymator M chroni przed punktami o dużej dźwigni?

Nie w pełni. Waży obserwacje według reszt, a punkt odstający w predyktorze może przyciągnąć linię tak, że jego reszta jest mała. Na takie punkty używa się estymatora MM (robustbase::lmrob) i diagnostyki dźwigni.

Jak policzyć estymator M w R?

MASS::rlm(y ~ x, data = dane) daje estymator Hubera, a z psi = psi.bisquare – Tukeya. Wagi odczytasz z model$w, a skalę reszt z model$s. Estymator MM liczy robustbase::lmrob().

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. Huber, P. J. (1964). Robust estimation of a location parameter. The Annals of Mathematical Statistics, 35(1), 73–101. https://doi.org/10.1214/aoms/1177703732 ● Otwarty dostęp
  2. Yohai, V. J. (1987). High breakdown-point and high efficiency robust estimates for regression. The Annals of Statistics, 15(2), 642–656. https://doi.org/10.1214/aos/1176350366 ● Otwarty dostęp
  3. Yu, C., & Yao, W. (2017). Robust linear regression: A review and comparison. Communications in Statistics – Simulation and Computation, 46(8), 6261–6282. https://doi.org/10.1080/03610918.2016.1202271 ● Otwarty dostęp: pełny tekst

Cytowania BibTeX

@article{huber1964robust, author={Huber, Peter J.}, title={{Robust estimation of a location parameter}}, journal={The Annals of Mathematical Statistics}, year={1964}, volume={35}, number={1}, pages={73--101}, doi={10.1214/aoms/1177703732}}
@article{yohai1987high, author={Yohai, Victor J.}, title={{High breakdown-point and high efficiency robust estimates for regression}}, journal={The Annals of Statistics}, year={1987}, volume={15}, number={2}, pages={642--656}, doi={10.1214/aos/1176350366}}
@article{yu2017robust, author={Yu, Chun and Yao, Weixin}, title={{Robust linear regression: A review and comparison}}, journal={Communications in Statistics – Simulation and Computation}, year={2017}, volume={46}, number={8}, pages={6261--6282}, doi={10.1080/03610918.2016.1202271}}
R