Słownik metodologiczny · Modele regresji

DFBETAS – jak sprawdzić, który współczynnik zmienia jedna obserwacja?

DFBETAS pokazuje, o ile zmieniłby się każdy współczynnik regresji po usunięciu jednej obserwacji. Wyjaśniamy próg 2/√n, różnicę wobec odległości Cooka, przykład w R z dfbetas() i opis do pracy.

W skrócie: DFBETAS to zmiana współczynnika regresji po usunięciu jednej obserwacji, wyrażona w jednostkach jego błędu standardowego. Liczy się go osobno dla każdego współczynnika. Orientacyjny próg to |DFBETAS| > 2/√n.

Co to jest DFBETAS?

DFBETAS (ang. difference in betas, scaled) to miara wpływu pojedynczej obserwacji na każdy współczynnik regresji z osobna. Pokazuje, o ile zmieniłby się współczynnik bj po usunięciu obserwacji i, w przybliżeniu w jednostkach jego błędu standardowego. Miarę spopularyzowali Belsley, Kuh i Welsch (1980). Odległość Cooka podsumowuje wpływ na wszystkie współczynniki jedną liczbą. DFBETAS mówi, który współczynnik dana osoba przesuwa i w którą stronę.

Jak go liczyć i oceniać

Dla każdej obserwacji i każdego współczynnika liczy się różnicę bj − bj(i) i dzieli ją przez błąd standardowy bj, w którym wariancję reszt szacuje się bez tej obserwacji. Wartość ujemna oznacza, że obecność obserwacji obniża współczynnik. W R tabelę zwraca dfbetas(model). Belsley i in. (1980) proponują próg zależny od liczebności: |DFBETAS| > 2/√n. Duży DFBETAS powstaje zwykle wtedy, gdy obserwacja ma dużą dźwignię i dużą resztę jednocześnie.

Przykład

W danych symulowanych 40 studentów przewidujemy wynik egzaminu z liczby godzin nauki i lęku. Osoba 40 uczyła się najdłużej (15 godzin), ale uzyskała tylko 48 punktów. Próg 2/√40 wynosi .316. DFBETAS osoby 40 dla godzin nauki to −1.12, a dla lęku −0.08. Ta osoba obniża więc tylko efekt nauki: b = 1.66 z nią i 1.96 bez niej. Jej odległość Cooka (.40) sygnalizuje wpływ, ale nie mówi, na który współczynnik. Próg przekracza jeszcze osoba 11 (0.33), ale jej wartość leży tuż nad granicą.

Jak opisać w pracy

Wpływ pojedynczych obserwacji oceniono za pomocą DFBETAS (próg orientacyjny 2/√n = .316). Jedna osoba wyraźnie obniżała współczynnik dla godzin nauki (DFBETAS = −1.12). Po jej wykluczeniu współczynnik wzrósł z b = 1.66 do b = 1.96, a wniosek o istotności się nie zmienił (p < .001 w obu modelach).

Na co uważać

  • Przy dużym n próg 2/√n zawsze kogoś wskaże. Szukaj wartości wyraźnie oddalonych od pozostałych.
  • Duży DFBETAS to sygnał do sprawdzenia danych, a nie powód usunięcia. Bollen i Jackman (1985) traktują usunięcie obserwacji jako środek ostateczny. Zamiast tego podaj analizę wrażliwości z obserwacją i bez niej, jak opisuje wpis Czy można usunąć obserwacje odstające?
  • Przy kilku predyktorach sprawdzaj kolumnę dla współczynnika, który testuje hipotezę.

Miary wpływu w pełnym toku analizy pokazuje wpis Diagnostyka regresji w R.

Przykład reprodukowalny

DFBETAS w R

Kod liczy DFBETAS funkcją dfbetas(), porównuje je z progiem 2/√n i zestawia współczynniki modelu z obserwacją i bez niej.

DFBETAS dla modelu z dwoma predyktorami

Dane wejściowe: wynik egzaminu, godziny nauki i lęk egzaminacyjny 40 studentów; osoba 40 uczyła się 15 godzin i uzyskała 48 punktów (dane symulowane, set.seed(2851)).

