                       T.model = tmp, Y.method = "none",
                       combine.method = "avg")$mean.est
get.mean(data$T, data$Y, data$features, over = "treated",

                       T.model = tmp, Y.method = "none",
                       combine.method = "avg")$mean.est
tmp$weight.tmp
tmp$weight.type
tmp$weight.type
tmp$type
get.mean(T, Y, features, over = "treated",
                       T.model = tmp, Y.method = "none",
                       combine.method = "avg")$mean.est
get.mean(data$T, data$Y, data$features, over = "treated",

                       T.model = tmp, Y.method = "none",
                       combine.method = "avg")$mean.est
get.mean(data$T, data$Y, data$features, over = "treated",

                       T.model = tmp, Y.method = "none",
                       combine.method = "avg")$mean.est
get.mean(data$T, data$Y, data$features, over = "treated",
weight.type="nr",
weight.type

                       T.model = tmp, Y.method = "none",
                       combine.method = "avg")$mean.est
get.mean(data$T, data$Y, data$features, over = "treated",
weight.type="nr",

                       T.model = tmp, Y.method = "none",
                       combine.method = "avg")$mean.est
detach("package:covalign", unload = TRUE)
library(covalign)
get.effect(data$T, data$Y, data$features, "ATT", "ebal", "nr", "none", "avg")$effect.est
detach("package:covalign", unload = TRUE)
library(covalign)
get.effect(data$T, data$Y, data$features, "ATT", "ebal", "nr", "none", "avg")$effect.est
get.effect(data$T, data$Y, data$features, "ATT", "glm", "pop", "lm", "dr")$effect.est
get.effect(data$T, data$Y, data$features, "ATT", "glm", "nr", "lm", "dr")$effect.est
get.effect(data$T, data$Y, data$features, "ATT", "glm", "pop", "lm", "dr")$effect.est
get.mean(data$T, data$Y, data$features, "treated", "glm", "pop", "lm", "dr")$mean.est
get.mean(data$T, data$Y, data$features, "treated", "glm", "nr", "lm", "dr")$mean.est
get.mean(data$T, data$Y, data$features, "treated", "glm", "nr", "lm", "dr")$T.model$type
get.mean(data$T, data$Y, data$features, "treated", "glm", "pop", "lm", "dr")$T.model$type
get.mean(data$T, data$Y, data$features, "treated", "glm", "pop", "lm", "dr")$weight.type
T <- data$T
Y <- data$Y
features <- data$features
over <- "treated"
T.method <- "glm"
weight.type <- "pop"
Y.method <- "lm"
combine.method <- "dr"
data0 <- data
p1
p0
m
m.bc
mean(data0$Y0)
mean(data0$Y0[T==0])
mean(data0$Y0[T==1])
m
m.bc
detach("package:covalign", unload = TRUE)
library(covalign)
data <- data0
get.mean(data$T, data$Y, data$features, "treated", "glm", "nr", "lm", "dr")$T.model$type
get.effect(data$T, data$Y, data$features, "ATT", "ebal", "nr", "none", "avg")$effect.est
get.effect(data$T, data$Y, data$features, "ATT", "glm", "nr", "lm", "dr")$effect.est
get.effect(data$T, data$Y, data$features, "ATT", "glm", "pop", "lm", "dr")$effect.est
get.effect(data$T, data$Y, data$features, "ATT", "glm", "pop", "wls", "avg")$effect.est
get.effect(data$T, data$Y, data$features, "ATT", "glm", "nr", "wls", "avg")$effect.est
get.effect(data$T, data$Y, data$features, "ATT", "ebal", "nr", "wls", "avg")$effect.est
strsplit("431.21.321.321.321.", ".")
strsplit("431,21,321,321,321.", ",")
detach("package:covalign", unload = TRUE)
library(covalign)
names(data)
class(data)
class(data) <- "obdata"
get.effect(data)
get.effect.obdata
detach("package:covalign", unload = TRUE)
library(covalign)
get.effect.obdata
get.effect.obdata
roxygenise("./covalign")
detach("package:covalign", unload = TRUE)
library(covalign)
get.effect.obdata
get.effect(data)
get.effect.obdata(data)
get.effect.obdata(data)
class(data)
detach("package:covalign", unload = TRUE)
library(covalign)
get.effect.obdata(data)
detach("package:covalign", unload = TRUE)
library(covalign)
detach("package:covalign", unload = TRUE)
library(covalign)
get.effect.obdata(data)
stratified <- false
stratified <- FALSE
print.level = 0
method.list = c("ebal,nr,none,avg")
levels(data$stratum)
levels(data$stratum)
detach("package:covalign", unload = TRUE)
library(covalign)
get.effect.obdata(data)
get.effect.obdata(data)$effect.est
get.effect(data$T, data$Y, data$features, "ATT", T.method = "ebal", weight.type = "nr", Y.method = "none", combine.method = "avg")
get.effect(data$T, data$Y, data$features, "ATT", T.method = "ebal", weight.type = "nr", Y.method = "none", combine.method = "avg")$effect.est
get.effect.obdata(data)$effect.est
detach("package:covalign", unload = TRUE)
library(covalign)
detach("package:covalign", unload = TRUE)
library(covalign)
i <- 0
roxygenise("./covalign")
require(143123)
library(143123)
roxygenise("./covalign")
data[19:20,]
data[1:20,]
data[5:6,]
which(optgeo.data$hashed_customer_id == 7066368540842560037)
which(optgeo.data$hashed_customer_id == "7066368540842560037")
optgeo.data[1342:1345,]
optgeo.data[1342:1355,]
dim(optgeo.data)
dim(optgeo.data)
optgeo.data[1342:1355,]$opt_applies_7day_20140625
is.null(optgeo.data[1342:1355,]$opt_applies_7day_20140625)
dim(optgeo.data)
dim(optgeo.data)
is.null(optget.data$opt_applies_7_day_20140625)
is.null(optgeo.data$opt_applies_7_day_20140625)
is.null(optgeo.data[1435,]$opt_applies_7_day_20140625)
is.null(optgeo.data[1342,]$opt_applies_7_day_20140625)
optgeo.data[1342,]$opt_applies_7_day_20140625
dim(optgeo.data)
names(data)
dim(data.features)
dim(data.features)
data$cost_uplift_total
data$T
names(data)
names(data.features)
class_cols
names(data.features)
data$T
levels(data$experiment_name)
dim(data)
data.class
data.class$class
sum(data.class$class > 0)
data.class
data$applied.city.sugg
names(optgeo.result)
sd(optgeo.result$output[[8]]$effect.raw)
mean(optgeo.result$output[[8]]$effect.raw)
mean(optgeo.result$output[[8]]$m0$mean.est)
mean(optgeo.result$output[[8]]$m1$mean.est)
mean(optgeo.result$output[[8]]$m1$mean.raw)
sum(optgeo.result$output[[8]]$m1$mean.raw)
sum(optgeo.result$output[[7]]$m1$mean.raw)
sum(optgeo.result$output[[7]]$m1$mean.est)
sum(optgeo.result$output[[7]]$m1$mean.est.se)
sd(optgeo.result$output[[7]]$m1$mean.raw)
optgeo.result$output[[7]]$m1$mean.raw
optgeo.result$output[[8]]$m1$mean.raw
sd(optgeo.result$output[[7]]$m1$mean.raw)
sd(optgeo.result$output[[8]]$m1$mean.raw)
roxygenise("./covalign")
library(roxygen2)
roxygenise("./covalign")
getwd()
setwd("../..")
roxygenise("./covalign")
detach("package:covalign", unload = TRUE)
library(covalign)
sd(optgeo.result$output[[8]]$m1$mean.raw)
sd(optgeo.result$output[[9]]$m1$mean.raw)
sd(optgeo.result$output[[7]]$m1$mean.raw)
sd(optgeo.result$output[[1]]$m1$mean.raw)
optgeo.result$output[[1]]$m1$mean.raw
sd(optgeo.result$output[[1]]$m1$mean.raw)
mean(optgeo.result$output[[1]]$m1$mean.est)
mean(optgeo.result$output[[1]]$m1$mean.est.se)
mean(optgeo.result$output[[1]]$effect.raw)
sum(optgeo.result$output[[1]]$effect.raw)
data$Y[data$T == 0]
mean(data$Y[data$T == 0])
mean(data$Y[data$T == 1])
sd(data$Y[data$T == 0])
sd(data$Y[data$T == 0]) / sqrt(sum(data$T == 0))
sd(data$Y[data$T == 1]) / sqrt(sum(data$T == 1))
a
7
get.effect.se(opt.result$output[[1]][[1]])
get.effect.se(opt.result$output[[1]][[2]])
str(opt.result$output[[1]][[2]])
names(opt.result$output[[1]][[2]])
opt.result$output[[1]][[2]]$combine.method
opt.result$output[[2]][[1]]$combine.method
opt.result$output[[2]][[2]]$combine.method
opt.result$output[[2]][[3]]$combine.method
opt.result$output[[2]][[4]]$combine.method
opt.result$output[[2]][[5]]$combine.method
opt.result$output[[2]][[11]]$combine.method
get.effect.se(opt.result$output[[2]][[11]])
get.effect.se(opt.result$output[[2]][[11]])
names(opt.result$output[[2]][["glm,pop,lm,dr"]])
names(opt.result$output[[2]][["glm,pop,lm,dr"]]$m0)
names(opt.result$output[[2]][["glm,pop,lm,dr"]]$m0$data)
effect.est.se
effect.est.se
i <- 1
summary(diagnostics.object$T.model$model)
i <- 2
        diagnostics.object <- opt.result$output[[i]][["glm,pop,lm,dr"]]
