Calculates averages of covariates by compliance group in a 2^K factorial setting.

compliance_profile(formula, data, subset)

Arguments

formula

one-sided formula to indicate the treatment assignment, treatment uptake, and covariates. The right-hand side of the formula should have three components separated by the | symbol, with the first component containing the K binary treatment variables (treatment assignment), the second component containing the K binary instruments associated with each treatment variable (treatment uptake), and the third giving the covariates to be included in the profile. The order of the variables in the first two parts of the formula must match.

data

a data.frame on which to apply the formula.

subset

subset of the data to pass to estimation.

Value

A list with two objects:

raw_table

a data.frame whose rows represent the covariates and whose columns represent the different compliance groups. Each entry is the estimated mean of the covariate for that compliance group.

std_table

a data.frame similarly structured to raw_table but with the standardized difference between the compilance group means and the overall means in place of the raw means.

References

Matthew Blackwell and Nicole Pashley (2021) "Noncompliance in Factorial Experiments." Working paper.

Author

Matthew Blackwell

Examples

data(newhaven) cov_prof <- compliance_profile(~ inperson + phone | inperson_rand + phone_rand | age + maj_party + turnout_96, data = newhaven) cov_prof
#> $raw_table #> term overall inperson phone inperson:phone #> 1 age 49.0173656 56.3512346 61.7818218 48.6963536 #> 2 maj_party 0.7298688 0.7943939 0.7470757 0.6262926 #> 3 turnout_96 0.4543350 0.4893304 0.6148287 0.6951197 #> #> $std_table #> term overall inperson phone inperson:phone #> 1 age 49.0173656 0.36819497 0.64083618 -0.01611632 #> 2 maj_party 0.7298688 0.14530850 0.03874941 -0.23325020 #> 3 turnout_96 0.4543350 0.07028004 0.32231383 0.48355935 #>