Title: | Stratified Randomized Experiments |
---|---|
Description: | Estimate average treatment effects (ATEs) in stratified randomized experiments. 'sreg' is designed to accommodate scenarios with multiple treatments and cluster-level treatment assignments, and accommodates optimal linear covariate adjustment based on baseline observable characteristics. 'sreg' computes estimators and standard errors based on Bugni, Canay, Shaikh (2018) <doi:10.1080/01621459.2017.1375934>; Bugni, Canay, Shaikh, Tabord-Meehan (2024+) <doi:10.48550/arXiv.2204.08356>; and Jiang, Linton, Tang, Zhang (2023+) <doi:10.48550/arXiv.2201.13004>. |
Authors: | Juri Trifonov [aut, cre, cph], Yuehao Bai [aut], Azeem Shaikh [aut], Max Tabord-Meehan [aut] |
Maintainer: | Juri Trifonov <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.0.1 |
Built: | 2024-11-19 03:01:23 UTC |
Source: | https://github.com/jutrifonov/sreg |
The data is taken from Chong et al. (2016), who study the effect of iron deficiency anemia (i.e., anemia caused by a lack of iron) on school-age children’s educational attainment and cognitive ability in Peru.
data("AEJapp")
data("AEJapp")
A data frame with 215 observations on the 62 variables.
Chong, A., Cohen, I., Field, E., Nakasone, E., and Torero, M. (2016). Replication data for: Iron Deficiency and Schooling Attainment in Peru. Nashville, TN: American Economic Association [publisher], 2016. Ann Arbor, MI: Inter-university Consortium for Political and Social Research [distributor], 2019-10-12. doi:10.3886/E113624V1.
Chong, A., Cohen, I., Field, E., Nakasone, E., and Torero, M. (2016). Iron Deficiency and Schooling Attainment in Peru. American Economic Journal: Applied Economics, 8(4), 222–255. doi:10.1257/app.20140494.
data(AEJapp)
data(AEJapp)
sreg
ObjectsPrint the summary table of estimation results for sreg
objects.
## S3 method for class 'sreg' print(x, ...)
## S3 method for class 'sreg' print(x, ...)
x |
An object of class |
... |
Additional arguments passed to other methods. |
No return value, called for side effects.
data <- sreg.rgen(n = 200, tau.vec = c(0.1), n.strata = 4, cluster = TRUE) Y <- data$Y S <- data$S D <- data$D X <- data.frame("x_1" = data$x_1, "x_2" = data$x_2) result <- sreg(Y, S, D, G.id = NULL, Ng = NULL, X) print(result)
data <- sreg.rgen(n = 200, tau.vec = c(0.1), n.strata = 4, cluster = TRUE) Y <- data$Y S <- data$S D <- data$D X <- data.frame("x_1" = data$x_1, "x_2" = data$x_2) result <- sreg(Y, S, D, G.id = NULL, Ng = NULL, X) print(result)
Estimate the ATE(s) and the corresponding standard error(s) for a (collection of) treatment(s) relative to a control.
sreg(Y, S = NULL, D, G.id = NULL, Ng = NULL, X = NULL, HC1 = TRUE)
sreg(Y, S = NULL, D, G.id = NULL, Ng = NULL, X = NULL, HC1 = TRUE)
Y |
a numeric |
S |
a numeric |
D |
a numeric |
G.id |
a numeric |
Ng |
a numeric |
X |
a |
HC1 |
a |
An object of class sreg
that is a list containing the following elements:
tau.hat
: a
vector
of ATE estimates, where represents the number of treatments
se.rob
: a
vector
of standard errors estimates, where represents the number of treatments
t.stat
: a
vector
of -statistics, where
represents the number of treatments
p.value
: a
vector
of corresponding -values, where
represents the number of treatments
CI.left
: a
vector
of the left bounds of the 95% as. confidence interval
CI.right
: a
vector
of the right bounds of the 95% as. confidence interval
data
: an original data of the form data.frame(Y, S, D, G.id, Ng, X)
lin.adj
: a data.frame
representing the covariates that were used in implementing linear adjustments
Authors:
Juri Trifonov [email protected]
Yuehao Bai [email protected]
Azeem Shaikh [email protected]
Max Tabord-Meehan [email protected]
Maintainer:
Juri Trifonov [email protected]
Bugni, F. A., Canay, I. A., and Shaikh, A. M. (2018). Inference Under Covariate-Adaptive Randomization. Journal of the American Statistical Association, 113(524), 1784–1796, doi:10.1080/01621459.2017.1375934.
Bugni, F., Canay, I., Shaikh, A., and Tabord-Meehan, M. (2024+). Inference for Cluster Randomized Experiments with Non-ignorable Cluster Sizes. Forthcoming in the Journal of Political Economy: Microeconomics, doi:10.48550/arXiv.2204.08356.
Jiang, L., Linton, O. B., Tang, H., and Zhang, Y. (2023+). Improving Estimation Efficiency via Regression-Adjustment in Covariate-Adaptive Randomizations with Imperfect Compliance. Forthcoming in Review of Economics and Statistics, doi:10.48550/arXiv.2204.08356.
library("sreg") library("dplyr") library("haven") ### Example 1. Simulated Data. data <- sreg.rgen(n = 1000, tau.vec = c(0), n.strata = 4, cluster = FALSE) Y <- data$Y S <- data$S D <- data$D X <- data.frame("x_1" = data$x_1, "x_2" = data$x_2) result <- sreg(Y, S, D, G.id = NULL, Ng = NULL, X) print(result) ### Example 2. Empirical Data. ?AEJapp data("AEJapp") data <- AEJapp head(data) Y <- data$gradesq34 D <- data$treatment S <- data$class_level data.clean <- data.frame(Y, D, S) data.clean <- data.clean %>% mutate(D = ifelse(D == 3, 0, D)) Y <- data.clean$Y D <- data.clean$D S <- data.clean$S table(D = data.clean$D, S = data.clean$S) result <- sreg(Y, S, D) print(result) pills <- data$pills_taken age <- data$age_months data.clean <- data.frame(Y, D, S, pills, age) data.clean <- data.clean %>% mutate(D = ifelse(D == 3, 0, D)) Y <- data.clean$Y D <- data.clean$D S <- data.clean$S X <- data.frame("pills" = data.clean$pills, "age" = data.clean$age) result <- sreg(Y, S, D, G.id = NULL, X = X) print(result)
library("sreg") library("dplyr") library("haven") ### Example 1. Simulated Data. data <- sreg.rgen(n = 1000, tau.vec = c(0), n.strata = 4, cluster = FALSE) Y <- data$Y S <- data$S D <- data$D X <- data.frame("x_1" = data$x_1, "x_2" = data$x_2) result <- sreg(Y, S, D, G.id = NULL, Ng = NULL, X) print(result) ### Example 2. Empirical Data. ?AEJapp data("AEJapp") data <- AEJapp head(data) Y <- data$gradesq34 D <- data$treatment S <- data$class_level data.clean <- data.frame(Y, D, S) data.clean <- data.clean %>% mutate(D = ifelse(D == 3, 0, D)) Y <- data.clean$Y D <- data.clean$D S <- data.clean$S table(D = data.clean$D, S = data.clean$S) result <- sreg(Y, S, D) print(result) pills <- data$pills_taken age <- data$age_months data.clean <- data.frame(Y, D, S, pills, age) data.clean <- data.clean %>% mutate(D = ifelse(D == 3, 0, D)) Y <- data.clean$Y D <- data.clean$D S <- data.clean$S X <- data.frame("pills" = data.clean$pills, "age" = data.clean$age) result <- sreg(Y, S, D, G.id = NULL, X = X) print(result)
The function generates the observed outcomes, treatment assignments, strata indicators, cluster indicators, cluster sizes, and covariates for estimating the treatment effect within the context of a stratified block randomization design under the covariate-adaptive randomization (CAR).
sreg.rgen( n, Nmax = 50, n.strata, tau.vec = c(0), gamma.vec = c(0.4, 0.2, 1), cluster = TRUE, is.cov = TRUE )
sreg.rgen( n, Nmax = 50, n.strata, tau.vec = c(0), gamma.vec = c(0.4, 0.2, 1), cluster = TRUE, is.cov = TRUE )
n |
a total number of observations in a sample |
Nmax |
a maximum size of generated clusters (maximum number of observations in a cluster) |
n.strata |
an integer specifying the number of strata |
tau.vec |
a numeric |
gamma.vec |
a numeric |
cluster |
a |
is.cov |
a |
An object that is a 'data.frame' with observations containing the generated values of the following variables:
Y
: a numeric
vector
of observed outcomes
S
: a numeric
vector
of strata indicators
D
: a numeric
vector
of treatments indexed by , where
denotes the control
G.id
: a numeric
vector
of cluster indicators
X
: a data.frame
with columns representing the covariate values for every observation
data <- sreg.rgen(n = 1000, tau.vec = c(0), n.strata = 4, cluster = TRUE)
data <- sreg.rgen(n = 1000, tau.vec = c(0), n.strata = 4, cluster = TRUE)