I am trying to match a ~60k observation data set, where the treatment (annual days of sun exposure) is continuous. The data also has several confounders, some of which are continuous and some categorical.

I was trying to use the MatchIt R package to get covariate balancing propensity scores (CBPS) but got an error message saying "The treatment must be a binary variable." Using the CBPS package directly did work and the cobalt package indicates that matching indeed yielded balance. But now I am unsure how to actually match the data.

cbps_out <- CBPS(days_of_sun ~ gender + race + age + state + history_of_cancer,
                 method = "exact", 
                 data = df)

I was looking everywhere online, but there is such little information about matching with continuous treatments. I did find a great Gary King lecture where he advocated for coarsened exact matching (CEM) over propensity score matching and said it can work with continuous treatments if they are first coarsened. But unfortunately I couldn't find any additional information on this either.

If anyone has actually matched on a continuous treatment using either propensity scores or CEM and could share how it's done that would be so helpful.


1 Answer 1


Matching is not well developed for continuous treatments, but weighting is. The CBPS package implements weighting for categorical or continuous treatments using the CBPS method. There are many other weighting methods for continuous treatments implemented in the WeightIt package, including entropy balancing and propensity score weighting using propensity scores estimated from parametric or nonparametric methods. To my knowledge, there aren't comprehensive tutorial articles explaining how to use weighting for continuous treatments, but reading Austin (2019) (ignoring section 2.3.1), Zhu et al. (2015), and Vegetabile et al. (2020) can be helpful.

Note that this is an advanced statistical method that should only be used by those with training in this area. The simplicity of the tools sometimes can make it seem like the method is simple when in fact there are many nuances that need to be accounted for.

  • $\begingroup$ "+1" "This is an advanced statistical method that should only be used by those with training in this area. The simplicity of the tools sometimes can make it seem like the method is simple." $\endgroup$ Commented Aug 23, 2021 at 2:20
  • $\begingroup$ For continuous treatments can you assign treatment dosage = 0 as controls and treatment dosage > 0 as the treatment group? Then conduct stnd propensity score or exact matching followed by an outcome ANCOVA regression including treatment dosage on the matched & balanced data. $\endgroup$
    – RobertF
    Commented May 14, 2023 at 0:33
  • 1
    $\begingroup$ @RobertF (sorry for the delay) This should be its own question. Basically, no; this makes the same assumptions as using usual regression in the sample. You have to ensure the dosage = 1 and dosage = 2 groups are balanced, etc., in order to interpret the dose-response function as causal. Balancing methods for continuous treatment do this by making treatment independent of the covariates. $\endgroup$
    – Noah
    Commented Sep 22, 2023 at 5:05
  • $\begingroup$ Thanks Noah - especially important in my field where dosage (e.g., # of home nursing visits per year) is tied to how sick a patient is (# hospital admissions in year prior to home nursing intervention). $\endgroup$
    – RobertF
    Commented Sep 23, 2023 at 20:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.