causalmpt: Causal Mplus Trees

View source: R/causalmpt.R

causalmptR Documentation

Causal Mplus Trees

Description

Uses Mplus Trees to match on structural equation model parameters in matching subsample. Then estimates Conditional Average Treatment Effects (CATEs) in holdout estimation subsample.

Usage

causalmpt(
  script,
  data,
  rPartFormula,
  group = ~id,
  treat,
  outcome,
  est.samp = 0.2,
  ...
)

Arguments

script

An MplusAutomation script file

data

Dataset that is specified in the script

rPartFormula

Formula of the form ~ variable names

group

id variable. If not specified an id variable is created for each row

treat

Treatment variable

outcome

Univariate outcome of interest (dependent variable in mean comparison tests)

est.samp

Proportion of sample to be used as holdout sample (estimation subsample)

...

Other arguments to MplusTrees for building Mplus Tree

Details

See documentation for MplusTrees() for further information on tree building process. Takes terminal nodes from Mplus Tree and considers them "matched". Splits estimation subsample into groups defined by covariate pattern in terminal nodes from Mplus Tree. Performs t tests in each group with treat as independent variable and outcome as dependent variable to estimate CATEs. Also performs ANOVA to determine if treatment effect differs by group (interaction).

Value

An object of class 'causalmpt'. Tree structure drawn from MplusTrees(). CATEs estimated in estimation (holdout) subsample. Provides results of t tests to estimate CATEs in each group and ANOVA to examine group differences in treatment effect.

Author(s)

Sarfaraz Serang

References

Serang, S., & Sears, J. (2021). Tree-based matching on structural equation model parameters. Behavioral Data Science, 1, 31-53.

Examples

## Not run: 
library(lavaan)

script = mplusObject(
   TITLE = "Causal Mplus Trees Example",
   MODEL = "f1 BY x1-x3;",
   usevariables = c('x1','x2','x3'),
   rdata = HolzingerSwineford1939)

fit.cmpt = causalmpt(script, HolzingerSwineford1939, group=~id,
   rPartFormula=~school+grade,
   control=rpart.control(minsplit=100, minbucket=100, cp=.01),
   treat="sex", outcome="x4")
fit.cmpt

## End(Not run)

MplusTrees documentation built on Oct. 11, 2022, 5:07 p.m.