R-ohjelmointi.org

Tilastotieteellistä ohjelmointia R-kielellä

Propensiteettipistemäärään perustuva kaltaistaminen havainnoivien tutkimusten analysoinnissa

Taustaa
Sekoittavat muuttujat (confounders) haittaavat altisteiden (esim. tupakka) ja vasteiden (esim. keuhkosyöpä) välisten suhteiden selvittämistä. Sekoittavat tekijät ovat ominaisuuksia, jotka liittyvät sekä vasteeseen että sitä selittäviin muuttujiin. Esimerkiksi kaivostyöntekijöillä on muita enemmän keuhkosyöpää, mutta toisaalta he myös tupakoivat keskimääräistä enemmän. Kaivostyöskentely on siten tupakoinnin ja keuhkosyövän välistä yhteyttä sekoittavatekijä.

Sekoittavat tekijät voidaan toisinaan huomioida koeasetelmalla, esimerkiksi satunnaistamalla koeyksiköt (tässä ihmiset) kontrolli- ja käsittelyryhmiin. Aina tämä ei kuitenkaan ole mahdollista, kuten esimerkiksi tupakan ja keuhkosyövän välisen yhteyden ollessa kyseessä. Tämän hetkisen tietämyksen huomioiden ei nimittäin olisi eettisesti oikein altistaa suurta joukkoa ihmisiä pitkäaikaisesti tupakalle.

Koska koeasetelmaan ei aina voida ottaa mukaan satunnaistamista, voidaan sen vaikutusta yrittää matkia muilla keinoin. Hyvin yleisesti käytetty keino on regressiomalli, jolla yritetään mallintaa vaste siten, että mallissa ovat mukana kaikki vasteeseen vaikuttavat tekijät ja niiden yhteisvaikutukset. Jotta mallin antamat ennusteet olisivat harhattomia, pitäisi mallin vielä kuvastaa todellisuutta hyvin tarkasti eli mallissa pitäisi olla kaikki vasteeseen vaikuttavat tekijät. Aina tämä ei ole mahdollista, jolloin voidaan käyttää esimerkiksi propensiteettipistemäärään (PS) perustuvia menetelmiä.

Propensiteettipistemäärään perustuvat menetelmät eivät pyri suoraan mallintamaan vastetta, vaan koeyksiköihin kohdistettua käsittelyä. Oikein tehtynä käsittely ei korreloi selittävien muuttujien kanssa, jos koeyksiköiden PS on samansuuruinen. Sen seurauksena sekoittavien tekijöiden jakaumasta tulee samanlainen sekä kontrolliryhmässä että käsittelyryhmässä. Vaikutus on siis sama kuin hyvällä satunnaistuksella.

Käytännössä havainnoivalle tutkimukselle muodostetun PS:n perusteella voidaan muodostaa joko a) kaltaistetut käsittely- ja verrokkiryhmät tai b) ositteet tai PS:ää voidaan käyttää c) painoina regressiomallissa tai d) yhtenä selittäjänä regressiomallissa.

Katsotaanpa seuraavaksi, miten propensiteettipistemäärään perustuvia menetelmiä voidaan soveltaa R:ssä.

R-paketti nonrandom
Paketti nonrandom on tarkoitettu PS-analyysien tekemiseen. Analyysi koostuu karkeasti neljästä osasta: 1) PS-pistemäärien laskeminen, 2) PS-perusteiden ositteiden tai kaltaistuksen tekeminen, 3) ositteiden tai kaltaistuksen tasapainottavan vaikutuksen tarkistaminen ja 4) varsinainen analyysi, vaikkapa regressio. Seuraavassa käytetään esimerkkinä nonrandom-paketin mukana tulevaa aineistoa pride.

1. Sovitetaan PS-malli
Sekoittavia tekijöitä käyttäen muodostetaan ensin logistinen malli, josta ennustetaan kullekin havaintoyksikölle vasteen arvo väliltä 0-1.

# Ladataan paketti ja data
library(nonrandom)
data(pride)
 
# Sovitetaan PS-malli
pride.ps <- pscore(data = pride,
  formula = PCR_RSV~SEX+RSVINF+REGION+AGE+ELTATOP+EINZ+EXT,
  name.pscore = "ps")

