使用numpy.random
包随机生成随机数时scipy.stats
,为什么前一个包生成的直方图(总概率)有这么大的值,最大值接近4,而后者的直方图更合理,最大值远小于1 .
概率分布应该只总和为 1,并且没有单个概率超过 1。即使scipy
生成器看起来更温和,它仍然不等于 1。我怎样才能使两个生成器从numpy.random
并scipy.stats
以相同的方式运行,即没有单个概率超过最大值 1?
import numpy as np
import pandas as pd
from numpy.random import rand, randn
from scipy.stats import norm, johnsonsu
n = 100
x = randn(n)*.1
y = johnsonsu.rvs(a = 2.55, b= 2.25, size=n)
for i in [x, y]:
print(sum(i))
pd.Series(i).plot.kde()
除了绘图之外,单次运行的输出显示随机生成的向量的总和大相径庭:
0.9035925193845973
-144.49886490879146