Excel中的Beta版本的Python等价物是什么? 在Excel中,公式为:
=BETA.DIST(A2,A3,A4,FALSE,A5,A6).
这给出了给定参数的Beta概率密度函数, 我们得到一些十进制值的结果。
但是Python SciPy reference does not give函数参数及其定义的形式与Excel类似。
我不知道如何在SciPy中执行此操作并正确传递参数。
答案 0 :(得分:4)
你可以看到here,scipy中beta分布的概率密度函数与excel(excel docs)具有完全相同的三个参数。
ALPHA
相当于a
,代表分发的参数。
BETA
相当于b
,代表分布的参数。
X
相当于x
和评估分配的值。
天气与否,excel中的Cumulativ
参数为True,通过调用scipy中的不同函数来表示。如果您想要累积分布(Cumulativ = True
),只需拨打myBeta.cdf(<myParams>)
,如果您需要概率密度函数(Cumulativ = False
),则可以调用myBeta.pdf(<myParams>)
。
这意味着:
BETA.DIST(X,Alpha,Beta,TRUE) <=>
scipy.stats.beta.cdf(x,a,b)
和
BETA.DIST(X,Alpha,Beta,FALSE) <=>
scipy.stats.beta.pdf(x,a,b)
答案 1 :(得分:0)
对于带有签名的Excel BETA.DIST
函数
BETA.DIST(x,alpha,beta,cumulative,[A],[B])
使用cumulative = FALSE
,使用函数scipy.stats.beta.pdf
,如下所示:
from scipy import stats
p = stats.beta.pdf(x, alpha, beta, loc=A, scale=B-A)
换句话说,将loc
设置为支持间隔[A,B]的下限,并将scale
设置为间隔的长度。
例如,documentation for BETA.DIST
包含示例
=BETA.DIST(A2,A3,A4,FALSE,A5,A6)
其中A2=2
,A3=8
,A4=10
,A5=1
和A6=3
。该函数的值报告为1.4837646
。使用scipy的相应表达式是:
In [59]: from scipy import stats
In [60]: x = 2
In [61]: alpha = 8
In [62]: beta = 10
In [63]: a = 1
In [64]: b = 3
In [65]: stats.beta.pdf(x, alpha, beta, loc=a, scale=b-a)
Out[65]: 1.4837646484375009
对于案例cumulative=TRUE
,请使用函数scipy.stats.beta.cdf
。上面给出的相同示例报告PDF的值为0.6854706
。这是使用scipy的计算:
In [66]: stats.beta.cdf(x, alpha, beta, loc=a, scale=b-a)
Out[66]: 0.6854705810546875