summary(diagnostics.object$T.model$model)
object.size(data)
object.size(data)
hedwig.result
sink()
sink(\)
sink(\)
sink()
table(data$stratum)
object.size(hedwig.result)
effect.est.se
i <- 2
diagnostics.object$combine.method
diagnostics.object$effect
effect.est.se
library(jackknifeAA)
jackknifeAA::jackknife.general()
warnings()
n
length(data.ratio$T)
table(data$stratum)
table(data.ratio$stratum)
table(data.ratio$T)
jackknifeAA::Jackknife.general(1:n, 1:n,)
effect.est.bs[b,,]
16*100
effect.est.bs
save(effect.est.bs, file = "~/Projects/entropy/optsup_bs.rda")
effect.est.se
effect.est.se
effect.est.bs[,1,1]
sd(effect.est.bs[,1,1])
effect.est
opt.result$effect.est
nrow(effect.est.se)
dim(effect.est.se)
effect.est.se
df.est
class(df)
df
colnames(effect.est)
library(covalign)
effect.est.se
data.ratio$Y[data.ratio$T == 1]
sd(data.ratio$Y[data.ratio$T == 1])
sd(data.ratio$Y[data.ratio$T == 1]) / sqrt(423)
object <- diagnostics.object
mean(I)
object$effect.est
sd(I)
I
effect.se
length(I)
1/80
effect.est.se
effect.est.se
    png("~/optsup_result_after.png", width = 800, height = 500)
    ggplot(df) + aes(x = stratum, y = est) + geom_errorbar(aes(ymax = est + 1.96 * se, ymin = est - 1.96 * se, group = method, color = method)) + geom_point(aes(group = method, color = method), shape = 21, size = 3) + theme(text = element_text(size = 15)) + ggtitle("Opportunity Suppression Experiment After Adjustment") + ylab("difference in CTR") + xlab("Stratum by log2(previous week spend)")
    dev.off()
