Я пытаюсь создать симуляцию для вычисления доверительного интервала для биномиальной пропорции.Пока у меня есть функция, которая вычисляет нижнюю и верхнюю границы, и я сгенерировал и сохранил тип данных, которые я хочу (в матрице, я не уверен в этом).
Как я могу создатьцикл, который генерирует образцы с различными размерами.Я хотел бы проверить, как работает формула при расчете интервалов с размерами выборки n = 10, 11, 12, ... до 100.
Пока мой код:
## functions that calculate lower and upper bounds
ll <- function(x, cl=0.95) {
n <- length(x)
p.est <- mean(x)
z = abs(qnorm((1-cl)/2))
return((p.est) - z*sqrt(p.est*(1-p.est)/n))
}
ul <- function(x, cl=0.95) {
n <- length(x)
p.est <- mean(x)
z = abs(qnorm((1-cl)/2))
return((p.est) + z*sqrt(p.est*(1-p.est)/n))
}
## my simulation for n=10 and 200 repetitions.
p <- 0.4
n <- 10
rep <- 200
dat <- rbinom(rep*n,1,p)
x <- matrix(dat, ncol=rep)
ll.res <- apply(x, 2, ll)
ul.res <- apply(x, 2, ul)
hits <- ll.res <= p & p <= ul.res
sum(hits==1)/rep