Słownik metodologiczny · Projekt badania

Wagi IPW – jak działa ważenie odwrotnością prawdopodobieństwa?

Wagi IPW równoważą grupy porównawcze w badaniach obserwacyjnych dzięki odwrotności propensity score. Pokazujemy wzory dla ATE i ATT, wagi stabilizowane, problem skrajnych wag i przykład w R.

W skrócie: Wagi IPW to odwrotność prawdopodobieństwa otrzymania faktycznie otrzymanej interwencji, szacowanego jako propensity score. Ważenie nimi wyrównuje zmierzone cechy grup i pozwala oszacować ATE lub ATT w badaniu obserwacyjnym.

Co to są wagi IPW?

Wagi IPW (ang. inverse probability weighting, w badaniach leczenia także IPTW) to wagi równe odwrotności prawdopodobieństwa otrzymania tej interwencji, którą osoba faktycznie dostała. Prawdopodobieństwo to propensity score e(x), szacowany zwykle regresją logistyczną z cech sprzed interwencji. Ważenie tworzy próbę syntetyczną, w której przydział nie zależy od zmierzonych zmiennych zakłócających (Austin i Stuart, 2015). Cechy do modelu wybiera się tak, by zamknąć ścieżki zakłócające, np. według kryterium tylnych drzwi.

ATE, ATT i wagi stabilizowane

  • ATE (efekt w całej populacji): 1/e dla leczonych i 1/(1 − e) dla kontroli.
  • ATT (efekt u leczonych): 1 dla leczonych i e/(1 − e) dla kontroli.
  • Wagi stabilizowane: w liczniku odsetek osób w danej grupie. Suma wag jest bliska liczebności próby, a oszacowanie średnich różnic się nie zmienia.

Cole i Hernán (2008) wymieniają cztery założenia: spójność, wymienność, dodatniość (każdy ma szansę na obie interwencje) i poprawny model wag.

Przykład

W symulacji 2000 osób (848 leczonych) prawdziwe ATE wynosiło 2.01, a ATT 2.42. Surowa różnica: 4.58. Przed ważeniem SMD cech wynosiły 0.57 i 0.79, po ważeniu nie przekraczały 0.011 co do wartości bezwzględnej. IPW dało ATE = 2.01, a ATT = 2.31. Największa waga dla ATE wynosiła 20.47, a po stabilizacji 11.79.

Jak opisać w pracy

Efekt terapii w całej próbie (ATE) oszacowano metodą ważenia odwrotnością prawdopodobieństwa z wagami stabilizowanymi (propensity score z regresji logistycznej z wiekiem i nasileniem objawów). Po ważeniu wszystkie standaryzowane różnice średnich były mniejsze niż 0.02. Oszacowany efekt wyniósł 2.01 punktu.

Na co uważać

  • Skrajne wagi. Propensity score bliski 0 lub 1 daje ogromne wagi i szerokie przedziały. Przycięcie wag zmniejsza wariancję kosztem obciążenia (Cole i Hernán, 2008); w przykładzie po przycięciu na 1. i 99. percentylu ATE wzrosło do 2.21.
  • Brak kontroli równowagi. Sprawdź ważone SMD (Austin i Stuart, 2015).
  • To nie wagi sondażowe. Wagi poststratyfikacyjne dopasowują próbę do populacji, a IPW wyrównuje grupy porównawcze.

Dopasowanie i ważenie na jednych danych porównuje wpis Propensity score: dopasowanie i ważenie.

Przykład reprodukowalny

Wagi IPW w R

Kod szacuje propensity score funkcją glm(), liczy ręcznie wagi dla ATE, wagi stabilizowane i wagi dla ATT, sprawdza ważone SMD i porównuje oszacowania z prawdziwym efektem znanym z symulacji.

Efekt terapii przy zakłóceniu przez wiek i nasilenie objawów

Dane wejściowe: 2000 osób, dwie cechy sprzed leczenia, przydział do terapii zależny od tych cech i efekt rosnący z nasileniem objawów (dane symulowane, set.seed(3581)).

Co odczytać: prawdziwe ATE i ATT, zakres i sumę wag, SMD przed i po ważeniu oraz surową różnicę, ATE z IPW, ATE po przycięciu wag i ATT.

