external-link R functions

trinetx.propensity_score_matching API documentation

Function propensity_score_matching

def propensity_score_matching(scores_df, caliper=0.1) ‑> sql.dataframe.DataFrame

Description


The propensity_score_matching function matches patients in two cohorts based on their propensity scores to create two balanced cohorts.

Inputs


  • scores - user defined table with 3 mandatory columns:

    • patient_id

    • cohort

    • propensity_score

  • optional arguments:

    • caliper - a user-specified caliper for matching; default is 0.10 SD

Returns


  • Upon running the propensity_score function, patients are matched based on propensity scores to create a 1:1 ratio between cohorts using:

    • Nearest neighbor (greedy) without replacement

    • Default caliper of 0.10 SD or user-defined caliper if entered as an input

    • Cohorts are randomly shuffled prior to matching

  • Returns a table of matched patients with the following columns

    • patient_id

    • cohort (returns whatever value was input)

    • propensity_score

Example


scores

| patient_id  | cohort   | propensity_score  |
|-------------|----------|-------------------|
| 1           | 1        | 0.30              |
| 2           | 1        | 0.55              |
| 3           | 1        | 0.92              |
| 1           | 2        | 0.89              |
| 2           | 2        | 0.74              |
| 3           | 2        | 0.21              |

matched = propensity_score_matching(scores)

| patient_id  | cohort   | propensity_score  |
|-------------|----------|-------------------|
| 1           | 1        | 0.30              |
| 7           | 2        | 0.30              |
| 2           | 1        | 0.55              |
| 4           | 2        | 0.56              |
| 3           | 1        | 0.92              |
| 1           | 2        | 0.89              |