什麼是Excel中Beta分佈的Python等價物? 在Excel中,計算公式爲:什麼是Excel的Beta分佈的Python等價物?
=BETA.DIST(A2,A3,A4,FALSE,A5,A6).
這使貝塔概率密度函數給定參數, 和我們得到的結果是一些十進制值。
但Python SciPy reference does not give的函數參數及其定義與Excel類似。
我沒有得到如何在SciPy中做到這一點,並正確傳遞參數。
什麼是Excel中Beta分佈的Python等價物? 在Excel中,計算公式爲:什麼是Excel的Beta分佈的Python等價物?
=BETA.DIST(A2,A3,A4,FALSE,A5,A6).
這使貝塔概率密度函數給定參數, 和我們得到的結果是一些十進制值。
但Python SciPy reference does not give的函數參數及其定義與Excel類似。
我沒有得到如何在SciPy中做到這一點,並正確傳遞參數。
你可以看到here,scipy中β分佈的概率密度函數與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)
爲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