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
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.
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
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()).
- 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ówBibliografia i dalsza literatura naukowa (APA 7)
- 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
- 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}}