sensemakr | R Documentation |
This function performs sensitivity analysis to omitted variables as discussed in Cinelli and Hazlett (2020). It returns an object of
class sensemakr
with several pre-computed sensitivity statistics for reporting.
After running sensemakr
you may directly use the plot
, print
and summary
methods in the returned object.
sensemakr(...)
## S3 method for class 'lm'
sensemakr(
model,
treatment,
benchmark_covariates = NULL,
kd = 1,
ky = kd,
q = 1,
alpha = 0.05,
r2dz.x = NULL,
r2yz.dx = r2dz.x,
bound_label = "Manual Bound",
reduce = TRUE,
...
)
## S3 method for class 'fixest'
sensemakr(
model,
treatment,
benchmark_covariates = NULL,
kd = 1,
ky = kd,
q = 1,
alpha = 0.05,
r2dz.x = NULL,
r2yz.dx = r2dz.x,
bound_label = "Manual Bound",
reduce = TRUE,
...
)
## S3 method for class 'formula'
sensemakr(
formula,
method = c("lm", "feols"),
vcov = "iid",
data,
treatment,
benchmark_covariates = NULL,
kd = 1,
ky = kd,
q = 1,
alpha = 0.05,
r2dz.x = NULL,
r2yz.dx = r2dz.x,
bound_label = "",
reduce = TRUE,
...
)
## S3 method for class 'numeric'
sensemakr(
estimate,
se,
dof,
treatment = "D",
q = 1,
alpha = 0.05,
r2dz.x = NULL,
r2yz.dx = r2dz.x,
bound_label = "manual_bound",
r2dxj.x = NULL,
r2yxj.dx = r2dxj.x,
benchmark_covariates = "manual_benchmark",
kd = 1,
ky = kd,
reduce = TRUE,
...
)
... |
arguments passed to other methods. |
model |
An |
treatment |
A character vector with the name of the treatment variable of the model. |
benchmark_covariates |
The user has two options: (i) character vector of the names of covariates that will be used to bound the plausible strength of the unobserved confounders. Each variable will be considered separately; (ii) a named list with character vector names of covariates that will be used, as a group, to bound the plausible strength of the unobserved confounders. The names of the list will be used for the benchmark labels. Note: for factor variables with more than two levels, you need to provide the name of each level as encoded in the |
kd |
numeric vector. Parameterizes how many times stronger the confounder is related to the treatment in comparison to the observed benchmark covariate.
Default value is |
ky |
numeric vector. Parameterizes how many times stronger the confounder is related to the outcome in comparison to the observed benchmark covariate.
Default value is the same as |
q |
percent change of the effect estimate that would be deemed problematic. Default is |
alpha |
significance level. |
r2dz.x |
hypothetical partial R2 of unobserved confounder Z with treatment D, given covariates X. |
r2yz.dx |
hypothetical partial R2 of unobserved confounder Z with outcome Y, given covariates X and treatment D. |
bound_label |
label to bounds provided manually in |
reduce |
should the bias adjustment reduce or increase the
absolute value of the estimated coefficient? Default is |
formula |
an object of the class |
method |
the default is |
vcov |
the variance/covariance used in the estimation when using |
data |
data needed only when you pass a formula as first parameter. An object of the class |
estimate |
Coefficient estimate. |
se |
standard error of the coefficient estimate. |
dof |
residual degrees of freedom of the regression. |
r2dxj.x |
partial R2 of covariate Xj with the treatment D (after partialling out the effect of the remaining covariates X, excluding Xj). |
r2yxj.dx |
partial R2 of covariate Xj with the outcome Y (after partialling out the effect of the remaining covariates X, excluding Xj). |
An object of class sensemakr
, containing:
info
A data.frame
with the general information of the analysis, including the formula used, the name of the treatment variable, parameter values such as q
, alpha
, and whether the bias is assumed to reduce the current estimate.
sensitivity_stats
A data.frame
with the sensitivity statistics for the treatment variable, as computed by the function sensitivity_stats
.
bounds
A data.frame
with bounds on the strength of confounding according to some benchmark covariates, as computed by the function ovb_bounds
.
Cinelli, C. and Hazlett, C. (2020), "Making Sense of Sensitivity: Extending Omitted Variable Bias." Journal of the Royal Statistical Society, Series B (Statistical Methodology).
The function sensemakr
is a convenience function. You may use the other sensitivity functions of the package directly, such as the functions for sensitivity plots
(ovb_contour_plot
, ovb_extreme_plot
) the functions for computing bias-adjusted estimates and t-values (adjusted_estimate
, adjusted_t
),
the functions for computing the robustness value and partial R2 (robustness_value
, partial_r2
), or the functions for bounding the strength
of unobserved confounders (ovb_bounds
), among others.
# loads dataset
data("darfur")
# runs regression model
model <- lm(peacefactor ~ directlyharmed + age + farmer_dar + herder_dar +
pastvoted + hhsize_darfur + female + village, data = darfur)
# runs sensemakr for sensitivity analysis
sensitivity <- sensemakr(model, treatment = "directlyharmed",
benchmark_covariates = "female",
kd = 1:3)
# short description of results
sensitivity
# long description of results
summary(sensitivity)
# plot bias contour of point estimate
plot(sensitivity)
# plot bias contour of t-value
plot(sensitivity, sensitivity.of = "t-value")
# plot bias contour of lower limit of CI
plot(sensitivity, sensitivity.of = "lwr")
# plot bias contour of upper limit of CI
plot(sensitivity, sensitivity.of = "upr")
# plot extreme scenario
plot(sensitivity, type = "extreme")
# latex code for sensitivity table
ovb_minimal_reporting(sensitivity)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.