Propensity score matching

대조군과 실험군의 차이를 최대한 줄이기 위하여 사용하는 방법 중 하나. 다른 방법이 더 있는지는 모르겠으나 통계를 잘 모르는 사람이 하기에 쉬운 방법은 맞을 것이다. 물론, 처음에 진입 장벽은 존재한다. 다음 주 부터 적어도 이 기법은 확실히 이용해야 하는 절박한 마음에 공부를 해보았다.

https://doi.org/10.17085/apm.2016.11.2.130
대한마취과학회 학술지에 투고된 내용이다. 실전에 맞게 필요한 내용만 편집하였다. 🙂

  • PSM에서 score를 구해야 한다. 원래는 CART기법을 이용한 것 같으나, 쉽게 적용하는 방법은 이항(binary) 로지스틱 분석이다.
  • score를 구하는 방법을 알지 못해도 괜찮은 경우가 더 많다. R의 ‘MatchIt’ 패키지를 이용하는데, 통계 분석이 되는 곳은 이 패키지 정도는 반입이 되어 있거나 설치가 가능한 상태이다.
  • score를 구할 수 있으면 나중에 설명할 IPW (inverse probability weighting) 기법에 필요한 weight를 별도의 패키지 없이도 시도해 볼 수 있다.
  • standardized mean difference가 줄어들면 덜 이질적이라고 할 수 있다. 0.1미만이면 관습적으로 차이가 없다고 받아들여 질 수 있다고 한다. 다만, 음수값이어도 유효한지는 모르겠다.

‘MatchIt’ 패키지를 설치하면 이용할 수 있는 lalonde 데이터를 기준으로 설명해 본다. 실제 자료 이용할 경우에는 결과 변수는 0과 1로 설정해 두는게 좋다. 다음과 같이 기본적 옵션으로 실행할 수 있다.

m.out1 <- matchit(treat ~ age + educ + race + nodegree +
                   married + re74 + re75, data = lalonde)
summary(m.out1)

이용해 볼 수 있는 옵션으로는 optimal matching 여부, N:N matching 에서 비율, exactm caliper 정도가 있다. 기본 옵션으로 matching 시켰을 때 standardized mean difference가 별로 줄어들지 않는 것이 있다면 좀 더 튜닝하는게 좋을 것 같다.

매칭 후 해당 자료만 추출하여 추가 분석을 하려면 match.data() 를 이용한다.

match.data(m.out1)