R 如何使用特定的平均值和95%的分位数来估计伽马距离的形状和比例?

R 如何使用特定的平均值和95%的分位数来估计伽马距离的形状和比例?,r,statistics,gamma-distribution,R,Statistics,Gamma Distribution,在R中,给定一个特定的平均值(或中位数)和一个特定的分位数(95%分位数),有没有办法计算伽马分布的规模和形状 例如,我有一个平均值=130 而a95%分位数=300 分布的偏移量为80 有没有办法获得满足这些标准的伽马的比例和形状?这里有一种方法: myfun <- function(shape) { scale <- 130/shape pgamma(300, shape, scale=scale) - 0.95 } tmp <- uniroot( myf

在R中,给定一个特定的平均值(或中位数)和一个特定的分位数(95%分位数),有没有办法计算伽马分布的规模和形状

例如,我有一个平均值=130

而a95%分位数=300

分布的偏移量80

有没有办法获得满足这些标准的伽马的比例和形状?

这里有一种方法:

myfun <- function(shape) {
    scale <- 130/shape
    pgamma(300, shape, scale=scale) - 0.95
}

tmp <- uniroot( myfun, lower=2, upper=10 )

myshape <- tmp$root
myscale <- 130/tmp$root

qgamma(0.95, shape=myshape, scale=myscale)
integrate( function(x) x*dgamma(x,shape=myshape,scale=myscale), 
    lower=0, upper=Inf )

myfun谢谢,虽然对于某些数字组合(例如:平均值=8,四分位数95%=32),这似乎不起作用,但它给出了一个错误,例如:uniroot中的错误(myfun,lower=2,upper=10):端点处的f()值不是相反的sign@user18441,您需要为其提供包含答案的起始值,这意味着其中一个从
myfun
返回正值,另一个返回负值。尝试几个值,看看得到什么,然后选择2作为起始值。有关详细信息,请参见uniroot。