Python 在scipy中生成帕累托分布的一个随机值
我的代码如下:Python 在scipy中生成帕累托分布的一个随机值,python,scipy,statistics,pareto-chart,Python,Scipy,Statistics,Pareto Chart,我的代码如下: from scipy.stats import pareto values=[0.001,0.1,0.0000000000000000000000000000000019,2.,3.,4.,5.,6.,7.,8.,9.,20.,40.,80.,160.] for b in values: par = pareto.rvs(b,loc=0,scale=1, size=1) print(par[0]) 这是输出: 2.4710696399005953e+244 4
from scipy.stats import pareto
values=[0.001,0.1,0.0000000000000000000000000000000019,2.,3.,4.,5.,6.,7.,8.,9.,20.,40.,80.,160.]
for b in values:
par = pareto.rvs(b,loc=0,scale=1, size=1)
print(par[0])
这是输出:
2.4710696399005953e+244
4457.919153166827
inf
1.074371220057211
1.813450580334762
1.129136768422894
1.0493631839305024
1.0741561671750386
1.1357715848324075
1.3165771298337223
1.000756684137126
1.0001559590523508
1.0831688633464842
1.0001668159923398
1.006863649128853
/usr/local/lib/python3.6/dist-packages/scipy/stats/_continuous_distns.py:5414: RuntimeWarning: overflow encountered in power
return pow(1-q, -1.0/b)
这不是我所期望的。我认为帕累托分布给我的值接近给定值,有80/20的几率低于/高于给定值。我还尝试了一些变量loc和scale,但并没有得到一个好的结果
你能指出我的假设或使用scipy pareto模块的方式有何错误吗?我最终生成了一个1的pareto值,并将其与给定值相乘。参数比例I设置为0.2
from scipy.stats import pareto
values=[0.001,0.1,0.0000000000000000000000000000000019,2.,3.,4.,5.,6.,7.,8.,9.,20.,40.,80.,160.]
for b in values:
par = pareto.rvs(1,loc=0,scale=0.2, size=1)
par=par*b
print(par[0])