如何计算给定CDF的逆高斯分布?

时间:2012-10-30 16:15:49

标签: matlab statistics distribution gaussian quantile

我想在给定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算法不是一个选项,因为它不使用分位数据。

3 个答案:

答案 0 :(得分:1)

你真正想做的就是估计未知值的分布分位数,你有很多数据点可以简单地插入想要查找的值。

quantile_estimate = interp1(values, quantiles, value_of_interest);

答案 1 :(得分:0)

根据@mpiktas here我实施了一个梯度下降算法来估算我的mu和lambda:

  1. 使用MLE进行初步猜测

  2. 使用梯度下降和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上尾分位数。