levels(df$stratum)
levels(data.ratio$stratum)
    df$stratum <- factor(df$stratum, levels(data.ratio$stratum))
    png("~/optsup_result_after.png", width = 800, height = 500)
    ggplot(df) + aes(x = stratum, y = est) + geom_errorbar(aes(ymax = est + 1.96 * se, ymin = est - 1.96 * se, group = method, color = method)) + geom_point(aes(group = method, color = method), shape = 21, size = 3) + theme(text = element_text(size = 15)) + ggtitle("Opportunity Suppression Experiment After Adjustment") + ylab("difference in CTR") + xlab("Stratum by log2(previous week spend)")
    dev.off()

summary(diagnostics.object$Y.model$model)
summary(diagnostics.object$Y.model)
summary(diagnostics.object)
summary(diagnostics.object$m0$Y.modelmodel)
summary(diagnostics.object$m0$Y.model)
summary(diagnostics.object$T.model$model)
i
coef.df
coef.df
coef
coef
coef
coef
coef
coef.df
names(opt.result$output)
coef.df
names(coef.df)
coef.df
    ggplot(coef.df)
    + aes(y = z.value, x = term)
    + geom_point(aes(color = term))

p
coef.df
coef
coef.df$stratum
coef.df
opt.result
opt.result$effect.est
saveRDS(opt.result, file="~/optsup.rda")
library(roxygen2)
roxygenise("./covalign")
install.packages("roxygen2")
library(devtools)
load_all("covalign")
setwd("../..")
load_all("covalign")
data <- generate.synthetic.data(n = 10000, p = 4,

                                t.model = "logistic",
                                t.model.x = "linear",
                                y.model = "linear",
                                t.param = c(0, 0.2, 0.8, 0.8, 0),
                                y0.param = c(0, 0.4, 1, 2, 0),
                                y1.param = c(0, 0, 1.2, 1.7, 0.3),
                                sigma0 = 2,
                                sigma1 = 2)

