【问题标题】:Python - Statistical distributionPython - 统计分布
【发布时间】:2016-06-11 17:42:35
【问题描述】:

我对 python 世界很陌生。另外,我不是统计学家。我需要用计算机科学编程语言实现数学家开发的数学模型。经过一番研究,我选择了 python。我很喜欢这样的编程(PHP/HTML/javascript)。

我有一列从 MySQL 数据库中提取的值,需要计算以下值 -

1) Normal distribution of it. (I don't have the sigma & mu values. These need to be calculated too apparently). 
2) Mixture of normal distribution
3) Estimate density of normal distribution
4) Calculate 'Z' score

值数组与下面的类似(我填充了示例数据)-

d1 = [3,3,3,3,3,3,3,9,12,6,3,3,3,3,9,21,3,12,3,6,3,30,12,6,3,3,24,30,3,3,3]


mu1, std1 = norm.fit(d1)

正态分布,我理解可以计算如下-

import numpy as np
from scipy.stats import norm

mu, std = norm.fit(data)

能否请我提供一些关于如何开始使用 (2)、(3) 和 (4) 的指示?我继续在网上查找,因为我期待听到专家的意见。

如果问题不完全有意义,请告诉我缺少哪些方面,以便我尝试获取相关信息。

如果能提供任何帮助,我将不胜感激。

【问题讨论】:

    标签: python numpy scipy statistics mixture-model


    【解决方案1】:

    您的问题的某些部分不清楚。它可能有助于给出你想要达到的目标的背景,而不是你正在采取的具体步骤。

    1) + 3) 在正态分布中——拟合分布,估计均值和标准差——基本上是一回事。均值和标准差完全确定分布。

    mu, std = norm.fit(data)
    

    无异于说“找到最适合分布的均值和标准差”。

    4) 计算 Z 分数 - 你必须解释你想要做什么。 usually means 数据点高于(或低于)平均值多少,以标准差为单位。这是你在这里需要的吗?如果是这样,那就简单了

    (np.array(data) - mu) / std
    

    2) 正态分布的混合——这完全不清楚。这通常意味着该分布实际上是由多个正态分布生成的。这是什么意思?

    【讨论】:

    • 谢谢阿米。我将不得不回到数学家并弄清楚。有点卡在数学和计算机世界之间……呸!! :D
    • 你好 Ami - 当我等待与数学家讨论时,我想我会根据我的理解更新这个问题。对于混合分布,正如您正确建议的那样,可能有几个正态分布,我已经用几个正态分布更新了这个问题。这现在有助于计算混合分布吗? :-)
    • @usert4jju7 我不太了解更新。混合分布是由多个基础分布组成的单一分布。您的更新使用了多个发行版 - 我只是看不到混合的来源。抱歉 - 我只是不明白。
    • 谢谢阿米。我会弄清楚这一点。看起来我手头的东西很混乱。我会清除这个,然后再回来找你。非常感谢。
    • 您好 Ami - 我进行了进一步讨论以更好地理解要求。要设计的模型有很多步骤。我在这里创建了一个更清晰的新问题 - http://stackoverflow.com/questions/35740095/python-generate-multivariate-mixture-t-distribution。您愿意与我分享您的专业知识和帮助吗?
    【解决方案2】:

    关于 (2),“混合高斯 Python”的网络搜索应该会出现很多点击。

    高斯混合是一个非常简单的想法——密度不是单个高斯凹凸,而是包含多个凹凸。密度是加权和 $\sum_k \alpha_k g(x, \mu_k, \sigma_k^2)$ 其中权重 $\alpha_k$ 为正且总和为 1,并且 $g(x, \mu, \sigma^ 2)$ 是单个高斯凹凸。

    为了确定参数 $\alpha_k$、$\mu_k$ 和 $\sigma_k^2$,通常使用所谓的期望最大化 (EM) 算法。再次,网络搜索应该找到很多点击。高斯混合的 EM 算法在一些 Python 库中实现。自己写也不算太复杂,但也许开始你可以使用现有的实现。

    【讨论】:

    • 非常感谢罗伯特。感谢您的时间和帮助。我会试试看的。
    猜你喜欢
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多