Co to jest offset?
Offset (ang. offset, zmienna ekspozycji) to składnik modelu, którego współczynnik jest ustalony na 1, a nie szacowany. W regresji Poissona jest nim zwykle logarytm czasu obserwacji albo wielkości populacji t:
ln μ = ln t + b0 + b1x, czyli ln(μ / t) = b0 + b1x.
Model opisuje wtedy częstość zdarzeń na jednostkę ekspozycji (osobodzień, osoborok, 100 tys. mieszkańców), a nie surową liczbę zdarzeń. exp(b) to iloraz częstości (IRR). Frome (1983) opisał tak analizę częstości w badaniach kohortowych, gdzie zdarzenia odnosi się do osobolat obserwacji. To ta sama logika co zapadalność liczona na osobolata.
Kiedy go dodać
Zawsze wtedy, gdy jednostki miały różną szansę na zdarzenie z powodu samej ekspozycji: różny czas obserwacji, różną liczbę mieszkańców powiatu albo różną liczbę lekcji w klasie. Ponieważ model działa na skali logarytmu (zob. funkcja łącząca), offset też musi być logarytmem. Ten sam offset stosuje się w regresji ujemnej dwumianowej. Coxe, West i Aiken (2009) omawiają oba modele dla zliczeń.
Przykład
W symulowanych danych porównano upadki pacjentów w dwóch oddziałach (po 100 osób). W oddziale B pacjentów obserwowano średnio 39.4 dnia, a w A 17.9 dnia. Bez offsetu B wygląda gorzej: IRR = 1.81, 95% CI [1.51, 2.18]. Po uwzględnieniu czasu obserwacji wynik się odwraca: 81.1 wobec 98.5 upadku na 1000 osobodni, IRR = 0.823, 95% CI [0.685, 0.989], z = −2.07, p = .038.
Jak opisać w pracy
Na co uważać
- Offset to ln(t), nie t. W R wpisz
offset(log(dni)). Czas musi być większy od zera. - Offset a predyktor. Jeśli wpiszesz ln(t) jako zwykły predyktor, model oszacuje jego współczynnik. Wynik bliski 1 jest zgodny z założeniem, że liczba zdarzeń rośnie proporcjonalnie do czasu.
- Sprawdź nadmierne rozproszenie. Offset go nie usuwa.
Pełną analizę z offsetem pokazuje wpis Regresja dla zliczeń krok po kroku, a trend zapadalności – Statystyka w pracy ze zdrowia publicznego.
Offset w regresji Poissona w R
Kod porównuje regresję Poissona bez offsetu i z offsetem offset(log(dni)) w danych, w których jeden oddział obserwowano dłużej, i liczy częstości na 1000 osobodni.
Upadki w dwóch oddziałach: model bez offsetu i z offsetem
R
set.seed(292)
n <- 200
oddzial <- factor(rep(c("A", "B"), each = n / 2)) # dane symulowane
dni <- round(ifelse(oddzial == "B", runif(n, 20, 60), runif(n, 5, 30))) # czas obserwacji
czestosc <- ifelse(oddzial == "B", 0.08, 0.10) # prawdziwa liczba upadków na dzień
upadki <- rpois(n, czestosc * dni)
(s <- aggregate(cbind(upadki, dni) ~ oddzial, FUN = sum)) # zdarzenia i osobodni w oddziałach
round(c(dni_A = mean(dni[oddzial == "A"]), dni_B = mean(dni[oddzial == "B"])), 1)
round(setNames(1000 * s$upadki / s$dni, s$oddzial), 1) # upadki na 1000 osobodni
m_bez <- glm(upadki ~ oddzial, family = poisson) # bez offsetu
m_off <- glm(upadki ~ oddzial + offset(log(dni)), family = poisson) # z offsetem
round(exp(cbind(IRR = coef(m_bez), confint.default(m_bez)))["oddzialB", ], 2)
round(exp(cbind(IRR = coef(m_off), confint.default(m_off))), 3)
round(summary(m_off)$coefficients["oddzialB", ], 3)Wynik w R
oddzial upadki dni
1 A 176 1787
2 B 319 3935
dni_A dni_B
17.9 39.4
A B
98.5 81.1
IRR 2.5 % 97.5 %
1.81 1.51 2.18
IRR 2.5 % 97.5 %
(Intercept) 0.098 0.085 0.114
oddzialB 0.823 0.685 0.989
Estimate Std. Error z value Pr(>|z|)
-0.195 0.094 -2.073 0.038 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()).
- 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
Kiedy dodać offset do regresji Poissona?
Gdy osoby lub jednostki miały różną ekspozycję na zdarzenie: różny czas obserwacji, liczbę mieszkańców albo liczbę okazji. Bez offsetu dłużej obserwowani wydają się mieć wyższe ryzyko.
Dlaczego offset to logarytm czasu, a nie sam czas?
Regresja Poissona działa na skali logarytmu średniej. Odjęcie ln(t) od obu stron daje ln(μ/t), czyli logarytm częstości. Sam czas wpisany jako offset dałby błędny model.
Czym różni się offset od zwykłego predyktora?
Współczynnik offsetu jest ustalony na 1, a współczynnik predyktora model szacuje. Ln(t) jako predyktor pozwala sprawdzić, czy zdarzenia rosną proporcjonalnie do czasu.
Powiązane hasła
Poradniki, w których użyjesz tego pojęcia
Regresja dla zliczeń krok po kroku
Poisson z offsetem, rozproszenie, ujemna dwumianowa, ZIP, ZINB i hurdle na jednym przykładzie: rootogram, IRR, przewidywane średnie, tabela APA i kod R.
Czytaj →PoradnikStatystyka w pracy ze zdrowia publicznego
Chorobowość z CI, iloraz szans a iloraz chorobowości, standaryzacja względem wieku, ważenie próby i trend z rejestrów: analizy, APA i kod R.
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)
- Coxe, S., West, S. G., & Aiken, L. S. (2009). The analysis of count data: A gentle introduction to Poisson regression and its alternatives. Journal of Personality Assessment, 91(2), 121–136. https://doi.org/10.1080/00223890802634175
- Frome, E. L. (1983). The analysis of rates using Poisson regression models. Biometrics, 39(3), 665–674. https://doi.org/10.2307/2531094
Cytowania BibTeX
@article{coxe2009analysis, author={Coxe, Stefany and West, Stephen G. and Aiken, Leona S.}, title={{The analysis of count data: A gentle introduction to Poisson regression and its alternatives}}, journal={Journal of Personality Assessment}, year={2009}, volume={91}, number={2}, pages={121--136}, doi={10.1080/00223890802634175}}@article{frome1983analysis, author={Frome, Edward L.}, title={{The analysis of rates using Poisson regression models}}, journal={Biometrics}, year={1983}, volume={39}, number={3}, pages={665--674}, doi={10.2307/2531094}}