#!/usr/bin/env Rscript
# Perform power analysis to assess whether we have enough data to study bots
# Copyright (C) 2018 Nathan TeBlunthuis
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
source("lib-00-utils.R")
library(effects)
library(texreg)
if(!exists("r")){
source("lib-00-utils.R")
source("01_build_datasets.R")
}
p.outcome <- r$newcomer.summary.stats$p.survives
p.dv <- r$newcomer.summary.stats$p.bot.reverted
n <- r$halfak.model@gof[5]
sample.ds <- function(n,p.outcome,p.dv,eff = -0.01){
dv <- rbinom(n=n,size=1,prob=p.dv)
iv <- rbinom(n,size=1,prob=p.outcome)
m1 <- glm(iv ~ 1, family=binomial(link='logit'))
eta <- eff*dv + coef(m1)[1]
p <- exp(eta)/(1+exp(eta))
tmp <- runif(n)
y <- (tmp < p)
fit <- glm(y ~ dv,family=binomial(link='logit'))
summary(fit)$coefficients[2,4]
}
eff <- -0.68
remember(exp(-eff),"power.analysis.effect")
pwr.test.sig.level <- 0.05
remember(pwr.test.sig.level)
n.power.sim <- 1000
remember(n.power.sim)
out <- replicate(n.power.sim,sample.ds(n,p.outcome,p.dv,eff=eff))
remember(mean(out