The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

DAGassist

R-CMD-check pages-build-deployment CRAN status Lifecycle: maturing

An all-in-one DAG-driven robustness check. Generate publication-quality reports that classify variables by causal role, compare the significance of DAG-derived models, and explicitly target estimands.


What DAGassist does:

Installation

You can install DAGassist with:

install.packages("DAGassist")
library(DAGassist) 

Or you can install the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("grahamgoff/DAGassist")

Example

Simply provide a dagitty() object and a regression call and DAGassist will create a report classifying variables by causal role, and compare the specified regression to minimal and canonical models.

DAGassist(dag = dag_model, 
          formula = feols(Y ~ X + M + C + Z + A + B, data = df),
          estimand = c("SATE", "SACDE")
)
#> DAGassist Report: 
#> 
#> Roles:
#> variable  role        Exp.  Out.  conf  med  col  dOut  dMed  dCol  dConfOn  dConfOff  NCT  NCO
#> X         exposure    x                                                                        
#> Y         outcome           x                                                                  
#> Z         confounder              x                                                            
#> M         mediator                      x                                                      
#> C         collider                           x    x     x                                      
#> A         nco                                                                               x  
#> B         nco                                                                               x  
#> 
#>  (!) Bad controls in your formula: {M, C}
#> Minimal controls 1: {Z}
#> Canonical controls: {A, B, Z}
#> 
#> Formulas:
#>   original:  Y ~ X + M + C + Z + A + B
#> 
#> Model comparison:
#> 
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> |          | Original  | Minimal 1 | Minimal 1 (SATE) | Canonical | Canonical (SATE) | Raw (SACDE) | Weighted (SACDE) |
#> +==========+===========+===========+==================+===========+==================+=============+==================+
#> | X        | 0.452***  | 1.256***  | 1.084***         | 1.256***  | 1.097***         | 0.719***    | 0.620***         |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> |          | (0.032)   | (0.027)   | (0.018)          | (0.026)   | (0.018)          | (0.023)     | (0.037)          |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> | M        | 0.514***  |           |                  |           |                  |             |                  |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> |          | (0.021)   |           |                  |           |                  |             |                  |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> | C        | 0.343***  |           |                  |           |                  |             |                  |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> |          | (0.019)   |           |                  |           |                  |             |                  |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> | Z        | 0.249***  | 0.311***  |                  | 0.309***  |                  | 0.294***    | 0.440***         |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> |          | (0.027)   | (0.034)   |                  | (0.033)   |                  | (0.029)     | (0.043)          |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> | A        | 0.152***  |           |                  | 0.187***  |                  | 0.180***    | 0.188***         |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> |          | (0.021)   |           |                  | (0.026)   |                  | (0.023)     | (0.036)          |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> | B        | -0.069*** |           |                  | -0.057*   |                  | -0.078***   | -0.099**         |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> |          | (0.021)   |           |                  | (0.026)   |                  | (0.023)     | (0.038)          |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> | Num.Obs. | 2000      | 2000      | 2000             | 2000      | 2000             | 2000        | 2000             |
#> +----------+-----------+-----------+------------------+-----------+------------------+-------------+------------------+
#> | R2       | 0.818     | 0.706     | 0.655            | 0.714     | 0.664            |             |                  |
#> +==========+===========+===========+==================+===========+==================+=============+==================+
#> | + p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001                                                                   |
#> +==========+===========+===========+==================+===========+==================+=============+==================+ 
#> 
#> Weight diagnostics:
#>   legend: w range reports the min-max weights by group; ESS is kish effective sample size.
#>   Minimal 1 (SATE): w range=0.024..371.8 | ESS (weighted)=56.15 [LOW_ESS,EXTREME_W]
#>   Canonical (SATE): w range=0.02283..339.7 | ESS (weighted)=64.48 [LOW_ESS,EXTREME_W]
#> 
#> Roles legend: Exp. = exposure; Out. = outcome; CON = confounder; MED = mediator; COL = collider; dOut = descendant of outcome; dMed  = descendant of mediator; dCol = descendant of collider; dConfOn = descendant of a confounder on a back-door path; dConfOff = descendant of a confounder off a back-door path; NCT = neutral control on treatment; NCO = neutral control on outcome

Optionally, users can generate visual output via dotwhisker plots:

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.