【问题标题】:Finding the distribution through random number generation in R通过 R 中的随机数生成查找分布
【发布时间】:2015-12-01 08:05:47
【问题描述】:

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

}   

现在m1/mean(x)的分布。
现在我通过 exponentialFunc(10,0.5,10000) 调用了这个函数,它给出了一系列 m 的值。
但是,当我使用quantile(m,0.95) 时,我想找到概率为 0.95 的分布的分位数,输出为

> quantile(m,0.95) 95% NA
为什么会产生NA?我的代码有什么问题吗?

【问题讨论】:

    标签: r quantile exponential-distribution


    【解决方案1】:

    您似乎没有将函数的输出保存在名为 m 的对象中:

    > m <- exponentialFunc(10,0.5,10000)
    > quantile(m,0.95)
         95% 
    0.939102 
    

    您正在调用您的函数并且没有将其保存在任何地方,看来您正在做的事情(基本上)是这样的:

    > m<-c()
    > quantile(m,0.95)
    95% 
     NA
    

    【讨论】:

    • 很好的解释。或者,可以直接将函数输出作为参数传递:quantile(exponentialFunc(10,0.5,10000),0.95)
    猜你喜欢
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 2013-06-01
    相关资源
    最近更新 更多