我试图估计符合生态密度(即每面积生物量)数据的伽马分布的参数.我一直在使用R中MASS包中的fitdistr()命令(版本3.0.0:x86_64-w64-mingw32/x64(64位)).这是分布参数的最大似然估计命令.
数据向量非常大,但汇总统计数据如下:
闵.= 0; 第一曲.= 87.67; 中位数= 199.5; 平均值= 1255; 差异= 2.79E + 07; 第三曲.= 385.6; 最大.= 33880
我用来运行MLE过程的代码是:
gdist <- fitdistr(data, dgamma,
start=list(shape=1, scale=1/(mean(data))),lower=c(1,0.1))
Run Code Online (Sandbox Code Playgroud)
R给我以下错误:
optim中的错误(x = c(6.46791148085828,4060.54750836902,99.6201565968665,:非有限的有限差分值[1]
其他遇到此类问题并转向stackoverflow寻求帮助的人似乎已经找到了将"lower ="参数添加到其代码中和/或删除零的解决方案.如果我删除零观测值,我发现R将提供拟合参数,但我的印象是伽玛分布涵盖范围0 <= x> inf(Forbes et al.2011.Statistical Distributions)?
我是否对伽马分布的范围产生了错误的印象?或者是否有一些我在MLE上缺少的其他问题(我是新手).
r ×1