從雙變量正態分佈和學生T分佈生成隨機樣本的最佳方法是什麼?在這兩種情況下,西格瑪都是一個,意味着0 - 所以我真正感興趣的唯一參數是相關性(以及學生t的自由度)。我需要在C++中有解決方案,所以我不能不幸地使用MatLab或Mathematica中已經實現的函數。如何從C++中的二元正態和學生T分佈生成隨機樣本?
回答
您可以使用GNU GSL庫。看到這裏的二元正態分佈:
http://www.gnu.org/software/gsl/manual/html_node/The-Bivariate-Gaussian-Distribution.html
和學生T分佈在這裏:
http://www.gnu.org/software/gsl/manual/html_node/The-t_002ddistribution.html
他們直截了當地使用。
你應該看看Boost庫隨機發行版 - 請參閱http://www.boost.org/doc/libs/1_41_0/libs/random/random-distributions.html。我發現它們很容易使用,一旦你將自己的頭圍繞在他們的基本概念上。不幸的是,我對統計數據不夠了解,不知道他們是否會完全滿足您的需求。
他們似乎並沒有實現我之後的任何分佈:( – Grzenio 2010-01-24 18:35:36
對於具有協方差單位和零均值的二元法線,只需繪製兩個單變量法線。
如果要繪製二元正態的裝置(M1,M2),標準偏差(S1,S2)和相關RHO,然後畫兩個單元的單變量法線X和Y,並設置
u = m1 + s1 * X
v = m2 + s2 * (rho X + sqrt(1 - rho^2) Y)
然後你和你的願望分配。
對於學生T,你必須繪製一個正常變量N和一個變量V.然後,N/sqrt(V)具有T分佈。
要繪製chi^2,你應該使用一個包。或者查看Numerical Recipes第7章瞭解如何從Gamma分佈中繪製(xhi^2是Gamma的特例)。
- 1. 從反伽瑪分佈隨機生成隨機採樣C++
- 2. 如何從matlab中的隨機數生成器生成樣本?
- 3. 在C中生成正態分佈隨機值的算法?
- 4. T-SQL從正則表達式生成隨機/樣本數據
- 5. 如何在Prolog中生成正態分佈隨機數?
- 6. 產生從用C數正態分佈的隨機數/ C++
- 7. 從R中的二項分佈生成相關的隨機數
- 8. 隨機樣本生成器
- 9. 如何在matlab中生成跟隨偏斜正態分佈的隨機數
- 10. Ruby中生成高斯(正態分佈)隨機數的代碼
- 11. 在FORTRAN中截斷正態分佈的僞隨機數生成
- 12. 如何從Matlab中截斷對數正態分佈生成隨機數?
- 13. 從指數分佈生成隨機數
- 14. 從隨機矩陣生成樣本
- 15. 生成具有特定分佈的隨機樣本
- 16. 如何使一個學生t分佈
- 17. 生成樣本分佈和中位數
- 18. 如何使用AMPL中的正態分佈生成一個隨機數矩陣?
- 19. 二分圖的隨機生成樹
- 20. 快速隨機正態分佈生成器
- 21. Matlab:從給定概率的正態分佈中生成隨機數
- 22. Java - 實現產生正態分佈的數字的隨機向量生成器
- 23. 均勻分佈的隨機數生成
- 24. 生成指數分佈的隨機數
- 25. 如何爲10個學生的結構生成隨機ID和測試分數
- 26. 具有正態分佈的隨機數生成器,用於objective-c
- 27. 從C++中概率分佈向量生成隨機數發生器
- 28. 隨機樣本數據集生成器
- 29. 給定二元離散分佈的隨機樣本
- 30. 真正的隨機c#生成器
rho是相關性而不是協方差。 – 2013-03-04 17:40:45