Co odczytać: próg, DFBETAS osoby 40 dla każdego współczynnika, liczbę osób powyżej progu, współczynniki z osobą 40 i bez niej, test współczynnika godzin w obu modelach oraz odległość Cooka osoby 40.

R
set.seed(2851)
n <- 40
godziny <- round(runif(n, 2, 14), 1)                     # godziny nauki tygodniowo
lek     <- round(rnorm(n, 50, 10))                       # lęk egzaminacyjny
wynik   <- round(45 + 2 * godziny - 0.3 * (lek - 50) + rnorm(n, 0, 6))
godziny[n] <- 15; lek[n] <- 52; wynik[n] <- 48           # osoba 40: dużo nauki, słaby wynik
m <- lm(wynik ~ godziny + lek)
dfb <- dfbetas(m)
prog <- 2 / sqrt(n)
round(prog, 3)
round(dfb[n, ], 3)                                       # DFBETAS osoby 40 dla każdego współczynnika
colSums(abs(dfb) > prog)                                 # ile osób przekracza 2/sqrt(n)
round(dfb[abs(dfb[, "godziny"]) > prog, "godziny"], 3)  # kto przekracza dla godzin
m_bez <- update(m, subset = -n)
round(rbind(z_osoba_40 = coef(m), bez_osoby_40 = coef(m_bez)), 3)
round(summary(m)$coefficients["godziny", ], 3)
round(summary(m_bez)$coefficients["godziny", ], 3)
round(cooks.distance(m)[[n]], 3)
Wynik w R
[1] 0.316
(Intercept)     godziny         lek 
      0.373      -1.124      -0.077 
(Intercept)     godziny         lek 
          2           2           2 
    11     40 
 0.327 -1.124 
             (Intercept) godziny    lek
z_osoba_40        75.516   1.661 -0.529
bez_osoby_40      73.059   1.955 -0.519
  Estimate Std. Error    t value   Pr(>|t|) 
     1.661      0.316      5.257      0.000 
  Estimate Std. Error    t value   Pr(>|t|) 
     1.955      0.270      7.246      0.000 
[1] 0.403

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats). W pracy podaj wersję R, której faktycznie użyto (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/

Najczęstsze pytania

Jaki próg DFBETAS przyjąć?

Najczęściej |DFBETAS| > 2/√n (Belsley i in., 1980). Przy dużych próbach próg wskaże wiele osób, więc szukaj wartości wyraźnie oddalonych od pozostałych.

Czym różni się DFBETA od DFBETAS?

DFBETA to surowa zmiana współczynnika w jego jednostkach. DFBETAS dzieli tę zmianę przez błąd standardowy, dzięki czemu można porównywać współczynniki i stosować wspólny próg.

Czy DFBETAS można liczyć w regresji logistycznej?

Tak. W R funkcja dfbetas() działa też dla modeli glm(), ale wyniki są wtedy przybliżeniem, a nie dokładnym ponownym dopasowaniem modelu bez obserwacji.

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. Belsley, D. A., Kuh, E., & Welsch, R. E. (1980). Regression diagnostics: Identifying influential data and sources of collinearity. Wiley. https://doi.org/10.1002/0471725153
  2. Bollen, K. A., & Jackman, R. W. (1985). Regression diagnostics: An expository treatment of outliers and influential cases. Sociological Methods & Research, 13(4), 510–542. https://doi.org/10.1177/0049124185013004004

Cytowania BibTeX

@book{belsley1980regression, author={Belsley, David A. and Kuh, Edwin and Welsch, Roy E.}, title={{Regression diagnostics: Identifying influential data and sources of collinearity}}, year={1980}, publisher={Wiley}, doi={10.1002/0471725153}}
@article{bollen1985regression, author={Bollen, Kenneth A. and Jackman, Robert W.}, title={{Regression diagnostics: An expository treatment of outliers and influential cases}}, journal={Sociological Methods \& Research}, year={1985}, volume={13}, number={4}, pages={510--542}, doi={10.1177/0049124185013004004}}
R