Propensity score matching

Set up, run, and review this analysis in Lifescio.

Supported analysis

Logistic regression estimates treatment propensity from baseline covariates. Greedy 1:1 nearest-neighbor matching without replacement uses a caliper measured in standard deviations of logit propensity. The app reports retained pairs, unmatched counts and balance.

Supported scope: Causal interpretation requires measured confounder adjustment, overlap, consistency and aligned treatment/outcome timing. Matching cannot remove unmeasured confounding. Do not include post-treatment variables as if they were baseline confounders.

Open this analysis

Prepare data and configure the analysis

Supply treatment coded 0/1, outcome, then numeric baseline confounders, one person per row. At least 12 rows and four people per treatment group are required. The propensity model uses every confounder column; constant columns are invalid.

Caliper in logit-score SDs limits distance on the logit of the fitted propensity, scaled by its sample standard deviation. This is not a raw probability distance. Matching is greedy 1:1 without replacement, processing treated observations from higher to lower logit scores. It does not optimize all pairs jointly.

Input reference (2 fields)

Enter your data and prespecified choices. Ranges include both limits. For table fields, use cell editing, Paste data, or Import CSV / TSV. Review whether the first imported row contains headings and map the source columns before applying the import. Empty numeric cells are not treated as zero. Open file is for an exported Lifescio analysis JSON file, not a spreadsheet.

InputFormatAllowed rangeGuidance
Treatment, outcome and confoundersTable—

Treatment is 0/1. Continuous or binary outcome. Remaining columns are baseline numeric confounders.

Columns in order: Treatment; Outcome; Age; Covariate.

Caliper in logit-score SDsNumber0.01–3—

Run and review

  1. Give the analysis a descriptive name and review every example value. Record units, data preparation, and planning assumptions in Reproducibility & notes. For simulations, record the seed and replication or sampling settings.
  2. Choose Run analysis. Resolve input errors before interpreting output. In the connected app, a run uses a saved input revision; local preview runs need the page to stay open.
  3. Review Diagnostics for method limitations, warnings, and available numerical checks. A completed run means computation finished; it does not establish that the assumptions fit your study.
  4. Use the Result table selector to inspect each output. Editing inputs does not recalculate existing results: an earlier-input notice means you need to run again to obtain matching results.

Understand the outputs

Treatment effect targets the Matched treated subset. Its confidence interval and bootstrap standard-error cells are intentionally blank: this implementation does not claim a population interval for the data-dependent matching procedure.

Matched pairs identifies original input row numbers and outcome/propensity differences. The reported propensity difference is on the probability scale even though matching uses logit distance. Covariate balance and Overlap and weights show retained-sample balance and effective counts; compare these before interpreting the effect.

Troubleshooting and common mistakes

If fewer than two pairs meet the caliper, inspect overlap and the prespecified design. Widening the caliper may add poor comparisons, so it is not an automatic repair. Near-perfect treatment prediction is rejected because overlap is inadequate.

If balance worsens or many treated people are excluded, review covariates and the target population. Do not treat the missing confidence interval as an export problem. The application supports this specific matching design, not replacement or variable-ratio alternatives.

After correcting inputs, run again and check that the results belong to the new input snapshot. Increasing simulation draws improves numerical precision only; it does not repair invalid data or an unsuitable model.

Save, compare, and export

In the connected app, Save analysis retains the inputs in your account. Run history lets you inspect earlier runs, each with the input revision it used. In local preview, Save analysis downloads an input file instead; download results before leaving the page.

Use Result + inputs for a JSON archive containing the completed result and its inputs, Download CSV for the selected result table, PDF report for a report, and a chart's SVG button for its figure. Table displays round to three decimals; CSV and JSON exports retain calculation precision. Use those values when assessing a result near a decision boundary.

To reopen an archive, select the matching analysis method and choose Open file. Imported inputs start a new draft; a result archive can also display its retained result. It does not attach itself to an existing account analysis or recompute the result. Save or run the imported draft when you want a new account record.