# ird1r1: Simple Individual-level Regression Discontinuity (w/ or w/o... In metinbulus/cosa: Bound Constrained Optimal Sample Size Allocation

## Description

Use `mdes.ird()` to calculate minimum detectable effect size and `power.ird()` to calculate statistical power. If higher level strata or fixed blocks exist, use `mdes.bird2f1()` to calculate minimum detectable effect size, `power.bird2f1()` to calculate statistical power, and `cosa.bird2f1()` for bound constrained optimal sample size allocation (BCOSSA).

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38``` ```mdes.ird(score = NULL, dists = "normal", k1 = -6, k2 = 6, order = 1, interaction = FALSE, treat.lower = TRUE, cutoff = 0, p = NULL, power = .80, alpha = .05, two.tailed = TRUE, df = n1 - g1 - order * (1 + interaction) - 2, r21 = 0, g1 = 0, rate.tp = 1, rate.cc = 0, n1) power.ird(score = NULL, dists = "normal", k1 = -6, k2 = 6, order = 1, interaction = FALSE, treat.lower = TRUE, cutoff = 0, p = NULL, es = .25, alpha = .05, two.tailed = TRUE, df = n1 - g1 - order * (1 + interaction) - 2, r21 = 0, g1 = 0, rate.tp = 1, rate.cc = 0, n1) mdes.bird2f1(score = NULL, dists = "normal", k1 = -6, k2 = 6, order = 1, interaction = FALSE, treat.lower = TRUE, cutoff = 0, p = NULL, power = .80, alpha = .05, two.tailed = TRUE, df = n2 * (n1 - 2) - g1 - order * (1 + interaction), r21 = 0, g1 = 0, rate.tp = 1, rate.cc = 0, n1, n2 = 1) power.bird2f1(score = NULL, dists = "normal", k1 = -6, k2 = 6, order = 1, interaction = FALSE, treat.lower = TRUE, cutoff = 0, p = NULL, es = .25, alpha = .05, two.tailed = TRUE, df = n2 * (n1 - 2) - g1 - order * (1 + interaction), r21 = 0, g1 = 0, rate.tp = 1, rate.cc = 0, n1, n2 = 1) cosa.bird2f1(score = NULL, dists = "normal", k1 = -6, k2 = 6, rhots = NULL, order = 1, interaction = FALSE, treat.lower = TRUE, cutoff = 0, p = NULL, cn1 = 0, cn2 = 0, cost = NULL, n1 = NULL, n2 = NULL, n0 = c(400, 5), p0 = .499, constrain = "power", round = TRUE, max.power = FALSE, local.solver = c("LBFGS", "SLSQP"), power = .80, es = .25, alpha = .05, two.tailed = TRUE, g1 = 0, r21 = 0) ```

## Arguments

 `score` vector or list; an empirical score variable or an object with class 'score' returned from the `inspect.score()` function. `dists` character; distribution of the score variable, `"normal"` or `"uniform"`. By default, `dists = "normal"` specification implies a truncated normal distribution with `k1 = -6` and `k2 = 6`. `k1` left truncation point for (uncentered) empirical, truncated normal, or uniform distribution. Ignored when `rhots = 0` or `order = 0`. `k2` right truncation point for (uncentered) empirical, truncated normal, or uniform distribution. Ignored when `rhots = 0` or `order = 0`. `order` integer >= 0; order of polynomial functional form specification for the score variable. `interaction` logical; if `TRUE` polynomial specification interacts with the treatment variable. `rhots` obsolote; use `order = 0` to obtain results equivalent to random assignment designs. `treat.lower` logical; if `TRUE` units below cutoff the are treated. `cutoff` decision threshold. `p` proportion of units in the treatment condition. `power` statistical power (1 - β). `es` numeric > 0; effect size (Cohen's d). `alpha` probability of type I error (α). `two.tailed` logical; `TRUE` for two-tailed hypothesis testing. `df` degrees of freedom. `g1` number of covariates. `r21` proportion of variance in the outcome explained by covariates. `rate.tp` treatment group participation rate. `rate.cc` control group crossover rate. `n1` sample size (per stratum or block, if exists). `n2` number of stratum or fixed blocks. `cn1` marginal cost per unit in treatment and control conditions, e.g. `c(10, 5)`. `cn2` marginal cost per stratum or fixed block. `cost` total cost or budget. Ignored when `constrain = "power"` or `constrain = "es"`. `constrain` character; constrains one of the `"cost"`, `"power"`, or `"es"` at the specified value. `n0` starting value for `n1` or `n1, n2`. Starting value is replaced with the average when sample size is constrained by bounds. `p0` starting value for `p` when `rhots = 0` and `p = NULL`. Starting value is replaced with average when `p` is constrained by bounds. `round` logical; `TRUE` for rounded BCOSSA solution. `max.power` logical; `TRUE` for maximizing power instead of minimizing variance, applies when `constrain = "cost"` `local.solver` subset of `c("LBFGS", "SLSQP")`

## Value

 `parms` list of parameters used in the function. `df` degrees of freedom. `sse` standardized standard error. `cosa` BCOSSA solution. `mdes` minimum detectable effect size and (1 - α)% confidence limits. `power` statistical power (1 - β)

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15``` ```score.obj <- inspect.score(rnorm(1000), order = 1, interaction = FALSE, cutoff = 0, k1 = -1, k2 = 1) # single site (no blocks) power.ird(score.obj, g1 = 0, r21 = 0, es = 0.25, n = 100) # with 5 blocks (note that r21 is modified but g1 remains the same) power.bird2f1(score.obj, g1 = 0, r21 = .30, es = 0.25, n1 = 100, n2 = 5) # minimum required sample size for each block cosa.bird2f1(score.obj, g1 = 0, r21 = .30, n1 = NULL, n2 = 5) ```

metinbulus/cosa documentation built on Sept. 9, 2021, 12:04 p.m.