tests/testthat/test-bigModelsAndIntegration.R

test_that("big models are okay", {
  graph2 = dag_create() %>%
    dag_node("Number of Signups","k",
             rhs = binomial(nTrials,theta),
             data = gymDF$nSigned) %>%
    dag_node("Signup Probability","theta",
             child = "k",
             rhs = 1 / (1+exp(-y))) %>%
    dag_node("Number of Trials","nTrials",
             child = "k",
             data = gymDF$nTrialCustomers) %>%
    dag_node("Linear Predictor","y",
             rhs = alpha + beta * x,
             child = "theta") %>%
    dag_node("Yoga Stretch Flag","x",
             data = gymDF$yogaStretch,
             child = "y") %>%
    dag_node("Gym Intercept","alpha",
             rhs = normal(mu_alpha,sd_alpha),
             child = "y") %>%
    dag_node("Gym Yoga Slope Coeff","beta",
             rhs = normal(mu_beta,sd_beta),
             child = "y") %>%
    dag_node("Avg Crossfit Intercept","mu_alpha",
             rhs = normal(-1,1.5),
             child = "alpha") %>%
    dag_node("Avg Crossfit Yoga Slope","mu_beta",
             rhs = normal(0,0.75),
             child = "beta") %>%
    dag_node("SD Crossfit Intercept","sd_alpha",
             rhs = uniform(0,3),
             child = "alpha") %>%
    dag_node("SD Crossfit Yoga Slope","sd_beta",
             rhs = uniform(0,1.5),
             child = "beta") %>%
    dag_plate("Gym","j",
              nodeLabels = c("alpha","beta"),
              data = gymDF$gymID,
              addDataNode = TRUE) %>%
    dag_plate("Observation","i",
              nodeLabels = c("k","x","j",
                             "nTrials","theta","y"))
  expect_equal(NROW(graph2$nodes_df), 12)
  renderGraph = graph2 %>% dag_render(shortLabel = 35, wrapWidth = 22)
  expect_type(renderGraph, "list")
  numpyroOut = graph2 %>% dag_numpyro(mcmc = FALSE)
  expect_type(numpyroOut, "character")
})

Try the causact package in your browser

Any scripts or data that you put into this service are public.

causact documentation built on Sept. 8, 2023, 5:46 p.m.