Scipy和beta分布:是否可以更改x值的范围?

d8tt03nd  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(142)

beta分布通常在区间x = [0,1]中指定。然而,也可以指定不同的x边界(见下图)。我如何改进下面的python代码以重现该图?

我的尝试(未完成!):

from scipy.stats import beta
import matplotlib.pyplot as plt
import numpy as np
a =  2
b = 2
x = np.arange (0.01, 1, 0.01)
y = beta.pdf(x,a,b)
plt.plot(x,y)
ltskdhd1

ltskdhd11#

您可以修改beta函数的locscale

from scipy.stats import beta
import matplotlib.pyplot as plt
import numpy as np
a = 2
b = 2
x = np.arange (-50, 50, 0.1)
y = beta.pdf(x,a,b, scale=100, loc=-50)
plt.plot(x,y)
bgtovc5b

bgtovc5b2#

我不确定alpha参数应该代表什么。
我得到了一个函数,通过改变参数可以产生三种不同的形状,但对我来说没有多大意义。如果你理解数学,但不知道如何在同一个图上产生多条线,这里有一些代码,至少可以做到这一点。

from scipy.stats import beta
import matplotlib.pyplot as plt
import numpy as np
a =  2
b = 2
x = np.linspace(0, 1.0, 100)
y1 = beta.pdf(x, 2.75, 2.75)
y2 = beta.pdf(x, 3.25, 3.25)
y3 = beta.pdf(x, 3, 3)
plt.plot(x, y1, "-", x, y2, "r--", x, y3, "g--")

此代码提供以下图形输出:

那和你要找的东西一样吗?

  • 顺便说一句,我使用了linspace()而不是您的arange(),因为它通过插值返回给定数量的间隔,这在使用浮点时总是很有用。np.arange (0.01, 1.00001, 0.01)中的元素比np.arange (0.01, 1, 0.01)中的多一个。*

相关问题