我想在给定CDF的情况下计算Inverse Gaussian Distribution的参数mu和lambda。
通过'给定CDF',我的意思是我已经为数据提供了数据和(估计的)分位数I.e。
Quantile - Value
0.01 - 10
0.5 - 12
0.7 - 13
现在我想找出这些数据的逆高斯分布,以便我可以例如根据我的分布查找值11的分位数。
我怎样才能找到值mu和lambda?
我能想到的唯一解决方案是使用梯度下降来找到使用RMSE作为误差测量的最佳mu和lambda。
有没有更好的解决方案?
评论:Matlab的MLE算法不是一个选项,因为它不使用分位数据。
答案 0 :(得分:1)
你真正想做的就是估计未知值的分布分位数,你有很多数据点可以简单地插入想要查找的值。
quantile_estimate = interp1(values, quantiles, value_of_interest);
答案 1 :(得分:0)
根据@mpiktas here我实施了一个梯度下降算法来估算我的mu和lambda:
使用MLE进行初步猜测
使用梯度下降和RMSE作为误差测量来学习mu和lambda。
答案 2 :(得分:0)
以下文章详细解释了如何计算逆高斯分布的分位数(逆CDF):
Giner,G和Smyth,GK(2016)。 statmod:逆高斯分布的概率计算。 R Journal。 http://arxiv.org/abs/1603.06687
R语言的代码包含在CRAN提供的R package statmod中。例如:
> library(statmod)
> qinvgauss(0.01, lower.tail=FALSE)
[1] 4.98
计算标准IG分布的0.01上尾分位数。