Co to jest regresja beta?
Regresja beta (ang. beta regression) to model dla zmiennej ciągłej z przedziału (0, 1), np. odsetka poprawnych odpowiedzi, udziału czasu czy wskaźnika pokrycia. Ferrari i Cribari-Neto (2004) zapisali rozkład beta przez średnią μ i parametr precyzji φ. Wariancja wynosi μ(1 − μ)/(1 + φ), więc rozrzut maleje, gdy średnia zbliża się do 0 lub 1. Zwykła regresja liniowa pomija tę heteroskedastyczność i może przewidywać wartości spoza przedziału.
Jak interpretować
Średnią łączy się z predyktorami najczęściej funkcją łączącą logit: logit(μ) = b₀ + b₁x, jak w regresji logistycznej. Wtedy exp(b) to iloraz szans dla średniej proporcji (Ferrari i Cribari-Neto, 2004). Większe φ oznacza mniejszy rozrzut wokół średniej. Smithson i Verkuilen (2006) pokazali, że precyzję można modelować własnymi predyktorami (podmodel z łączem logarytmicznym), co wprost opisuje heteroskedastyczność. Podobnie regresja gamma dobiera rozkład do wyników dodatnich bez górnej granicy.
Zera i jedynki
Rozkład beta nie obejmuje wartości dokładnie 0 i 1. Smithson i Verkuilen (2006) zaproponowali przekształcenie y′ = [y(n − 1) + 0.5]/n, które przy n = 200 zamienia 0 na 0.0025, a 1 na 0.9975. Przy wielu zerach lub jedynkach lepsze są modele, które opisują je osobno.
Przykład
W symulowanych danych 200 studentów odsetek poprawnych odpowiedzi w teście zależał od tygodniowej liczby godzin ćwiczeń (0–10). W regresji beta z łączem logit współczynnik godzin wyniósł b = 0.248, SE = 0.012, z = 21.19, p < .001. Każda godzina mnożyła szanse średniego odsetka przez 1.28, a precyzja wyniosła φ = 19.81. Przewidywany odsetek rósł z 27.4% przy 0 godzin do 56.6% przy 5 i 81.8% przy 10 godzinach.
Jak opisać w pracy
Na co uważać
- Odsetek z liczby prób to nie wynik ciągły. Gdy znasz liczbę sukcesów i prób (np. 7 z 10 zadań), użyj modelu dwumianowego, jak we wpisie Jak porównać odsetki w dwóch grupach.
- Automatyczne przycinanie. Rodzina
betar()w mgcv przesuwa 0 i 1 o bardzo małą wartość, co może zniekształcić wynik. Przekształć je jawnie i opisz to w metodzie. - Nieliniowość. W
gam()możesz dodać splajn, np.s(godziny), opisany we wpisie Nieliniowe zależności – splajny i modele GAM.
Regresja beta w R
Pakiet betareg nie jest potrzebny: kod dopasowuje regresję beta funkcją gam() z pakietu mgcv i rodziną betar(), a na końcu pokazuje przekształcenie Smithsona i Verkuilena.
Odsetek poprawnych odpowiedzi a liczba godzin ćwiczeń
R
suppressPackageStartupMessages(library(mgcv))
set.seed(3421)
n <- 200
godziny <- round(runif(n, 0, 10), 1) # godziny ćwiczeń tygodniowo
mu <- plogis(-1 + 0.25 * godziny) # średni odsetek poprawnych odpowiedzi
wynik <- rbeta(n, mu * 20, (1 - mu) * 20) # rozkład beta, precyzja phi = 20
m <- gam(wynik ~ godziny, family = betar(link = "logit"))
round(summary(m)$p.table, 3)
round(c(OR = exp(coef(m)[["godziny"]]),
phi = m$family$getTheta(TRUE)), 2) # iloraz szans dla średniej i precyzja
round(predict(m, data.frame(godziny = c(0, 5, 10)), type = "response"), 3)
sv <- function(y, n = length(y)) (y * (n - 1) + 0.5) / n # Smithson i Verkuilen (2006)
round(sv(c(0, 0.5, 1), n = 200), 4)Wynik w R
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.974 0.064 -15.268 0
godziny 0.248 0.012 21.192 0
OR phi
1.28 19.81
1 2 3
0.274 0.566 0.818
[1] 0.0025 0.5000 0.9975
[1] 0.115 0.936Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet mgcv). W pracy podaj wersje faktycznie użytych pakietów (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/
- mgcv (wersja 1.9-4): Wood, S. N. (2011). Fast stable restricted maximum likelihood and marginal likelihood estimation of semiparametric generalized linear models. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 73(1), 3–36. https://doi.org/10.1111/j.1467-9868.2010.00749.x
Najczęstsze pytania
Kiedy wybrać regresję beta zamiast regresji logistycznej?
Gdy wynik jest ciągłym odsetkiem bez znanej liczby prób, np. udziałem czasu albo wskaźnikiem pokrycia. Gdy znasz liczbę sukcesów i prób, właściwszy jest model dwumianowy, czyli regresja logistyczna.
Co oznacza parametr precyzji φ w regresji beta?
Opisuje rozrzut wyników wokół średniej: wariancja wynosi μ(1 − μ)/(1 + φ). Im większe φ, tym wyniki leżą bliżej przewidywanej średniej.
Jak policzyć regresję beta w R bez pakietu betareg?
Użyj mgcv::gam(y ~ x, family = betar(link = "logit")). Współczynniki są na skali logit, a precyzję φ zwraca m$family$getTheta(TRUE).
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
Nieliniowe zależności: splajny i GAM
Podział na grupy, parabola, splajn i GAM na jednym zbiorze: edf, REML, wybór k, diagnostyka, wykres krzywej i wzór opisu w R.
Czytaj →PoradnikJak porównać odsetki w dwóch grupach?
Tabela 2 × 2, test chi-kwadrat lub Fishera i różnica w punktach procentowych z 95% CI Newcombe’a – z przykładem w R i wzorem opisu.
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)
- Ferrari, S., & Cribari-Neto, F. (2004). Beta regression for modelling rates and proportions. Journal of Applied Statistics, 31(7), 799–815. https://doi.org/10.1080/0266476042000214501
- Smithson, M., & Verkuilen, J. (2006). A better lemon squeezer? Maximum-likelihood regression with beta-distributed dependent variables. Psychological Methods, 11(1), 54–71. https://doi.org/10.1037/1082-989x.11.1.54
Cytowania BibTeX
@article{ferrari2004beta, author={Ferrari, Silvia and Cribari-Neto, Francisco}, title={{Beta regression for modelling rates and proportions}}, journal={Journal of Applied Statistics}, year={2004}, volume={31}, number={7}, pages={799--815}, doi={10.1080/0266476042000214501}}@article{smithson2006better, author={Smithson, Michael and Verkuilen, Jay}, title={{A better lemon squeezer? Maximum-likelihood regression with beta-distributed dependent variables}}, journal={Psychological Methods}, year={2006}, volume={11}, number={1}, pages={54--71}, doi={10.1037/1082-989x.11.1.54}}