object <- get.effect(data$T, data$Y, data$features, effect = "ATT", T.method = "ebal", weight.type = "nr", Y.method = "none", combine.method = "none")
get.effect.se(object)
                    data <- list(T = object$T,
                                 Y = object$Y,
                                 features = object$features.T)
                    mu.11 <- mean(data$Y[data$T == 1])
                    mu.01 <- object$m1$mean.est
                    ps <- object$propensity.score
                    index.0 <- which(data$T == 0)
                    index.1 <- which(data$T == 1)
                    p1 <- mean(data$T)
                    p0 <- 1 - p1
                    odds <- ps / (1 - ps)
                    p <- ncol(data$features)
                    X <- data$features
                    X.centered <- t(t(data$features - colMeans(data$features[index.1, ])))
                    # empirical sandwich method
                    A.ebal <- rbind(
                        cbind(sum(data$T) * diag(p), matrix(0, p, p+2) ),
                        cbind(sum((1 - data$T) * odds) * diag(p),
                              - t(as.vector((1 - data$T) * odds) * X.centered) %*% X,
                              matrix(0, p, 2)),
                        cbind(matrix(0, 1, 2*p), sum(data$T), 0),
                        cbind(matrix(0, 1, p),
                              - t(t(X) %*% as.vector((1 - data$T) * odds * (data$Y - mu.01))),
                              sum((1 - data$T) * odds),
                              - sum((1 - data$T) * odds))
                        ) / length(data$T)

length(odds)
odds
length(ps)
object$T.model$propensity.score
load_all("covalign")
get.effect.se(object)
object$effect.se
object$effect.est
load_all("covalign")
object <- get.effect(data$T, data$Y, data$features, effect = "ATT", T.method = "glm", weight.type = "nr", Y.method = "none", combine.method = "none")
get.effect.se(object)
object$effect.est
load_all("covalign")
get.effect.se(object)
get.effect.se(output.ebal)
get.effect.se(output.ipw)
sqrt(mean( (est.ebal - (mean(data$Y1[data$T==1]) - mean(data$Y0[data$T==1])))^2 ))
sqrt(mean( (est.ipw - (mean(data$Y1[data$T==1]) - mean(data$Y0[data$T==1])))^2 ))
V.ipw/2000
V.ebal/2000
get.effect.se(output.ebal)
(get.effect.se(output.ebal) * sqrt(length(data$T)) / sqrt(2000))^2
V.ebal
V.ebal / 2000
A.ipw
V.ipw
V.ebal
V.ipw/2000
var(est.ebal)
V.ebal/2000
var(est.ipw)
V.ipw/2000
V.ipw/2000
var(est.ipw)
V.ebal/2000
var(est.ebal)
(get.effect.se(output.ebal) * sqrt(length(data$T)) / sqrt(2000))^2
(get.effect.se(output.ebal) * sqrt(length(output.ebal$T)) / sqrt(2000))^2
(get.effect.se(output.ipw) * sqrt(length(output.ipw$T)) / sqrt(2000))^2
n <- 1000
X3
X3
plot(X3, Z3)
table(X3)
table(Z3)
cov(XZ12)
dim(XZ12)
length(X3)
dim(X)
nu = c(0, -1, 1, -1, 2)
T.assoc = "strong"
Y.assoc = "strong"
logit.true
beta
logit.true
T
table(T)
Y
beta
table(T)
colMeans(X)
table(T)
colMeans(X)
length(index)
colMeans(XZ12)
colMeans(XZ12)
index
dim(XZ12)
colMeans(XZ12)
table(T)
beta
hist(logit.true)
hist(logit.true)
hist(plogis(logit.true))
summary(plogis(logit.true))
colMeans(X)
beta
X %*% beta[2:$]
X %*% beta[2:4]
hist(X %*% beta[2:4])
summary(X %*% beta[2:4])
exp(0.12)
summary(T)
table(T)
colMeans(X)
table(T)
summary(Y)
n <- 1000
X.dist
ps.link
?bs
dim(X.expand)
ps.ordder
ps.order
dim(X.expand)
ps.order
ps.knots
n
p
X[,1]
dim(X.expand)
dim(X.expand)
X[1:20]
which(X>2.5)
X[163,]
X.expand[163,]
logit.true
X.expand[1,]
sum(X.expand[,1])
sum(X.expand[1,])
sum(X.expand[2,])
X.expand[1,]
hist(logit.true)
logit.true
x11())
x11()
pdf("~/tmp.pdf")
plot(X[,1], theta.true)
plot(X[,1], logit.true)
dev.off())
dev.off()
n <- 200
beta <- 2
nbasis <- 11
p <- 21
p <- 2
dim(X)
length(c)
one.run(1)
one.run(1)
one.run(1)
2
