簡體   English   中英

具有置信區間的二項式概率質量函數

[英]Binomial probability mass function with confidence interval

下面的問題是我們需要解決的。

考慮以下binomial probability mass function (pmf)

f(x;m,p) = (m¦x) p^x * (1-p)^(mx) ,對於x = 0, 1, 2,.....,m,否則等於0 . X_1, X_2,....,Xn是來自f(x;m = 20; p = 0:45)獨立同分布隨機樣本。

1) 假設 n = 15 並使用p-hat = Σ_(i=1)^n X_i/mn (p 的估計量)計算 p 的 95% 置信區間。 模擬這些置信區間 10000 次,並計算參數值 p 位於這 10000 個置信區間內的頻率。

m <- 20
p <- 0.45
n <- 15
x <- m
nsim <- 10000
counter <- 0

for (i in 1:nsim) {
  bpmf <- rbinom(x,m,p)
  esti_p <- bpmf/(m*n)
  var_bpmf <- var(bpmf) 
  CI_lower <- esti_p - qnorm(0.975)*sqrt(var_bpmf/n) 
  CI_upper <- esti_p + qnorm(0.975)*sqrt(var_bpmf/n) 
  if ((CI_lower<p) & (CI_upper>p)) counter <- counter + 1
}    

它不能正常工作,我看不出我做錯了什么。 有沒有人可以幫我解決這個問題?

當我運行我的代碼時,我相信現在的答案是正確的,但它給出了以下句子:“有 50 個或更多警告(使用警告()查看前 50 個)”當我運行它時,它會給出:

"1: In if ((CI_lower < p) & (CI_upper > p)) counter <- counter +  ... :
the condition has length > 1 and only the first element will be used".

我也不確定是否;

 CI_lower <- esti_p - qnorm(0.975)*sqrt(var_bpmf/n) 
 CI_upper <- esti_p + qnorm(0.975)*sqrt(var_bpmf/n) 

是計算置信區間的正確公式。

m <- 20
p <- 0.45
nsim <- 10000

  bpmf <- rbinom(size=m,prob=p,n=nsim)
  esti_p <- bpmf/m
  var_bpmf <- esti_p*(1-esti_p)/m 
  CI_lower <- esti_p - qnorm(0.975)*sqrt(var_bpmf) 
  CI_upper <- esti_p + qnorm(0.975)*sqrt(var_bpmf) 
  counter <-((CI_lower<p) & (CI_upper>p))
table(counter)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM