Sampling

從 t 分佈生成隨機數

  • September 17, 2013

如何生成遵循學生t分佈的隨機數?從幾個來源我了解到,這可以使用大小的隨機樣本來完成從正態分佈的總體中抽取,如下所示:

在哪裡是樣本均值,是正態分佈的平均值(我假設你可以使用標準正態分佈,所以?), 和是樣本標準差。

學生t分佈的自由度將是.

我是否正確理解,為了生成一個隨機的學生- t值自由度,我應該首先生成正態分佈值(即標準正態),然後計算平均值() 和標準差 () 並應用上述公式?如果我多次重複執行此操作,則生成的隨機值將接近學生 t 分佈自由程度?

我在 Excel 中使用了一個使用上述公式的宏和另一個生成隨機高斯函數的宏(它有效,我對其進行了測試)進行了嘗試,但生成的隨機值似乎並不完全是學生t分佈的。例如有 6 個自由度,10,000 個隨機值的方差約為雖然它應該是.

我對您問題的實際部分有一個答案,儘管不是理論上的答案。

有一個名為 TINV 的函數可以直接執行此操作。除了它只返回正隨機 t 變量。您可以使用以下公式繞過該限制:

=TINV(RAND(),6)*(RANDBETWEEN(0,1)*2-1)

…您可以用6DF 的任何值替換,並且rand()可以用 0 到 1 之間的任何數字替換。其餘部分只是保證負值和正值的概率相等。

引用自:https://stats.stackexchange.com/questions/70266

comments powered by Disqus