Package 'rmpw'

Title: Causal Mediation Analysis Using Weighting Approach
Description: We implement causal mediation analysis using the methods proposed by Hong (2010) and Hong, Deutsch & Hill (2015) <doi:10.3102/1076998615583902>. It allows the estimation and hypothesis testing of causal mediation effects through ratio of mediator probability weights (RMPW). This strategy conveniently relaxes the assumption of no treatment-by-mediator interaction while greatly simplifying the outcome model specification without invoking strong distributional assumptions. We also implement a sensitivity analysis by extending the RMPW method to assess potential bias in the presence of omitted pretreatment or posttreatment covariates. The sensitivity analysis strategy was proposed by Hong, Qin, and Yang (2018) <doi:10.3102/1076998617749561>.
Authors: Xu Qin, Guanglei Hong, and Fan Yang
Maintainer: Xu Qin <[email protected]>
License: GPL-2
Version: 0.0.5
Built: 2024-12-02 06:34:26 UTC
Source: CRAN

Help Index


NEWWS Riverside data

Description

The National Evaluation of Welfare-to-Work Strategies (NEWWS) Riverside study. Immediately preceding the welfare reform nationwide in the mid-1990s, welfare applicants in Riverside, California, were assigned at random to either a labor force attachment (LFA) program (Z = 1) or a control condition (Z = 0) in an experimental study. The LFA program, with the goal of eventually weaning participants from the welfare system, emphasized seeking and securing employment, offered job search services, and provided incentives including a threat of sanctions should one fail to meet the program requirements, while the control group members were guaranteed cash assistance without the requirement for employment.

Value

A list containing

trunc_dep12sm2

Outcome. Maternal depression among participants at the end of two years after treatment.

emp

Mediator. A binary indicator for whether one was employed in any quarter during the 2 years after randomization.

treat

Treatment

emp_prior

Mediator

pqtrunc25

Preference for taking care of family full time rather than working

pqtrunc30

Too many family problems for full-time or part-time job

pqtrunc49

Cannot go school training due to too much to do

pqtrunc50

Sad past week

pqtrunc51

Depressed past week

pqtrunc52

Blues past week

pqtrunc53

Lonely past week

hispanic

Hispanic = 1; otherwise = 0

nevmar

Never married = 1; otherwise = 0

nohsdip

No high school diploma or GED = 1; otherwise = 0

AFDC3660

On AFDC 36 of past 60 months = 1; otherwise = 0

AFDC0_Y1

Ever in a situation of not receiving welfare during the first year after randomization = 1; otherwise = 0


Causal Mediation Analysis Using Weighting Approach

Description

Causal Mediation Analysis Using Weighting Approach

Usage

rmpw(data, treatment, mediator, outcome, propensity_x, outcome_x, decomposition)

Arguments

data

The data set for analysis.

treatment

The name of the treatment variable (string).

mediator

The name of the mediator variable (string).

outcome

The name of the outcome variable (string).

propensity_x

A vector of variable names (string) of pretreatment confounders, which will be included in the propensity score model.

outcome_x

A vector of variable names (string) of pretreatment confounders, which will be included in the outcome model.

decomposition

Type of decomposition. When decomposition = 1, the total treatment effect will be decomposed into pure direct effect (DE.0), total and pure indirect effect (IE.1 and IE.0), and natural treatment-by-mediator interaction effect (IE.1 - IE.0). When decomposition = 2, the total treatment effect will be decomposed into pure indirect effect (IE.0), total and pure direct effect (DE.1 and DE.0), and natural treatment-by-mediator interaction effect (DE.1 - DE.0).

Value

A list contains the estimates of the causal effects and the coefficients of the pretreatment covariates.

Author(s)

Xu Qin and Guanglei Hong

References

Hong, G., Deutsch, J., & Hill, H. D. (2015). Ratio-of-mediator-probability weighting for causal mediation analysis in the presence of treatment-by-mediator interaction. Journal of Educational and Behavioral Statistics, 40 (3), 307-340. doi:10.3102/1076998615583902

Examples