Ideana on ennustaa respiratorisen synsytiaaliviruksen (RSV) tartuntaa potilaassa, koska se on vakavan alemman hengitystieinfektiolle altistava tekijä, ja olemme kiinnostuneita juuri vakavan infektion riskitekijöistä.

2. Kaltaistus
Koska RS-virukselle positiivisia potilaita on vähemmän kuin sille negatiivisia, poimitaan verrokkien joukosta yksi kaltaistettu vastine kullekin viruspositiiviselle potilaalle:

# Tehdään PS:ään perustuva kaltaistus
pride.m1 <- ps.match(object = pride.ps,
  ratio = 1, 
  x = 0.2, caliper = "logit",
  matched.by = "ps",
  setseed = 123)
 
summary(pride.m1)
 
 Matched by:  ps 
 
 Matching parameter:
 
Caliper size:    0.102
Ratio:           1.000
Who is treated?: 1.000
 
 Matching information:
 
Untreated to treated?: TRUE
Best match?:           TRUE
 
 Matching data:
 
Number of treated obs.:             1031
Number of matched treated obs.:     1031
Number of untreated obs.:           2047
Number of matched untreated obs.:   1031
Number of total matched obs.:       2062
Number of not matched obs.:         1016
Number of matching sets:            1031
Number of incomplete matching sets:    0

3. Tutkitaan kaltaistuksen vaikutus
Kaltaistuksen sopivuus ja sen korjaava vaikutus on vielä tutkittava ennen varsinaista analyysiä.

# Tilastollinen testaus kaltaistuksen tasapainolle
pride.m1.bal <- ps.balance(object = pride.m1,
  sel = c(2:14),
  cat.levels = 4,
  method = "classical",
  alpha = 5)
 
summary(pride.m1.bal)
 
 Balance check using: Statistical tests 
 
 
 Summary of balance check: 
 
                  Before: no bal (0) Before: bal (1)
After: no bal (0)                  1               0
After: bal (1)                     8               4
 
 
 Covariates not completely tested: ---
 
 
 Detailed balance check (overall): 
 
       SEX ETHNO FRUEHG RSVINF HERZ REGION AGE VOLLSTIL EINZ TOBACCO EXT
Before   0     1      1      0    1      0   0        0    0       1   0
After    1     1      1      1    1      1   1        1    1       1   1
       ELTATOP KRANKSUM
Before       0        0
After        1        0
 
 
 Detailed balance check [p.values]: 
 
            SEX ETHNO FRUEHG RSVINF  HERZ REGION   AGE VOLLSTIL  EINZ TOBACCO
Before     0.01 0.907  0.413      0 0.518      0     0    0.037 0.004   0.794
------    ----- -----  -----  ----- -----  ----- -----    ----- -----   -----
After     0.965 0.569  0.848  0.801 0.313   0.72 0.299    0.479 0.678    0.93
 
---------  ----  ----   ----   ----  ----   ----  ----     ----  ----    ----
Test      chi^2 chi^2  chi^2  chi^2 chi^2  chi^2     t    chi^2 chi^2   chi^2
 
            EXT ELTATOP KRANKSUM
Before    0.039   0.014    0.005
------    -----   -----    -----
After     0.551   0.444    0.016
 
---------  ----    ----     ----
Test      chi^2   chi^2    chi^2
 
 
 Significance level for tests: 0.05

Tuloksen perusteella kaltaistus näyttää tasapainottaneen muuttujien jakauman eri ryhmien välillä varsin kauniisti. Kaltaistuksen jälkeen kaikki tutkitut muuttujat tuntuvat olevan tasapainossa.

4. Mallinnus
Sovitetaan logistinen regressiomalli, jossa vakavaa hengitystietulehdusta ennustetaan RS-viruksen aiheuttamalla samanaikaisella tulehduksella, iällä, sukupuolella ja passiivisella tupakoinnilla. Tehdään lisäksi sama analyysi käyttäen Mantel-Haenszel:in (MH) estimaattoria.

pride.est2 <- ps.estimate(object = pride.str5,
  resp = "SEVERE",
  weights = "opt",
  regr =SEVERE~PCR_RSV+SEX+AGE+TOBACCO,
 
  adj  =SEVERE~PCR_RSV+SEX+AGE+TOBACCO,
  family="binomial")
 
