3

Excel 中 Beta 发行版的 Python 等价物是什么?在 Excel 中,公式为:

=BETA.DIST(A2,A3,A4,FALSE,A5,A6).

这给出了给定参数的 Beta 概率密度函数,我们得到了一些十进制值的结果。

但是Python SciPy 参考并没有以与 Excel 类似的形式给出函数参数及其定义。

我不知道如何在 SciPy 中执行此操作并正确传递参数。

4

2 回答 2

4

正如您在此处看到的,scipy 中 beta 分布的概率密度函数具有与 excel( excel 文档)完全相同的三个参数。

ALPHA等价于a并表示分布的一个参数。

BETA等价于b并表示分布的一个参数。

X等价于x应该评估分布的值。

天气与否Cumulativexcel中的参数为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) 
于 2017-04-03T13:23:50.443 回答
0

对于BETA.DIST带签名的 Excel 函数

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区间的长度。

例如,文档BETA.DIST包括示例

=BETA.DIST(A2,A3,A4,FALSE,A5,A6)

其中A2=2, A3=8,和. A4=10_ 该函数的值被报告为。使用 scipy 对应的表达式为:A5=1A6=31.4837646

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
于 2017-04-03T22:16:23.503 回答