gpt4 book ai didi

python - 在 Python 中绘制给定分布的随机数及其期望值

转载 作者:行者123 更新时间:2023-12-02 00:09:27 24 4
gpt4 key购买 nike

我想将从某些分布中采样的随机生成值与这些分布的实际函数进行比较。

我目前使用 matplotlib 进行绘图,使用 numpy 进行采样。

我找到了一个可以实现我想要实现的目标的工作示例

# read mu, sigma, n
x = np.random.normal(mu, sigma, n)
count, bins, ignored = plt.hist(x, bins="auto", density=True)
plt.plot(bins, 1 / (sigma * np.sqrt(2 * np.pi)) * np.exp(-(bins - mu) ** 2 / (2 * sigma ** 2)), linewidth=2, color='r')
plt.show()

所以 x 是示例数组,他们使用直方图绘制它,并使用该函数的实际 pdf。

例如,这对于二项式分布如何起作用?我遵循了类似的模式:

x = np.random.binomial(N, P, n)
count, bins, ignored = plt.hist(x, bins="auto", density=True)
plt.plot(bins, scipy.special.comb(N, bins) * (P ** bins) * ((1 - P) ** (N - bins)), linewidth=2, color='r')
plt.show()

但是我得到的图表看起来不太正确:

graph

PDF 的高度似乎与直方图不匹配。我究竟做错了什么?是二项式函数吗?

最佳答案

我认为你说得对。你的 pdf 公式看起来是正确的。尝试使用二项式中更多数量的样本 (n)。回想一下 pdf 下的区域积分为 1.0。通过使用密度=True,您的直方图也被标准化,这很好。当您没有足够大的 n 时会发生什么?你有空的垃圾箱...而其他的垃圾箱相对较高。

我运行了你的代码 N=1000, P=0.7, n=10,000 并得到了一个不错的图。为此,E[X] = 700。情节看起来很合理...

enter image description here

关于python - 在 Python 中绘制给定分布的随机数及其期望值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60588594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com