Python与Excel';贝塔分布?
在Excel中,Python与Beta发行版的等价物是什么? 在Excel中,公式为:Python与Excel';贝塔分布?,python,excel,scipy,beta-distribution,Python,Excel,Scipy,Beta Distribution,在Excel中,Python与Beta发行版的等价物是什么? 在Excel中,公式为: =BETA.DIST(A2,A3,A4,FALSE,A5,A6). 这给出了给定参数的β概率密度函数, 我们得到的结果是一些十进制值 但函数参数及其定义的格式与Excel类似 我不知道如何在SciPy中这样做并正确传递参数。正如您所见,SciPy中β分布的概率密度函数与excel()中的三个参数完全相同 ALPHA相当于a,表示分布的一个参数 BETA相当于b,表示分布的一个参数 X相当于X和应评估分布的值
=BETA.DIST(A2,A3,A4,FALSE,A5,A6).
这给出了给定参数的β概率密度函数,
我们得到的结果是一些十进制值
但函数参数及其定义的格式与Excel类似
我不知道如何在SciPy中这样做并正确传递参数。正如您所见,SciPy中β分布的概率密度函数与excel()中的三个参数完全相同
ALPHA
相当于a
,表示分布的一个参数
BETA
相当于b
,表示分布的一个参数
X
相当于X
和应评估分布的值
excel中的Cumulativ
参数是否为真通过调用scipy中的不同函数来表示。如果需要累积分布(Cumulativ=True
),只需调用myBeta.cdf()
,如果需要概率密度函数(Cumulativ=False
),则调用myBeta.pdf()
。
这意味着:
BETA.DIST(X,Alpha,Beta,TRUE) <=>
scipy.stats.beta.cdf(x,a,b)
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)
用于带签名的ExcelBETA.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
设置为间隔的长度
例如,包含示例
=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
In [66]: stats.beta.cdf(x, alpha, beta, loc=a, scale=b-a)
Out[66]: 0.6854705810546875