data(Riverside)
rmpw(data = Riverside, treatment = "treat", mediator = "emp", outcome = "trunc_dep12sm2",
    propensity_x = c("emp_prior", "pqtrunc50", "pqtrunc51", "pqtrunc52", "pqtrunc53",
        "pqtrunc30", "hispanic", "pqtrunc49", "nevmar"), outcome_x = c("emp_prior",
        "pqtrunc50", "pqtrunc51", "pqtrunc52", "pqtrunc53", "pqtrunc30", "hispanic",
        "pqtrunc49", "nevmar"), decomposition = 0)
rmpw(data = Riverside, treatment = "treat", mediator = "emp", outcome = "trunc_dep12sm2",
    propensity_x = c("emp_prior", "pqtrunc50", "pqtrunc51", "pqtrunc52", "pqtrunc53",
        "pqtrunc30", "hispanic", "pqtrunc49", "nevmar"), outcome_x = c("emp_prior",
        "pqtrunc50", "pqtrunc51", "pqtrunc52", "pqtrunc53", "pqtrunc30", "hispanic",
        "pqtrunc49", "nevmar"), decomposition = 1)
rmpw(data = Riverside, treatment = "treat", mediator = "emp", outcome = "trunc_dep12sm2",
    propensity_x = c("emp_prior", "pqtrunc50", "pqtrunc51", "pqtrunc52", "pqtrunc53",
        "pqtrunc30", "hispanic", "pqtrunc49", "nevmar"), outcome_x = c("emp_prior",
        "pqtrunc50", "pqtrunc51", "pqtrunc52", "pqtrunc53", "pqtrunc30", "hispanic",
        "pqtrunc49", "nevmar"), decomposition = 2)

Sensitivity Analysis for Causal Mediation Analysis Using Weighting Approach

Description

This function generates a sensitivity analysis table. When only the mediator-outcome relationship is possibly confounded, the function computes the effect size of actual bias associated with each omitted pretreatment or posttreatment covariate or their combinations; it also computes the effect size of potential bias associated with an unmeasured confounder comparable to an observed pretreatment confounder that was already adjusted for. When the treatment assignment is also subjected to hidden selection bias, the function additionally assesses potential confounding of each omitted or unmeasured pretreatment covariate that may confound both the mediator-outcome relationship and the treatment assignment.

Usage

sensitivity(est.ie, est.de, est.se.ie, est.se.de, outcome, mediator, treatment, 
    X, X.omit.pre = NULL, X.omit.post = NULL, X.unmeasure.pre = NULL, m.scale, 
    t.rand = TRUE, t.confound = FALSE, data)

Arguments

est.ie

The effect size of the original natural indirect effect (NIE) estimate obtained from an RMPW analysis.

est.de

The effect size of the original natural direct effect (NDE) estimate obtained from an RMPW analysis.

est.se.ie

The estimated SE of the effect size of the NIE estimate.

est.se.de

The estimated SE of the effect size of the NDE estimate.

outcome

The name of the outcome variable (string).

mediator

The name of the mediator variable (string).

treatment

The name of the treatment variable (string).

X

A vector of names of the observed pretreatment covariates already adjusted for in the original analysis (string).

X.omit.pre

An optional vector of names of the observed pretreatment covariates that are omitted from the original analysis and may confound the mediator-outcome relationship (string). The default is NULL.

X.omit.post

An optional vector of names of the observed pretreatment covariates that are omitted from the original analysis and may confound the mediator-outcome relationship and preceding the focal mediator (string). The default is NULL. X, X.omit.pre, and X.omit.post are mutually exclusive.

X.unmeasure.pre

An optional vector of names of the observed pretreatment confounders that are already adjusted for in the original analysis and are comparable to some potential unmeasured confounders (String). X.unmeasure.pre is a subset of X.

m.scale

Scale of the mediator ("discrete" or "continuous").

t.rand

A logical value. If TRUE, treatment is randomized. If FALSE, treatment is not randomized. The default is TRUE.

t.confound

A logical value. If TRUE, X.omit.pre may also confound the treatment-mediator or treatment-outcome relationships in addition to confounding the mediator-outcome relationship. The default is FALSE. If X.omit.pre = NULL or z.rand = TRUE, then z.confound = FALSE.

data

A data frame containing the variables in the model.

Value

A sensitivity analysis table that contains rho, sigma, the effect size of the actual bias, the effect size of the modified estimate, and the effect size of the modified confidence interval, associated with each omitted covariate or each combination of omitted covariates, for both NIE and NDE.

Author(s)

Xu Qin, Guanglei Hong, and Fan Yang

References

