2017-02-15 881 views
2

我想在Python中使用scypi来定义帕累托分布。我记住alpha和xm的值,就像它们在经典的分布定义中一样,例如在wikipedia中:https://en.wikipedia.org/wiki/Pareto_distribution 假设我想要alpha = 4和xm = 3。 如何初始化scipy.stats。帕雷托与这些参数?在Python scipy中定义帕累托分布

import scipy.stats as sts 
pareto_alpha = 4 
pareto_xm = 3 
pareto_rv = sts.pareto(???) 

这里是帕累托功能https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.pareto.html#scipy.stats.pareto 我找不到构造一个清晰的描述存在的文档页面。

+0

你想要的概率密度函数我相信? – miradulo

+0

'sts.pareto.pdf(np.linspace(0,5),4,3)' –

回答

2

你可以画出像这样B(形状参数)的不同值的PDF:

import numpy as np 
from matplotlib import pyplot as plt 
from scipy.stats import pareto 

xm = 1 # scale 
alphas = [1, 2, 3] # shape parameters 
x = np.linspace(0, 5, 1000) 

output = np.array([pareto.pdf(x, scale = xm, b = a) for a in alphas]) 
plt.plot(x, output.T) 
plt.show() 

pareto plot

+0

峰值出现比维基百科页面稍低。那是因为你的'x'确实不是1? – kazemakase

+0

是的,这是因为'x'的分裂。我会调整它以使网格更精细。 –