2015-09-01 104 views
2

使用R,我想從平均值爲50的指數分佈生成100個隨機數。我想將這些數字存儲在一個向量中。我認爲我做得對,但我無法在互聯網上找到任何東西來驗證我的代碼。這裏是我的代碼:從指數分佈生成隨機數

vector <- rexp(100,50) 
+1

好吧,'rexp'使用'rate'作爲第二個參數,'mean = 1/rate',所以'rexp(100,1./50.0)'可能是你想要的。你有沒有嘗試裝箱並繪製它? –

+0

感謝您的回覆!我繪製了rexp(100,50)的直方圖,然後用rexp(100,1/50)繪製了直方圖。我正在閱讀R的幫助部分,它確實討論了平均值= 1/rate。我很難理解爲什麼mean = 1/rate? – mapleleaf

+0

>我很難理解爲什麼mean = 1/rate? –

回答

0

最好的方法是使用你自己的功能。反CDF方法是大多數連續隨機變量的最佳選擇。

首先產生0和1

U=runif(1) 

下一頁之間的隨機均勻值的隨機指數變量將使用逆CDF方法

x=-1/lambda * ln(1-U) 

內置功能都不錯,但做遵循這個公式數學自己讓你知道你產生了多少個隨機變量來得到你的分佈後的一個隨機變量。你會發現對於一些發行版,比如普通日誌,有更有效的方法。