Может быть, это то, что вы пытаетесь сделать?
Это z()
вернет доверительный интервал для среднего значения нормального распределения для населения.
z <- function(N, mu, std, cl=95) {
alpha <- (1-cl/100)/2
# CI for population mean
sep <- std/sqrt(N)
z_s <- qnorm(1 - alpha)
pop_lower <- mu - z_s*sep
pop_upper <- mu + z_s*sep
c(lower=pop_lower, upper=pop_upper)
}
Это означает, что еслиЯ создаю случайную переменную mean(rnorm(20, 0, 1))
, затем мы ожидаем, что ее значение лежит в пределах z(20, 0, 1, 95)
с вероятностью 0,95.
Чтобы проверить это, мы можем сделать
# specify parameters
N <- 20
mu <- 0
std <- 1
# produce a good number (10,000) of population means
set.seed(1)
r <- replicate(1e4, mean(rnorm(N, mu, std)))
# calculate confidence interval
ci <- z(N, mu, std)
# find which are below, within and above the interval
rc <- cut(r, c(min(r), ci, max(r)), c("below", "within", "above"))
# create a proportion table
round(prop.table(table(rc))*100, 2)
# below within above
# 2.59 95.08 2.33