catenets.experiment_utils.simulation_utils module

Simulation utils, allowing to flexibly consider different DGPs

get_multivariate_normal_params(m: int, correlated: bool = False) Tuple[numpy.ndarray, numpy.ndarray]
get_set_normal_covariates(m: int, n: int, correlated: bool = False) numpy.ndarray
mu0_AISTATS(X: numpy.ndarray, n_w: int = 0, n_c: int = 0, n_o: int = 0, scale: bool = False) numpy.ndarray
mu0_hg(X: numpy.ndarray, n_w: int = 0, n_c: int = 0, n_o: int = 0) numpy.ndarray
mu1_AISTATS(X: numpy.ndarray, n_w: int = 0, n_c: int = 0, n_o: int = 0, n_t: int = 0, mu_0: Optional[numpy.ndarray] = None, nonlinear: int = 2, withbase: bool = True, scale: bool = False) numpy.ndarray
mu1_additive(X: numpy.ndarray, n_w: int = 0, n_c: int = 0, n_o: int = 0, n_t: int = 0, mu_0: Optional[numpy.ndarray] = None) numpy.ndarray
mu1_hg(X: numpy.ndarray, n_w: int = 0, n_c: int = 0, n_o: int = 0, n_t: int = 0, mu_0: Optional[numpy.ndarray] = None) numpy.ndarray
normal_covariate_model(n: int, n_nuisance: int = 25, n_c: int = 0, n_o: int = 0, n_w: int = 0, n_t: int = 0, correlated: bool = False) numpy.ndarray
propensity_AISTATS(X: numpy.ndarray, n_c: int = 0, n_w: int = 0, xi: float = 0.5, nonlinear: bool = True, offset: Any = 0, target_prop: Optional[numpy.ndarray] = None) numpy.ndarray
propensity_constant(X: numpy.ndarray, n_c: int = 0, n_w: int = 0, xi: float = 0.5) numpy.ndarray
propensity_hg(X: numpy.ndarray, n_c: int = 0, n_w: int = 0, xi: Optional[float] = None) numpy.ndarray
simulate_treatment_setup(n: int, d: int = 25, n_w: int = 0, n_c: int = 0, n_o: int = 0, n_t: int = 0, covariate_model: Optional[Any] = None, covariate_model_params: Optional[dict] = None, propensity_model: Optional[Any] = None, propensity_model_params: Optional[dict] = None, mu_0_model: Optional[Any] = None, mu_0_model_params: Optional[dict] = None, mu_1_model: Optional[Any] = None, mu_1_model_params: Optional[dict] = None, error_sd: float = 1, seed: int = 42) Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray]

Generic function to flexibly simulate a treatment setup.

Parameters
  • n (int) – Number of observations to generate

  • d (int) – dimension of X to generate

  • n_o (int) – Dimension of outcome-factor

  • n_c (int) – Dimension of confounding factor

  • n_t (int) – Dimension of purely predictive variables (support of tau(x)

  • n_w (int) – Dimension of treatment assignment factor

  • covariate_model – Model to generate covariates. Default: multivariate normal

  • covariate_model_params (dict) – Additional parameters to pass to covariate model

  • propensity_model – Model to generate propensity scores

  • propensity_model_params – Additional parameters to pass to propensity model

  • mu_0_model – Model to generate untreated outcomes

  • mu_0_model_params – Additional parameters to pass to untreated outcome model

  • mu_1_model – Model to generate treated outcomes.

  • mu_1_model_params – Additional parameters to pass to treated outcome model

  • error_sd (float, default 1) – Standard deviation of normal errors

  • seed (int) – Seed

Returns

Return type

X, y, w, p, t - Covariates, observed outcomes, treatment indicators, propensities, CATE

uniform_covariate_model(n: int, n_nuisance: int = 0, n_c: int = 0, n_o: int = 0, n_w: int = 0, n_t: int = 0, low: int = - 1, high: int = 1) numpy.ndarray