Sampling
從 t 分佈生成隨機數
如何生成遵循學生t分佈的隨機數?從幾個來源我了解到,這可以使用大小的隨機樣本來完成從正態分佈的總體中抽取,如下所示:
在哪裡是樣本均值,是正態分佈的平均值(我假設你可以使用標準正態分佈,所以?), 和是樣本標準差。
學生t分佈的自由度將是.
我是否正確理解,為了生成一個隨機的學生- t值自由度,我應該首先生成正態分佈值(即標準正態),然後計算平均值() 和標準差 () 並應用上述公式?如果我多次重複執行此操作,則生成的隨機值將接近學生 t 分佈自由程度?
我在 Excel 中使用了一個使用上述公式的宏和另一個生成隨機高斯函數的宏(它有效,我對其進行了測試)進行了嘗試,但生成的隨機值似乎並不完全是學生t分佈的。例如有 6 個自由度,10,000 個隨機值的方差約為雖然它應該是.
我對您問題的實際部分有一個答案,儘管不是理論上的答案。
有一個名為 TINV 的函數可以直接執行此操作。除了它只返回正隨機 t 變量。您可以使用以下公式繞過該限制:
=TINV(RAND(),6)*(RANDBETWEEN(0,1)*2-1)
…您可以用
6
DF 的任何值替換,並且rand()
可以用 0 到 1 之間的任何數字替換。其餘部分只是保證負值和正值的概率相等。