This vignette shows model engines that
DAGassist has been verified to work with and provides
concrete usage examples. The list is illustrative, not exhaustive.
DAGassist is model-agnostic: if an engine accepts a
standard formula + data interface, it will usually
work.
If you want support documented (or added) for an engine not shown here, please open an issue or PR on GitHub.
| Package | Function | 
|---|---|
| estimatr | lm_robust | 
| fixest | feglm | 
| fixest | feols | 
| lfe | felm | 
| lme4 | glmer | 
| lmerTest | lmer | 
| MASS | glm.nb | 
| stats | lm | 
clusters = cat_b, "cat_b", or
~cat_b). DAGassist resolves them within
data.(1 | group)) and fixest FE/IV tails (| fe ...)
in your formula are preserved.DAGassist
breaks if the exposure is missing or mismatched.DAGassist(
    dag = dag_model,
    formula = estimatr::lm_robust(
        ancvs_change_1116 ~ western_belt +
            unemploy_broad + black_popshare + col_popshare +
            indasian_popshare + other_popshare + share_formal +
            share_informal + share_traditional + afrikaans_popshare +
            english_popshare + isindebele_popshare + isixhosa_popshare +
            sepedi_popshare + sesotho_popshare + setswana_popshare +
            signlanguage_popshare + siswati_popshare + tshivenda_popshare +
            xitsonga_popshare +
            latitude + longitude + latitudelongitude,
        data     = df,
        clusters = cat_b)
)DAGassist(
    dag = dag_model2,
    formula = fixest::feglm(
        exc_eq ~ cat4_prevalence_best + nonvprotgovt + v2x_gencs +
            WINGOImputed_fill + UNintervention + majpowintervention + UNwomen + 
            religious + ideolleft + lgt + substantive + v2x_gencl + 
            Krause_wpm_neg + eqgen_binary,
        data = df %>% filter(interstateonly==0, inter_intrastate==0),
        family = binomial("logit"),
        cluster = ~cowcode
    )
)DAGassist(dag=dag_model,
          formula = lfe::felm(
              share_female ~ lag_democracy_stock_poly_95 + lag_v2xcl_rol + 
                  lag_v2xcl_prpty + lag_v2x_rule + lag_v2x_jucon +
                  lag_v2xlg_legcon + lag_v2x_corr + lag_v2clstown + 
                  lag_v2xcs_ccsi + lag_v2xps_party | year + country_isocode | 0 | 
                  country_isocode,
              data=df_cross)
)
DAGassist(
    dag = dag_model,
    formula = lme4::glmer(
        dsu_file ~ specific + lnearnings + distortion + progress + duration +
            eu + japan + mexico + korea + nonoecd + 
            lntotdirx + lnprod + lnpolcon + active301 +
            (1 | isic3_4dig),
        data   = df,
        family = binomial(link = "logit"),
        control = glmerControl(optimizer = "bobyqa"))
)DAGassist(
  dag = dag_model,
  formula = MASS::glm.nb(
    protestcount ~ civilcas_percapita + sigact_percapita + log_pop + shiapop_perc
      kurdpop_perc + urban + totaloilvolx + lognearestcity + feb2011 + nov2010 +
      laggedprotestcount + illiterate + incomequintilelowest + 
      incomequintilehighest + urate + powercontinuous,
    data = iraqevents_timeseries_small,
    control = glm.control(maxit = 50),
    link = "log")
)DAGassist(
  dag = dag_model,
  formula = stats::lm(
    restraint ~ nonvio2 + prime_frat + prime_future + prime_RU + prime_UN + 
      oppose92coup2 + civwar + islamist + supp_sharia + active + conscript + 
      soldier + junoff + senoff + branch2 + train_west + train_russia + 
      train_china + young + sex + edu + urban_area + employed + student + 
      arabic + econ1 + corr1 + dem + supp_opp_parties + continue + protested + 
      preboutef + post_exp + mon + factor(fgov), 
    data=data)
)