通过 R 中的随机数生成找到分布
Finding the distribution through random number generation in R
X
服从参数 lambda=0.5
.
的指数分布
我想找到 Pr(1/mean(X)< K)=0.95
因为我不知道 1/mean(X)
的分布,所以我通过以下代码生成了一个分布。
m<-c()
exponentialFunc<-function(n,lambda,nsim){
for(i in seq(nsim)){
x<-rexp(n,lambda)
y<-mean(x)
m<-c(m,1/y)
}
m
}
现在m
是1/mean(x)
的分布。
现在我用 exponentialFunc(10,0.5,10000)
调用了这个函数,它给出了 m.
的一系列值
但是当我想找到这个分布的分位数时,当我使用 quantile(m,0.95)
时概率为 0.95,输出是
> quantile(m,0.95)
95%
NA
为什么会产生NA
?我的代码有什么问题吗?
您似乎没有将函数的输出保存在名为 m
:
的对象中
> m <- exponentialFunc(10,0.5,10000)
> quantile(m,0.95)
95%
0.939102
您正在调用您的函数而不是将其保存在任何地方,看来您正在做的(基本上)是这样的:
> m<-c()
> quantile(m,0.95)
95%
NA
X
服从参数 lambda=0.5
.
的指数分布
我想找到 Pr(1/mean(X)< K)=0.95
因为我不知道 1/mean(X)
的分布,所以我通过以下代码生成了一个分布。
m<-c()
exponentialFunc<-function(n,lambda,nsim){
for(i in seq(nsim)){
x<-rexp(n,lambda)
y<-mean(x)
m<-c(m,1/y)
}
m
}
现在m
是1/mean(x)
的分布。
现在我用 exponentialFunc(10,0.5,10000)
调用了这个函数,它给出了 m.
的一系列值
但是当我想找到这个分布的分位数时,当我使用 quantile(m,0.95)
时概率为 0.95,输出是
> quantile(m,0.95)
95%
NA
为什么会产生NA
?我的代码有什么问题吗?
您似乎没有将函数的输出保存在名为 m
:
> m <- exponentialFunc(10,0.5,10000)
> quantile(m,0.95)
95%
0.939102
您正在调用您的函数而不是将其保存在任何地方,看来您正在做的(基本上)是这样的:
> m<-c()
> quantile(m,0.95)
95%
NA