13

随机高斯(亩,西格玛)

上面是一个函数,允许从具有给定均值和方差的正态分布中随机抽取一个数字。但是,我们如何才能从不止由两个第一时刻定义的正态分布中提取值呢?

就像是:

random.gauss(mu, sigma, skew, kurtosis)

4

2 回答 2

8

使用 scipy 怎么样?您可以从scipy.stats 库中的连续分布中选择所需的分布。

广义 gamma 函数具有非零偏斜和峰度,但您需要做一些工作来确定使用哪些参数来指定分布以获得特定的均值、方差、偏斜和峰度。这里有一些代码可以帮助您入门。

import scipy.stats
import matplotlib.pyplot as plt
distribution = scipy.stats.norm(loc=100,scale=5)
sample = distribution.rvs(size=10000)
plt.hist(sample)
plt.show()
print distribution.stats('mvsk')

这显示来自均值为 100、方差为 25 的正态分布的 10,000 个元素样本的直方图,并打印分布的统计信息:

(array(100.0), array(25.0), array(0.0), array(0.0))

用广义伽马分布代替正态分布,

distribution = scipy.stats.gengamma(100, 70, loc=50, scale=10)

你得到统计数据 [均值、方差、偏斜、峰度] (array(60.67925117494595), array(0.00023388203873597746), array(-0.09588807605341435), array(-0.028177799805207737))

于 2013-10-26T09:57:25.857 回答
5

尝试使用这个:

http://statsmodels.sourceforge.net/devel/generated/statsmodels.sandbox.distributions.extras.pdf_mvsk.html#statsmodels.sandbox.distributions.extras.pdf_mvsk

给定一阶、二阶矩和偏斜以及 Fisher(超额)峰度的列表,返回高斯扩展 pdf 函数。

参数:mvsk:mu、mc2、skew、kurt 的列表

在我看来很好。该页面上有指向源的链接。

哦,这是另一个指向我的 StackOverflow 问题: Apply kurtosis to a distribution in python

于 2013-10-26T08:05:50.750 回答