为什么numpy.random和scipy.stats随机生成的分布如此不同,以至于它们的概率不能正确相加?

zpjtge22  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(122)

当使用numpy.random软件包和scipy.stats软件包随机生成随机数时,为什么前者软件包生成的直方图(总概率)具有如此大的值,最大值接近4,而后者的直方图更合理,最大值远小于1。


的数据
概率分布的和应该只为1,没有一个概率超过1。即使scipy生成器看起来更驯服,它仍然不为1。我如何才能使numpy.randomscipy.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

bzzcjhmw

bzzcjhmw1#

我怎样才能使numpy.randomscipy.stats的生成器.没有一个概率超过最大值1?
这已经在评论中,但让我们把它放在一个答案中:对于连续分布,概率 * 密度 * 函数允许超过1;它是概率密度函数在支持上的积分必须等于1。
除了图,单次运行的输出显示随机生成的向量之和非常不同:
没有理由期望来自不同分布的随机样本之和彼此相似,即使来自同一分布的两个相同大小的样本也可能非常不同(取决于分布)。

相关问题