我有不同的分布属于生物数据。
这些分布预计遵循单一模态分布(0.33
),可以是双峰分布(0.66
和(0.25, 0.5, 0.75)
),也可以是三分布分布a
。< / p>
我想要的是模拟这些&#34;理论&#34;分配是为了比较我从生物数据中得到的那个,用Python还是R?
更重要的是,我想知道将使用哪个参数来比较它们...... 形状,标准偏差,偏斜和峰度?
答案 0 :(得分:-1)
似乎遵循单峰分布的数据通常可以建模为一个或两个高斯的混合。同样,看似遵循双峰分布的数据最好有时建模为两个或三个的混合。如果您仍然拥有创建直方图的原始数据,那么您可以使用 sklearn 的工具来识别最佳&#39;混合高斯为您的数据。 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])
因此,它需要一个混合物中高斯数的陈述,包括它们的均值,它们的协方差矩阵和一组权重,这可能是每个高斯被采样的相对次数。
编辑:我试图猜测为什么我会进行投票,以便我可以改进这个答案。这可能是因为我已经包含了解释不充分的链接。
一旦参数设置如上所述,想法是多次调用GMM,混合中使用一个到(比如说)四个高斯,然后比较这些模型的可用质量度量,给定样本,已知as aic 和 bic ,以便判断最佳数字。
如果答案中出现其他问题,请说出来!