estimate_QoI takes a dataframe already prepared with split IDs, plugin estimates and pseudo-outcomes and calculates the requested quantities of interest (QoIs).

estimate_QoI(data, ...)

Arguments

data

data frame (already prepared with attach_config, make_splits, produce_plugin_estimates and construct_pseudo_outcomes)

...

Unquoted names of moderators to calculate QoIs for.

Details

To see an example analysis, read vignette("experimental_analysis") in the context of an experiment, vignette("experimental_analysis") for an observational study, or vignette("methodological_details") for a deeper dive under the hood.

Examples

library("dplyr")
if(require("palmerpenguins")) {
data(package = 'palmerpenguins')
penguins$unitid = seq_len(nrow(penguins))
penguins$propensity = rep(0.5, nrow(penguins))
penguins$treatment = rbinom(nrow(penguins), 1, penguins$propensity)
cfg <- basic_config() %>% 
add_known_propensity_score("propensity") %>%
add_outcome_model("SL.glm.interaction") %>%
remove_vimp()
attach_config(penguins, cfg) %>%
make_splits(unitid, .num_splits = 4) %>%
produce_plugin_estimates(outcome = body_mass_g, treatment = treatment, species, sex) %>%
construct_pseudo_outcomes(body_mass_g, treatment) %>%
estimate_QoI(species, sex)
}
#> Dropped 11 of 344 rows (3.2%) through listwise deletion.
#> 

#> estimating nuisance models [-----------------------------------] splits: 0 / 4
#> 

#> estimating nuisance models [========>--------------------------] splits: 1 / 4
#> 

#> estimating nuisance models [=================>-----------------] splits: 2 / 4
#> 

#> estimating nuisance models [=========================>---------] splits: 3 / 4
#> 

#> estimating nuisance models [===================================] splits: 4 / 4
#> 
                                                                              
#> 

#> Dropped 11 of 344 rows (3.2%) through listwise deletion.
#> Skipping diagnostic on .pseudo_outcome due to lack of model.
#> # A tibble: 11 × 5
#>    estimand       term                   level                estimate std_error
#>    <chr>          <chr>                  <chr>                   <dbl>     <dbl>
#>  1 MSE            body_mass_g            Control Response      1.21e+5   1.13e+4
#>  2 MSE            body_mass_g            Treatment Response    7.15e+4   7.79e+3
#>  3 SL risk        SL.glm.interaction_All Control Response      1.34e+5   8.04e+3
#>  4 SL risk        SL.glm_All             Control Response      1.20e+5   5.36e+3
#>  5 SL risk        SL.glm.interaction_All Treatment Response    7.25e+4   2.65e+3
#>  6 SL risk        SL.glm_All             Treatment Response    8.05e+4   2.37e+3
#>  7 SL coefficient SL.glm.interaction_All Control Response      8.30e-2   5.91e-2
#>  8 SL coefficient SL.glm_All             Control Response      9.17e-1   5.91e-2
#>  9 SL coefficient SL.glm.interaction_All Treatment Response    8.91e-1   1.55e-2
#> 10 SL coefficient SL.glm_All             Treatment Response    1.09e-1   1.55e-2
#> 11 SATE           NA                     NA                    6.18e+0   3.41e+1