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
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.
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
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.403Bibliografia 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()).
- 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
Diagnostyka regresji w R
Reszty studentyzowane, dźwignia, Cook i DFBETAS, VIF, maskowanie heteroskedastyczności, HC3 i analiza wrażliwości – z danymi i kodem R.
Czytaj →PoradnikCzy można usunąć obserwacje odstające?
Kiedy usunięcie wyniku jest uzasadnione, a kiedy staje się manipulacją: tabela decyzji, analiza wrażliwości w R i gotowy opis do pracy.
Czytaj →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)
- 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
- 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}}