r - 尝试使用 R fitdistr{MASS} 拟合 Gamma 分布时出错

标签 r gamma-distribution

我在 R 中遇到 fitdistr{MASS} 函数的问题。我有这个向量:

a <- c(26,73,84,115,123,132,159,207,240,241,254,268,272,282,300,302,329,346,359,367,375,378, 384,452,475,495,503,531,543,563,594,609,671,687,691,716,757,821,829,885,893,968,1053,1081,1083,1150,1205,1262,1270,1351,1385,1498,1546,1565,1635,1671,1706,1820,1829,1855,1873,1914,2030,2066,2240,2413,2421,2521,2586,2727,2797,2850,2989,3110,3166,3383,3443,3512,3515,3531,4068,4527,5006,5065,5481,6046,7003,7245,7477,8738,9197,16370,17605,25318,58524)

我想使用命令将 Gamma 分布拟合到数据:

fitted.gamma <- fitdistr(a, "gamma")

但是我有这样的错误:

Error in optim(x = c(26, 73, 84, 115, 123, 132, 159, 207, 240, 241, 254,  : 
non-finite finite-difference value [1]
In addition: Warning messages:
1: In densfun(x, parm[1], parm[2], ...) : NaNs produced
2: In densfun(x, parm[1], parm[2], ...) : NaNs produced
3: In densfun(x, parm[1], parm[2], ...) : NaNs produced
4: In densfun(x, parm[1], parm[2], ...) : NaNs produced

所以我尝试初始化参数:

(fitted.gamma <- fitdistr(a, "gamma", start=list(1,1)))

对象 Fitted.gamma 已创建,但打印时会产生错误:

Error in dn[[2L]] : subscript out of bounds

你知道发生了什么或者知道其他一些 R 函数来通过 MLE 拟合单变量分布吗?

预先感谢您的任何帮助或回复。

库巴

最佳答案

始终先绘制你的东西,你的缩放比例太糟糕了。

library(MASS)
a <- c(26,73,84,115,123,132,159,207,240,241,254,268,272,282,300,302,329,346,359,367,375,378, 384,452,475,495,503,531,543,563,594,609,671,687,691,716,757,821,829,885,893,968,1053,1081,1083,1150,1205,1262,1270,1351,1385,1498,1546,1565,1635,1671,1706,1820,1829,1855,1873,1914,2030,2066,2240,2413,2421,2521,2586,2727,2797,2850,2989,3110,3166,3383,3443,3512,3515,3531,4068,4527,5006,5065,5481,6046,7003,7245,7477,8738,9197,16370,17605,25318,58524)
## Ooops, rater wide
plot(hist(a))
fitdistr(a/10000,"gamma") # gives warnings
# No warnings
fitted.gamma <- fitdistr(a/10000, dgamma,  start=list(shape = 1, rate = 0.1),lower=0.001)

现在您可以决定如何进行缩放

关于r - 尝试使用 R fitdistr{MASS} 拟合 Gamma 分布时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15974773/

相关文章:

python - 如何从pdf(概率密度函数)中分离两个分布?

string - 查找每行中的单词数

r - 从 data.frame 中删除 NA 超过列长度 15% 的列

r - R 中的交互式散点图,叠加/悬停摘要/工具提示作为用户提供的绘图功能

r - 如何估计 Gamma 距离的形状和尺度。具有特定均值和 95% 分位数?

r - R中的经验贝叶斯

python - 相当于python中Matlab的gaminv

python - 使用 python scipy 将 Gamma 分布拟合到数据

css - 仅在 Shiny 仪表板的特定 tabItem 上应用 css 格式

r - 如何计算没有 NA 的中值?