Co to jest regresja kwantylowa?
Regresja kwantylowa (ang. quantile regression) modeluje wybrany kwantyl zmiennej zależnej, np. medianę albo 10. lub 90. centyl, zamiast średniej. Koenker i Hallock (2001) opisują ją jako rozszerzenie metody najmniejszych kwadratów na zestaw modeli dla różnych kwantyli. Przydaje się, gdy predyktor inaczej wiąże się z wynikami niskimi, a inaczej z wysokimi, np. przy braku homoskedastyczności albo przy silnej skośności.
Jak to działa?
τ to wybrany kwantyl (od 0 do 1), a I(·) przyjmuje wartość 1, gdy reszta jest ujemna. Przy τ = .50 dostajesz regresję medianową, która minimalizuje sumę wartości bezwzględnych reszt. Inne kwantyle minimalizują asymetrycznie ważoną sumę wartości bezwzględnych reszt (Koenker i Hallock, 2001). Każde τ daje własne nachylenie.
Przykład
W danych symulowanych 400 osób podało, ile godzin dziennie spędza w mediach społecznościowych (0–8), i wypełniło skalę objawów depresji (0–27). Regresja liniowa daje b = 0.55, 95% CI [0.43, 0.66]. Regresja kwantylowa pokazuje więcej: dla τ = .10 b = 0.00 [−0.19, 0.19], dla mediany 0.51 [0.38, 0.64], a dla τ = .90 1.14 [0.98, 1.30]. Nachylenia dla τ = .10 i .90 różnią się istotnie, F(1, 799) = 86.98, p < .001. Średnie nachylenie ukrywa więc brak związku na dole rozkładu.
Jak opisać w pracy
Na co uważać
- To nie to samo co podział próby według wyniku. Osobne regresje w tercylach zmiennej zależnej obcinają jej zakres i obciążają nachylenia. Regresja kwantylowa korzysta z całej próby.
- Kwantyl jest warunkowy. „90. centyl” to górna część rozkładu wyniku przy danej wartości predyktora, a nie grupa konkretnych osób.
- Pokaż kilka kwantyli. Petscher i Logan (2014) pokazują na danych rozwojowych, że regresja liniowa i kwantylowa mogą prowadzić do różnych wniosków. Podaj też metodę błędów standardowych.
Regresja medianowa słabiej reaguje na obserwacje odstające w zmiennej zależnej. Założenia zwykłej regresji omawia wpis Regresja wieloraka krok po kroku.
Regresja kwantylowa w R
Kod porównuje nachylenie z regresji liniowej z nachyleniami dla 10. centyla, mediany i 90. centyla oraz testuje równość nachyleń.
Nachylenia dla τ = .10, .50 i .90
R
# Regresja kwantylowa a regresja liniowa (dane symulowane)
suppressPackageStartupMessages(library(quantreg))
set.seed(184)
n <- 400
media <- runif(n, 0, 8) # godziny dziennie w mediach społecznościowych
objawy <- pmax(0, round(5 + 0.6 * media + rnorm(n, 0, 1 + 0.35 * media))) # wynik skali objawów 0–27
objawy <- pmin(objawy, 27)
round(c(M = mean(objawy), SD = sd(objawy), Mdn = median(objawy)), 2)
ols <- lm(objawy ~ media)
round(c(b = coef(ols)[2], confint(ols)[2, ]), 2)
taus <- c(0.10, 0.50, 0.90)
tab <- t(sapply(taus, function(t) {
s <- summary(rq(objawy ~ media, tau = t), se = "nid")$coefficients
b <- s[2, 1]; se <- s[2, 2]
c(tau = t, b = b, dolna = b - 1.96 * se, gorna = b + 1.96 * se)
}))
round(tab, 2)
anova(rq(objawy ~ media, tau = 0.10), rq(objawy ~ media, tau = 0.90)) # równość nachyleńWynik w R
M SD Mdn
7.22 2.95 7.00
b.media 2.5 % 97.5 %
0.55 0.43 0.66
tau b dolna gorna
[1,] 0.1 0.00 -0.19 0.19
[2,] 0.5 0.51 0.38 0.64
[3,] 0.9 1.14 0.98 1.30
Quantile Regression Analysis of Deviance Table
Model: objawy ~ media
Joint Test of Equality of Slopes: tau in { 0.1 0.9 }
Df Resid Df F value Pr(>F)
1 1 799 86.976 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje pakietów base i stats, pakiet quantreg). 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/
- quantreg (wersja 6.1): Koenker, R. (2025). quantreg: Quantile regression (R package version 6.1) [Computer software]. https://doi.org/10.32614/CRAN.package.quantreg
Najczęstsze pytania
Czym regresja medianowa różni się od zwykłej regresji liniowej?
Regresja liniowa modeluje średnią i minimalizuje sumę kwadratów reszt. Regresja medianowa modeluje medianę i minimalizuje sumę wartości bezwzględnych reszt, więc słabiej reaguje na obserwacje odstające w zmiennej zależnej.
Czy regresja kwantylowa wymaga normalności reszt?
Nie zakłada określonego rozkładu reszt ani stałej wariancji. Nadal zakładasz jednak poprawną postać związku i niezależność obserwacji.
Jak zrobić regresję kwantylową w R?
Użyj funkcji rq() z pakietu quantreg, np. rq(y ~ x, tau = 0.9). Funkcja summary() poda współczynniki z przedziałami ufności, a anova() sprawdzi równość nachyleń dla dwóch kwantyli.
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ówBibliografia i dalsza literatura naukowa (APA 7)
- Koenker, R., & Hallock, K. F. (2001). Quantile regression. Journal of Economic Perspectives, 15(4), 143–156. https://doi.org/10.1257/jep.15.4.143
- Petscher, Y., & Logan, J. A. R. (2014). Quantile regression in the study of developmental sciences. Child Development, 85(3), 861–881. https://doi.org/10.1111/cdev.12190 ● Otwarty dostęp: pełny tekst
Cytowania BibTeX
@article{koenker2001quantile, author={Koenker, Roger and Hallock, Kevin F.}, title={{Quantile regression}}, journal={Journal of Economic Perspectives}, year={2001}, volume={15}, number={4}, pages={143--156}, doi={10.1257/jep.15.4.143}}@article{petscher2014quantile, author={Petscher, Yaacov and Logan, Jessica A. R.}, title={{Quantile regression in the study of developmental sciences}}, journal={Child Development}, year={2014}, volume={85}, number={3}, pages={861--881}, doi={10.1111/cdev.12190}}