我有不同的分佈屬於生物數據。R或Python - 模擬特定的理論多模態分佈
這些分佈預期遵循一個單一的模態分佈(mean = 0.5
),無論是雙峯分佈(0.33
和0.66
)或三峯分佈(0.25, 0.5, 0.75)
。
我想要的是模擬這些「理論」分佈,以便將我從生物數據中獲得的一個與Python或R進行比較?
更多結束,我不知道哪個參數將用於比較它們... 形狀,標準偏差,偏斜度和峯度?
我有不同的分佈屬於生物數據。R或Python - 模擬特定的理論多模態分佈
這些分佈預期遵循一個單一的模態分佈(mean = 0.5
),無論是雙峯分佈(0.33
和0.66
)或三峯分佈(0.25, 0.5, 0.75)
。
我想要的是模擬這些「理論」分佈,以便將我從生物數據中獲得的一個與Python或R進行比較?
更多結束,我不知道哪個參數將用於比較它們... 形狀,標準偏差,偏斜度和峯度?
似乎遵循單峯分佈的數據通常可以建模爲一個或兩個高斯混合。同樣地,似乎遵循雙峯分佈的數據有時可能被建模爲兩個或三個的混合。如果您仍然擁有創建直方圖的原始數據,那麼您可以使用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,然後比較這些模型可用的質量度量,被稱爲aic和bic爲了做出最佳數字的判斷。
如果這是別的答案錯了,請說出來!
我不知道如何以及在哪裏可以使用我的原始數據來識別混合高斯。 – dilution