在Python scipy.stats.gumbel_r中使用带有gumbel_r的矩方法

时间:2018-07-19 16:32:16

标签: python scipy

我想为2、5、10、25、50和100个返回年计算给定数据的值。我需要将Gumbel dist与矩量法一起使用。但是,下面的代码不起作用。

return_years_5min=stats.gumbel_r.ppf([0.50,0.80,0.90,0.96,0.98,0.99],  loc=mean_each_col[0], scale=std_each_col[0], moments='mv')

有人知道这是否可行吗?

1 个答案:

答案 0 :(得分:0)

loc的{​​{1}}和scale参数不是分布的均值和标准差,因此不应使用均值和标准差。开发。数据集的gumbel_rloc参数。

如果可以使用最大似然方法代替矩量方法,则可以使用scale方法估计参数(假定fit()是您的原始数据集):

data

SciPy不包含矩量分布方法的实现,因此,如果必须使用该方法,则必须实现它。 loc, scale = stats.gumbel_r.fit(data) 分布的均值和方差的公式非常简单,只需几行代码即可实现该方法:

gumbel_r

您将使用

而不是使用def gumbel_r_mom(x): scale = np.sqrt(6)/np.pi * np.std(x) loc = np.mean(x) - np.euler_gamma*scale return loc, scale
stats.gumbel_r.fit

然后将收益水平计算为

loc, scale = gumbel_r_mom(data)