设X~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只返回负值,我不明白为什么。
有人能帮帮我吗?
发布于 2019-05-24 02:19:36
这是一个循序渐进的解决方案。
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这确实非常接近你提供的价值。
https://stackoverflow.com/questions/56284971
复制相似问题