sim1 <- function(n=1000, ...) {
w1 <- rnorm(n)
w2 <- rnorm(n)
a <- rbinom(n, 1, plogis(-1 + w1))
y <- cos(w1) + w2*a + 0.2*w2^2 + a + rnorm(n)
data.frame(y, a, w1, w2)
}
d <- sim1(5000)
## ATE
cate(cate.model=~1,
response.model=y~a*(w1+w2),
propensity.model=a~w1+w2,
data=d)
## CATE
cate(cate.model=~1+w2,
response.model=y~a*(w1+w2),
propensity.model=a~w1+w2,
data=d)
if (FALSE) ## superlearner example
mod1 <- list(
glm = learner_glm(y~w1+w2),
gam = learner_gam(y~s(w1) + s(w2))
)
s1 <- learner_sl(mod1, nfolds=5)
cate(cate.model=~1,
response.model=s1,
propensity.model=learner_glm(a~w1+w2, family=binomial),
data=d,
stratify=TRUE)
Run the code above in your browser using DataLab