R
set.seed(3581)
n   <- 2000
wiek  <- rnorm(n, 0, 1)                               # cechy przed leczeniem (standaryzowane)
nasil <- rnorm(n, 0, 1)                               # nasilenie objawów
A <- rbinom(n, 1, plogis(-0.5 + 0.8 * wiek + 1.0 * nasil))       # kto trafia do terapii
efekt <- 2 + 1 * nasil                                # efekt większy u osób z większym nasileniem
Y <- 10 + 1.5 * wiek + 2 * nasil + efekt * A + rnorm(n, 0, 2)
round(c(leczeni = sum(A), ATE_prawdziwy = mean(efekt), ATT_prawdziwy = mean(efekt[A == 1])), 2)
ps <- fitted(glm(A ~ wiek + nasil, family = binomial))           # propensity score
w_ate  <- ifelse(A == 1, 1 / ps, 1 / (1 - ps))                   # wagi IPW dla ATE
w_stab <- ifelse(A == 1, mean(A) / ps, (1 - mean(A)) / (1 - ps)) # wagi stabilizowane
w_att  <- ifelse(A == 1, 1, ps / (1 - ps))                       # wagi dla ATT
opis <- function(w) round(c(min = min(w), max = max(w), srednia = mean(w),
                            suma = sum(w)), 2)
rbind(ATE = opis(w_ate), stabilizowane = opis(w_stab), ATT = opis(w_att))
smd <- function(x, w) {                               # ważona standaryzowana różnica średnich
  m1 <- weighted.mean(x[A == 1], w[A == 1]); m0 <- weighted.mean(x[A == 0], w[A == 0])
  (m1 - m0) / sqrt((var(x[A == 1]) + var(x[A == 0])) / 2)
}
round(rbind(przed = c(wiek = smd(wiek, rep(1, n)), nasil = smd(nasil, rep(1, n))),
            po_ATE = c(smd(wiek, w_stab), smd(nasil, w_stab))), 3)
roznica <- function(w) weighted.mean(Y[A == 1], w[A == 1]) - weighted.mean(Y[A == 0], w[A == 0])
gr <- quantile(w_stab, c(0.01, 0.99))
w_przyc <- pmin(pmax(w_stab, gr[1]), gr[2])           # wagi przycięte na 1. i 99. percentylu
round(c(surowa = roznica(rep(1, n)), ATE_IPW = roznica(w_stab),
        ATE_przyciete = roznica(w_przyc), ATT_IPW = roznica(w_att)), 2)
Wynik w R
      leczeni ATE_prawdziwy ATT_prawdziwy 
       848.00          2.01          2.42 
               min   max srednia    suma
ATE           1.01 20.47    2.00 3998.89
stabilizowane 0.44 11.79    1.00 1999.30
ATT           0.01 19.47    0.85 1694.50
         wiek nasil
przed   0.570 0.786
po_ATE -0.005 0.011
       surowa       ATE_IPW ATE_przyciete       ATT_IPW 
         4.58          2.01          2.21          2.31 

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

Czym różnią się wagi IPW dla ATE i dla ATT?

Wagi dla ATE ważą obie grupy tak, by przypominały całą próbę: 1/e dla leczonych i 1/(1 − e) dla kontroli. Wagi dla ATT zostawiają leczonych z wagą 1, a kontrolom dają e/(1 − e), by przypominały leczonych.

Po co stabilizować wagi IPW?

Wagi stabilizowane mają w liczniku odsetek osób w danej grupie, więc ich suma jest bliska liczebności próby, a średnia bliska 1. Różnica ważonych średnich się nie zmienia, ale wagi łatwiej ocenić i porównać.

Co zrobić ze skrajnymi wagami IPW?

Sprawdź, czy wynikają z braku wspólnego zakresu propensity score. Możesz przyciąć wagi, np. na 1. i 99. percentylu, ale to zmniejsza wariancję kosztem obciążenia (Cole i Hernán, 2008), więc pokaż wynik z przycięciem i bez.

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. Austin, P. C., & Stuart, E. A. (2015). Moving towards best practice when using inverse probability of treatment weighting (IPTW) using the propensity score to estimate causal treatment effects in observational studies. Statistics in Medicine, 34(28), 3661–3679. https://doi.org/10.1002/sim.6607 ● Otwarty dostęp
  2. Cole, S. R., & Hernán, M. A. (2008). Constructing inverse probability weights for marginal structural models. American Journal of Epidemiology, 168(6), 656–664. https://doi.org/10.1093/aje/kwn164 ● Otwarty dostęp

Cytowania BibTeX

@article{austin2015moving, author={Austin, Peter C. and Stuart, Elizabeth A.}, title={{Moving towards best practice when using inverse probability of treatment weighting (IPTW) using the propensity score to estimate causal treatment effects in observational studies}}, journal={Statistics in Medicine}, year={2015}, volume={34}, number={28}, pages={3661--3679}, doi={10.1002/sim.6607}}
@article{cole2008constructing, author={Cole, Stephen R. and Hernán, Miguel A.}, title={{Constructing inverse probability weights for marginal structural models}}, journal={American Journal of Epidemiology}, year={2008}, volume={168}, number={6}, pages={656--664}, doi={10.1093/aje/kwn164}}
R