从Python scipy.stats ppf函数获取多个值

从Python scipy.stats ppf函数获取多个值,python,scipy,distribution,Python,Scipy,Distribution,对于我的数据集,我能够使用scipy.stats函数拟合最佳分布。例如,最佳分布是: In[94]: best_dist Out[94]: <scipy.stats._continuous_distns.chi_gen at 0x119649cd0> In[95]: best_fit_params Out[95]: (0.40982879700171049, 0.10387428783818109, -4.5566762564110859e-19, 0.8983705460

对于我的数据集,我能够使用scipy.stats函数拟合最佳分布。例如,最佳分布是:

In[94]: best_dist
Out[94]: <scipy.stats._continuous_distns.chi_gen at 0x119649cd0>

In[95]: best_fit_params
Out[95]: 
(0.40982879700171049,
 0.10387428783818109,
 -4.5566762564110859e-19,
 0.89837054605455657)

我不明白为什么当我只期望一个值时,返回长度为4的数组?如果其中一个是我的答案,那么哪个是那个?

正确的用法是打开您的
最佳匹配参数的包装:

In [1]: param = (0.40982879700171049,
   ...:  0.10387428783818109,
   ...:  -4.5566762564110859e-19,
   ...:  0.89837054605455657)

In [2]: from scipy.stats import beta

In [3]: beta.ppf(0.95, *param)     # notice the asterisk
Out[3]: 0.89837054605311872
说明:
beta.shapes
“a,b”
,因此
beta.ppf
的签名实际上是
ppf(self,q,a,b,loc=0,scale=1)
。您的
best_fit_param
是一个由四个值组成的元组,分别表示a、b、loc和scale

但是,我不确定您在[96]
中的
。我认为,在任何合理的最新scipy安装中,使用两个参数调用ppf都会出错(因为它至少需要三个参数:一个用于
q
,另外两个用于
a
b

In [1]: param = (0.40982879700171049,
   ...:  0.10387428783818109,
   ...:  -4.5566762564110859e-19,
   ...:  0.89837054605455657)

In [2]: from scipy.stats import beta

In [3]: beta.ppf(0.95, *param)     # notice the asterisk
Out[3]: 0.89837054605311872