Learn R Programming

robmed (version 0.6.0)

fit_mediation: (Robustly) fit a mediation model

Description

(Robustly) estimate the effects in a mediation model.

Usage

fit_mediation(object, ...)

# S3 method for formula fit_mediation(formula, data, ...)

# S3 method for default fit_mediation(object, x, y, m, covariates = NULL, method = c("regression", "covariance"), robust = TRUE, median = FALSE, control = NULL, ...)

Arguments

object

the first argument will determine the method of the generic function to be dispatched. For the default method, this should be a data frame containing the variables.

additional arguments to be passed down. For the default method, this can be used to specify tuning parameters directly instead of via control.

formula

an object of class "formula" (or one that can be coerced to that class): a symbolic description of the model to be fitted. Hypothesized mediator variables should be wrapped in a call to m() (see examples), and any optional control variables should be wrapped in a call to covariates().

data

for the formula method, a data frame containing the variables.

x

a character string, an integer or a logical vector specifying the column of object containing the independent variable.

y

a character string, an integer or a logical vector specifying the column of object containing the dependent variable.

m

a character, integer or logical vector specifying the columns of object containing the hypothesized mediator variables.

covariates

optional; a character, integer or logical vector specifying the columns of object containing additional covariates to be used as control variables.

method

a character string specifying the method of estimation. Possible values are "regression" (the default) to estimate the effects via regressions, or "covariance" to estimate the effects via the covariance matrix. Note that the effects are always estimated via regressions if more than one hypothesized mediator is specified or if control variables are supplied.

robust

a logical indicating whether to robustly estimate the effects (defaults to TRUE). For estimation via regressions (method = "regression"), this can also be a character string, with "MM" specifying the MM-estimator of regression, and "median" specifying median regression.

median

deprecated. This argument will be removed in future versions. Use robust = "median" for median regression.

control

a list of tuning parameters for the corresponding robust method. For robust regression (method = "regression", and robust = TRUE or robust = "MM"), a list of tuning parameters for lmrob() as generated by reg_control(). For Huberized covariance matrix estimation (method = "covariance" and robust = TRUE), a list of tuning parameters for cov_Huber() as generated by cov_control(). No tuning parameters are necessary for median regression (method = "regression" and robust = "median").

Value

An object inheriting from class "fit_mediation" (class "reg_fit_mediation" if method = "regression" or "cov_fit_mediation" if method = "covariance") with the following components:

a

a numeric vector containing the point estimates of the effect of the independent variable on the proposed mediator variables.

b

a numeric vector containing the point estimates of the direct effect of the proposed mediator variables on the dependent variable.

direct

numeric; the point estimate of the direct effect of the independent variable on the dependent variable.

total

numeric; the point estimate of the total effect of the independent variable on the dependent variable.

fit_mx

an object of class "lmrob" or "lm" containing the estimation results from the regression of the proposed mediator variable on the independent variable, or a list of such objects in case of more than one hypothesized mediator (only "reg_fit_mediation").

fit_ymx

an object of class "lmrob" or "lm" containing the estimation results from the regression of the dependent variable on the proposed mediator and independent variables (only "reg_fit_mediation").

fit_yx

an object of class "lm" containing the estimation results from the regression of the dependent variable on the independent variable (only "reg_fit_mediation" and if robust is FALSE).

cov

an object of class "cov_Huber" or "cov_ML" containing the covariance matrix estimates (only "cov_fit_mediation").

x, y, m, covariates

character vectors specifying the respective variables used.

data

a data frame containing the independent, dependent and proposed mediator variables, as well as covariates.

robust

either a logical indicating whether the effects were estimated robustly, or one of the character strings "MM" and "median" specifying the type of robust regressions.

control

a list of tuning parameters used (if applicable).

Details

With method = "regression", and robust = TRUE or robust = "MM", the effects are computed via the robust MM-estimator of regression from lmrob(). This is the default behavior.

With method = "regression" and robust = "median", the effects are estimated via median regressions with rq(). Unlike the robust MM-regressions above, median regressions are not robust against outliers in the explanatory variables.

With method = "covariance" and robust = TRUE, the effects are estimated based on a Huber M-estimator of location and scatter. Note that this covariance-based approach is less robust than the approach based on robust MM-regressions described above.

References

Alfons, A., Ates, N.Y. and Groenen, P.J.F. (2018) A robust bootstrap test for mediation analysis. ERIM Report Series in Management, Erasmus Research Institute of Management. URL https://hdl.handle.net/1765/109594.

Yuan, Y. and MacKinnon, D.P. (2014) Robust mediation analysis based on median regression. Psychological Methods, 19(1), 1--20.

Zu, J. and Yuan, K.-H. (2010) Local influence and robust procedures for mediation analysis. Multivariate Behavioral Research, 45(1), 1--44.

See Also

test_mediation()

lmrob(), lm(), cov_Huber(), cov_ML()

Examples

Run this code
# NOT RUN {
data("BSG2014")

# to reproduce results in paper
RNGversion("3.5.3")
seed <- 20150601

# formula interface
set.seed(seed)
fit1 <- fit_mediation(TeamCommitment ~ m(TaskConflict) + ValueDiversity,
                      BSG2014)
test1 <- test_mediation(fit1)
summary(test1)

# default method
set.seed(seed)
fit2 <- fit_mediation(BSG2014,
                      x = "ValueDiversity",
                      y = "TeamCommitment",
                      m = "TaskConflict")
test2 <- test_mediation(fit2)
summary(test2)

# }

Run the code above in your browser using DataLab