给定分位数估计逆伽马分布的参数
Estimate the parameters of an inverse gamma distribution given quantiles
我正在尝试根据 0.025 和 0.975 分位数估计逆 Gamma 分布的参数。
目前,我找到了 rriskDistributions::get.gamma.par
,它给出了给定 Gamma 分布分位数的参数估计值。但是,我搞不清楚伽马的分位数和逆伽马之间的关系。
我应该如何继续,或者是否有可以为我做这件事的软件包?
您可以编写自己的 objective 函数来计算一组特定的反伽马参数的计算分位数与目标分位数之间的平方偏差:
library(invgamma)
objfun <- function(p,target) {
qq <- qinvgamma(c(0.025,0.975),shape=p[1],rate=p[2])
sum((qq-target)^2)
}
然后用optim()
最小化:
## example
tt <- qinvgamma(c(0.025,0.975), shape=2,rate=2)
optim(par=c(1,4), ## starting values; must be sensible
fn=objfun,
target=tt)
$par
[1] 1.980279 1.948050
$value
[1] 9.0741e-05
$counts
function gradient
61 NA
$convergence
[1] 0
$message
NULL
我正在尝试根据 0.025 和 0.975 分位数估计逆 Gamma 分布的参数。
目前,我找到了 rriskDistributions::get.gamma.par
,它给出了给定 Gamma 分布分位数的参数估计值。但是,我搞不清楚伽马的分位数和逆伽马之间的关系。
我应该如何继续,或者是否有可以为我做这件事的软件包?
您可以编写自己的 objective 函数来计算一组特定的反伽马参数的计算分位数与目标分位数之间的平方偏差:
library(invgamma)
objfun <- function(p,target) {
qq <- qinvgamma(c(0.025,0.975),shape=p[1],rate=p[2])
sum((qq-target)^2)
}
然后用optim()
最小化:
## example
tt <- qinvgamma(c(0.025,0.975), shape=2,rate=2)
optim(par=c(1,4), ## starting values; must be sensible
fn=objfun,
target=tt)
$par
[1] 1.980279 1.948050
$value
[1] 9.0741e-05
$counts
function gradient
61 NA
$convergence
[1] 0
$message
NULL