Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python与Excel';贝塔分布?_Python_Excel_Scipy_Beta Distribution - Fatal编程技术网

Python与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和应评估分布的值

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

=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)

用于带签名的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
设置为间隔的长度

例如,包含示例

=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