У мене є випадкова вибірка випадкових змінних Бернуллі , де X i - iidrv і P ( X i = 1 ) = p , а p - невідомий параметр.
Очевидно, що можна знайти оцінку для : р : = ( X 1 + ⋯ + Х N ) / N .
Моє запитання: як я можу побудувати довірчий інтервал для ?
У мене є випадкова вибірка випадкових змінних Бернуллі , де X i - iidrv і P ( X i = 1 ) = p , а p - невідомий параметр.
Очевидно, що можна знайти оцінку для : р : = ( X 1 + ⋯ + Х N ) / N .
Моє запитання: як я можу побудувати довірчий інтервал для ?
Відповіді:
Якщо в , не близько 1 або 0 , і розмір вибірки п досить велике (тобто п р > 5 і п ( 1 - р ) > 5 , довірчий інтервал може бути оцінений з допомогою нормального розподілу і інтервал довіри, побудований таким чином:
R забезпечує функції , binconf {Hmisc}і binom.confint {binom}які можуть бути використані в такий спосіб:
set.seed(0)
p <- runif(1,0,1)
X <- sample(c(0,1), size = 100, replace = TRUE, prob = c(1-p, p))
library(Hmisc)
binconf(sum(X), length(X), alpha = 0.05, method = 'all')
library(binom)
binom.confint(sum(X), length(X), conf.level = 0.95, method = 'all')
Ця CI має додаткову перевагу в тому, що пропорції лежать в інтервалі між 0 або 1, а ІС завжди вужчий, ніж нормальний інтервал, будучи правильним рівнем. Це можна легко отримати в R, вказавши:
set.seed(123)
y <- rbinom(100, 1, 0.35)
plogis(confint(glm(y ~ 1, family=binomial)))
2.5 % 97.5 %
0.2795322 0.4670450
qbinom(p = c(0.025, 0.975), size = length(y), prob = mean(y))/length(y)
[1] 0.28 0.47
Це також обчислювальний звичай.
set.seed(12345)
y <- rbinom(100, 1, 0.01) ## all 0
cil <- 0
mupfun <- function(p) {
0.5*dbinom(0, 100, p) +
pbinom(1, 100, p, lower.tail = F) -
0.975
} ## for y=0 successes out of n=100 trials
ciu <- uniroot(mupfun, c(0, 1))$root
c(cil, ciu)
[1] 0.00000000 0.05357998 ## includes the 0.01 actual probability
Останні два методи реалізовані в epitoolsпакеті в Р.