Hong, G., Qin, X., & Yang, F. (in press). Weighting-based sensitivity analysis in causal mediation studies. Journal of Educational and Behavioral Statistics. doi:10.3102/1076998617749561

Examples

data(Riverside)
omit.bias = sensitivity(est.ie = -0.111, est.de = 0.158, est.se.ie = 0.059,
    est.se.de = 0.108, outcome = "trunc_dep12sm2", mediator = "emp", treatment = "treat",
    X = c("emp_prior", "pqtrunc50", "pqtrunc51", "pqtrunc52", "pqtrunc53", "pqtrunc30",
        "hispanic", "pqtrunc49", "nevmar"), X.omit.pre = c("AFDC3660", "pqtrunc25",
        "nohsdip"), X.omit.post = "AFDC0_Y1", m.scale = "discrete", t.rand = TRUE,
    t.confound = FALSE, data = Riverside)

Sensitivity Analysis Plot for Causal Mediation Analysis Using Weighting Approach

Description

This function generates sensitivity analysis plots, one for natural direct effect (NDE) and one for natural indirect effect (NIE). The solid curves indicate amounts of bias that may lead to a qualitative change in the conclusion of statistical inference. The number at the end of each curve denotes the bias value represented by that curve. The bold dashed curve on each side corresponds to a threshold value of bias that is just great enough to start changing the analytic conclusion. Each star corresponds to an observed covariate or a set of covariates that, if omitted, would contribute a bias great enough to change the analytic conclusion; each triangle corresponds to a covariate (or a set of covariates), the omission of which would be inconsequential. These covariates are listed in the sensitivity analysis table in the output of sensitivity(). This function is not applicable when there are omitted or unmeasured confounders for the treatment assignment. This is because, in such cases, there are as many as four sensitivity parameters, difficult to represent in a single plot.

Usage

sensitivity.plot(est.ie, est.de, est.se.ie, est.se.de, X.omit.bias, effect, type)

Arguments

est.ie

The effect size of the original natural indirect effect (NIE) estimate obtained from an RMPW analysis.

est.de

The effect size of the original natural direct effect (NDE) estimate obtained from an RMPW analysis.

est.se.ie

The estimated SE of the effect size of the NIE estimate.

est.se.de

The estimated SE of the effect size of the NDE estimate.

X.omit.bias

The bias table returned by sensitivity()

effect

If effect = "NIE", returns sensitivity plot for the natural indirect effect; If effect = "NDE", returns sensitivity plot for the natural direct effect

type

If type = "unmeasured", returns sensitivity plot for unmeasured covariates that are comparable to observed pretreatment covariates; if type = "omitted", returns sensitivity plot for omitted covariates. If in sensitivity(), X.unmeasure.pre = NULL, then here type can only be "omitted". If in sensitivity(), X.omit.pre = NULL and X.omit.post = NULL, then here type can only be "unmeasured".

Value

A graphical display of the sensitivity analysis results returned by sensitivity().

Author(s)

Xu Qin, Guanglei Hong, and Fan Yang

References

Hong, G., Qin, X., & Yang, F. (in press). Weighting-based sensitivity analysis in causal mediation studies. Journal of Educational and Behavioral Statistics. doi:10.3102/1076998617749561

Examples

data(Riverside)
omit.bias = sensitivity(est.ie = -0.111, est.de = 0.158, est.se.ie = 0.059,
    est.se.de = 0.108, outcome = "trunc_dep12sm2", mediator = "emp", treatment = "treat",
    X = c("emp_prior", "pqtrunc50", "pqtrunc51", "pqtrunc52", "pqtrunc53", "pqtrunc30",
        "hispanic", "pqtrunc49", "nevmar"), X.omit.pre = c("AFDC3660", "pqtrunc25",
        "nohsdip"), X.omit.post = "AFDC0_Y1", m.scale = "discrete", t.rand = TRUE,
    t.confound = FALSE, data = Riverside)
sensitivity.plot(est.ie = -0.111, est.de = 0.158, est.se.ie = 0.059, est.se.de = 0.108,
    X.omit.bias = omit.bias, effect = "NIE", type = "omitted")
sensitivity.plot(est.ie = -0.111, est.de = 0.158, est.se.ie = 0.059, est.se.de = 0.108,
    X.omit.bias = omit.bias, effect = "NDE", type = "omitted")