2017-03-16 108 views
-1

我有不同的分佈屬於生物數據。R或Python - 模擬特定的理論多模態分佈

example of distribution

這些分佈預期遵循一個單一的模態分佈(mean = 0.5),無論是雙峯分佈(0.330.66)或三峯分佈(0.25, 0.5, 0.75)

我想要的是模擬這些「理論」分佈,以便將我從生物數據中獲得的一個與Python或R進行比較?

更多結束,我不知道哪個參數將用於比較它們... 形狀,標準偏差,偏斜度和峯度?

回答

-1

似乎遵循單峯分佈的數據通常可以建模爲一個或兩個高斯混合。同樣地,似乎遵循雙峯分佈的數據有時可能被建模爲兩個或三個的混合。如果您仍然擁有創建直方圖的原始數據,那麼您可以使用sklearn的工具爲您的數據確定「最佳」混合高斯。代碼http://www.astroml.org/book_figures/chapter4/fig_GMM_1D.html顯示瞭如何。一旦你有了這樣的模型,那麼你可以使用該代碼中顯示的技術來生成僞隨機樣本。

我看到的代碼是:

gmm = GMM(3, n_iter=1) 
gmm.means_ = np.array([[-1], [0], [3]]) 
gmm.covars_ = np.array([[1.5], [1], [0.5]]) ** 2 
gmm.weights_ = np.array([0.3, 0.5, 0.2]) 

因此它需要高斯在混合物中的數量的陳述,與他們的裝置,其協方差矩陣和一組權重,相對這大概是每個Gaussians的採樣次數。

編輯:我想猜測爲什麼我有一個反對票,以便我可以改善這個答案。這可能是因爲我包含了一個解釋不足的鏈接。

這個想法是,一旦參數設置爲如上所述,在混合物中從一個到(說)四個高斯來多次調用GMM,然後比較這些模型可用的質量度量,被稱爲aicbic爲了做出最佳數字的判斷。

如果這是別的答案錯了,請說出來!

+0

我不知道如何以及在哪裏可以使用我的原始數據來識別混合高斯。 – dilution