Słownik metodologiczny · Modele regresji

Offset w regresji Poissona – jak uwzględnić różny czas obserwacji?

Offset to logarytm czasu obserwacji lub wielkości populacji dodany do regresji Poissona ze współczynnikiem 1. Dzięki niemu model opisuje częstość zdarzeń, a nie surową liczbę. Pokazujemy przykład w R, w którym offset odwraca wniosek, i opis do pracy.

Strona główna / Słownik / Offset w regresji Poissona
W skrócie: Offset w regresji Poissona to logarytm ekspozycji (czasu obserwacji, liczby mieszkańców) dodany do modelu ze współczynnikiem ustalonym na 1. Model opisuje wtedy częstość zdarzeń na jednostkę ekspozycji, a exp(b) to iloraz częstości (IRR).

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

Liczbę upadków analizowano regresją Poissona z logarytmem liczby dni obserwacji jako offsetem. W oddziale B częstość upadków była niższa niż w oddziale A (81.1 wobec 98.5 na 1000 osobodni), IRR = 0.823, 95% CI [0.685, 0.989], z = −2.07, p = .038.

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.

Przykład reprodukowalny

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

Dane wejściowe: liczba upadków i liczba dni obserwacji u 200 pacjentów z dwóch oddziałów (dane symulowane, set.seed(292)).

Co odczytać: sumy zdarzeń i osobodni, średni czas obserwacji, częstości na 1000 osobodni, IRR bez offsetu i z offsetem (z 95% CI) oraz z i p dla oddziału.

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()).

  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

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

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. 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
  2. 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}}
R