summary(pride.est2)
 
         Summary for effect estimation 
 
 
 Treatment/exposure: PCR_RSV
 Outcome: SEVERE
 Effect measure: odds ratios ('or') 
 
 Effect estimates:
 
                    or  SE[log[or]]  [95%-CI[or]]
                 -----  -----------  ------------
Crude            1.677       0.0796  [1.435,1.96]
Stratification                                   
  Outcome rates  1.362       0.0805 [1.163,1.595]
  MH             1.419       0.0823 [1.208,1.667]
  Adjusted       1.477       0.1903 [1.017,2.145]
Regression                                       
  Conditional    1.476       0.0832 [1.254,1.737]
  Marginal        1.44       0.0767 [1.239,1.674]
 
 
 Stratum-specific parameter estimates:
 
                          S1    S2    S3    S4    S5
                       ----- ----- ----- ----- -----
  outcome rates 'p0'    0.44  0.53  0.55   0.6  0.66
  outcome rates 'p1'    0.48  0.57  0.58  0.71  0.81
  odds ratio            1.16  1.15  1.16  1.67  2.17
 
 Stratum-specific adjusted parameter estimates:
1.141 1.307 1.183 1.611 2.141
 Stratum-specific weights:
0.2 0.2 0.2 0.2 0.2

Tulosten perusteella voidaan sanoa, että RS-virusinfektio on siis alemman hengitystieinfektion riskitekijä.

Huomioita
Kannattaa muuten huomioida, että tulos eroaa tavanomaisen logistisen regression antamasta tuloksesta, joka on koko aineistolle OR (PCR_RSV) = 1.52 ja kaltaistetullakin aineistolle OR (PCR_RSV) = 1.39. Kirjallisuus (ks.viitteet) antaa osviittaa siihen, miksi näin on.

Edellä mainittujen kaltaistuksen ja osituksen lisäksi PS-pistemäärä voidaan myös lisätä regressiomalliin yhdeksi selittäjäksi. Tämä on helppoja R:n perusfunktioillakin:

# PS-pistemäärät
fit1<-glm(PCR_RSV~SEX+RSVINF+REGION+AGE+ELTATOP+EINZ+EXT, data=pride, family=binomial)
ps<-predict(fit1, type="response")
 
# Malli, joss pistemäärät mukava
fit0<-glm(SEVERE~.+ps, data=pride, family=binomial)
exp(summary(fit0)$coef[2,1])
[1] 1.484668
 
# Malli ilman PS-pistemääriä
fit1<-glm(SEVERE~., data=pride, family=binomial)
exp(summary(fit1)$coef[2,1])
[1] 1.515734

Tämän aineiston tapauksessa kaikkien edellä esiteltyjen tapojen antamat tulokset johtavat samaan johtopäätökseen: RS-virusinfektio altistaa vakavalle alempien hengityselinten tulehdukselle. PS-pistemäärään perustuvan menetelmän etuna on perus-ANCOVA-malliin verrattuna ainakin se, että PS-pistemäärien estimointiin käytettävä malli voi olla hyvin monimutkainen, minkä jälkeen varsinainen analyysiksi sovitettu regressiomalli voi olla paljon yksinkertaisempi, mikä johtaa menetelmän parempaan voimaan (koska vapausasteita säästyy); tällöin PS-pistemäärä toimiikin samaan tapaan kuin PCA: sen tarkoitus on lähinnä pienentää aineiston ulottuvuuksien määrää.

Eräin edellytyksin PS-pistemäärä voi myös helpottaa kausaalisuhteiden analysointia poistamalla havainnoivassa aineistossa olevia harhoja. Se ei kuitenkaan ole maaginen työkalu, vaan kausaalisuhteiden tapauksessa vaatii avukseen myös muuttujien välisten suhteiden tarkkaa pohtimista (Pearl, 11.3).

Kirjallisuutta
Judea Pearl (2000) Causality: Models, Reasoning, and Inference, Cambridge University Press.
Stephen Morgan, Christopher Winship (2007) Counterfactuals and causal inference, Cambridge University Press.
Guido Imbens, Donald Rubin (2014) Causal Inference for statistics, social, and biomedical sciences, Cambridge University Press.


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *