让Xi〜U(0,30)为随机变量。如果有人对n = 12进行抽样,那么我们有兴趣知道该比例大于18的概率,即$ P(\ overline X_ {12}> 18)$
如果不使用仿真并应用CLT,答案为.1150
这是我使用仿真在R中实现此目标的方法:
SimProb<-function(N)
{
n=12
M<-matrix(runif(1,0,30),N,n)
rowMeann<-rowMeans(M)
for(i in 1:N)
{
if(rowMeann[i]>18)
c=cumsum(rowMeann[i])
c
}
prob<-1-c
return(prob)
}
该代码未显示任何错误,但无法正常工作。
当我检查时,发现c= 6.083532
不能。
对于N
的不同值,SimProb
仅返回负值,我不明白为什么。
有人可以帮我吗?
答案 0 :(得分:2)
这是分步解决方案。
runif(12, 0, 30)
。mean(runif(12, 0, 30))
。
replicate(mean(runif(12, 0, 30)), n = 10000)
mean(runif(12, 0, 30))
大于18的次数)/ 10000,可以用
set.seed(1)
mean(replicate(mean(runif(12, 0, 30)), n = 10000) > 18)
# [1] 0.1163
这确实非常接近您提供的价值。