使用 R 将 Gamma 分布拟合到 Streamflows

Fitting a Gamma Distribution to Streamflows with R

你好,我有过去 100 年的月平均流量:

Sep <-
c(50504.61, 31903.57, 20575.81, 51250, 20282.16, 19932.05, 22302.73, 
24777.73, 27681.94, 18676.9, 28587.23, 29030.58, 24433.3, 18785.24, 
21913.74, 33662.53, 23215.58, 35792.85, 13766.63, 41484.56, 16209.67, 
74759.93, 19730.94, 61532.38, 24404.35, 14988.49, 24505.1, 19911.57, 
10058.62, 20984.86, 24913.8, 21067.56, 37107.83, 23730.15, 18556.58, 
24130.02, 14550.06, 21667.81, 11748.43, 17464.65, 15869.2, 27497.25, 
13161.09, 14842.04, 15144.44, 18796.16, 24514.99, 14315.39, 17463.56, 
12698.22, 10528.03, 35689.17, 15496.81, 11170.44, 11593.22, 30230.25, 
14554.43, 25971.54, 12939.35, 30981.11, 12630.06, 18271.7, 14998.52, 
21462.35, 39960.48, 23928.06, 20261.68, 23808.23, 12809.67, 18762.68, 
17108.04, 12861.55, 14521.27, 14215.91, 21513.8, 18797.29, 37495.3, 
27068.98, 37775.56, 26099.67, 34931.63, 23563.04, 19916.69, 15545.58, 
19366.38, 27494.53, 22375.44, 27635.01, 18280.28, 26641.43, 18894.12, 
42866.85, 25925.63, 38156.57, 18015.56)

我正在尝试使用函数将 Gamma 分布拟合到数据中:

fit.gamma <- fitdist(Sep, distr = "gamma", method = "mle")

它给出了一个错误:

simpleError in optim(par = vstart, fn = fnobj, fix.arg = fix.arg, obs = data, gr = gradient, ddistnam = ddistname, hessian = TRUE, method = meth, lower = lower, upper = upper, ...): non-finite finite-difference value [2]> Error in fitdist(Sep, distr = "gamma", method = "mle") : the function mle failed to estimate the parameters,
with the error code 100

我正在使用软件包

library(fitdistrplus)
library(sm)
library(Rlab)
library(MASS)

如有任何帮助,我们将不胜感激

Gamma distribution有两个参数,都是正数。 fitdist 函数使用 optim 函数来查找那些参数。但是,如果没有任何用户指定的限制,optim 将在迭代期间尝试偶数(不可行的)负参数,从而导致 NaNs。设置限制 lower = c(0, 0),将修复此错误。

归功于此 answer

library(fitdistrplus)

fit.gamma <- fitdist(Sep, distr = "gamma", method = "mle", lower = c(0, 0))

# Check result
plot(fit.gamma)

# Goodness-of-fit statistics
gofstat(fit.gamma)

#> Goodness-of-fit statistics
#>                              1-mle-gamma
#> Kolmogorov-Smirnov statistic  0.09099753
#> Cramer-von Mises statistic    0.16861125
#> Anderson-Darling statistic    1.07423429
#> 
#> Goodness-of-fit criteria
#>                                1-mle-gamma
#> Akaike's Information Criterion    2004.836
#> Bayesian Information Criterion    2009.944

reprex package (v0.2.0) 创建于 2018-03-24。