当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R GammaDist 伽玛分布


R语言 GammaDist 位于 stats 包(package)。

说明

具有参数 shapescale 的伽马分布的密度、分布函数、分位数函数和随机生成。

用法

dgamma(x, shape, rate = 1, scale = 1/rate, log = FALSE)
pgamma(q, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,
       log.p = FALSE)
qgamma(p, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,
       log.p = FALSE)
rgamma(n, shape, rate = 1, scale = 1/rate)

参数

x, q

分位数向量。

p

概率向量。

n

观察次数。如果是 length(n) > 1 ,则长度被视为所需的数量。

rate

指定比例的另一种方法。

shape, scale

形状和尺度参数。必须为正,严格来说scale

log, log.p

逻辑性;如果 TRUE ,概率/密度 将返回为

lower.tail

逻辑性;如果为 TRUE(默认值),则概率为 ,否则为

细节

如果省略 scale ,则采用默认值 1

参数为 shape scale 的伽玛分布具有密度

为了 , 。 (这里 是由以下函数实现的Rgamma()并在其帮助中定义。注意 对应于所有质量都在 0 点的平凡分布。)

均值和方差为

累积危险

-pgamma(t, ..., lower = FALSE, log = TRUE)

请注意,对于较小的 shape 值(和中等的 scale ),伽马分布的大部分质量位于 的值上,这些值非常接近零,以至于它们在计算机算术中将表示为零。因此rgamma很可能返回表示为零的值。 (对于非常大的 scale 值也会发生这种情况,因为实际生成是针对 scale = 1 完成的。)

dgamma 给出密度,pgamma 给出分布函数,qgamma 给出分位数函数,rgamma 生成随机偏差。

无效参数将导致返回值 NaN ,并带有警告。

结果的长度由 rgamman 确定,并且是其他函数的数值参数长度的最大值。

n 之外的数字参数将被回收到结果的长度。仅使用逻辑参数的第一个元素。

注意

S(Becker 等人,1988)参数化是通过 shaperate 进行的:S 没有 scale 参数。同时提供 scalerate 是错误的。

pgamma与不完全伽玛函数密切相关。根据 Abramowitz 和 Stegun 6.5.1(以及“数值配方”)的定义,这是

pgamma(x, a) 。其他作者(例如 Karl Pearson 在他的 1922 年表格中)省略了归一化因子,将不完全伽马函数 定义为 pgamma(x, a) * gamma(a) 。还有一些使用‘upper’不完整的伽玛函数,

可以通过 pgamma(x, a, lower = FALSE) * gamma(a) 计算。

但请注意, pgamma(x, a, ..) 目前需要 ,而不完整的伽马函数也为负 定义。在这种情况下,您可以使用包 gsl 中的 gamma_inc(a,x) (对于 )。

另请参阅 https://en.wikipedia.org/wiki/Incomplete_gamma_functionhttps://dlmf.nist.gov/8.2#i

例子

-log(dgamma(1:4, shape = 1))
p <- (1:9)/10
pgamma(qgamma(p, shape = 2), shape = 2)
1 - 1/exp(qgamma(p, shape = 1))

# even for shape = 0.001 about half the mass is on numbers
# that cannot be represented accurately (and most of those as zero)
pgamma(.Machine$double.xmin, 0.001)
pgamma(5e-324, 0.001)  # on most machines 5e-324 is the smallest
                       # representable non-zero number
table(rgamma(1e4, 0.001) == 0)/1e4

来源

dgamma 使用 Catherine Loader 贡献的代码通过泊松密度计算(请参阅 dbinom )。

pgamma 使用未发布(且未以其他方式记录)的算法“主要由 Morten Welinder 开发”。

qgamma 基于 C 翻译

贝斯特,D. J. 和 D. E. 罗伯茨 (1975)。算法AS91。卡方分布的百分点。应用统计学,24, 385-388。

加上最后的牛顿步骤来改进近似值。

rgamma 用于 shape >= 1 使用

Ahrens, J. H. 和 Dieter, U. (1982)。通过改进的拒绝技术生成伽玛变量。 ACM 通讯,25、47-54、

对于 0 < shape < 1 用途

阿伦斯,J. H. 和迪特,U. (1974)。从伽玛分布、贝塔分布、泊松分布和二项分布中采样的计算机方法。计算,12, 223-246。

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988). The New S Language. Wadsworth & Brooks/Cole.

Shea, B. L. (1988). Algorithm AS 239: Chi-squared and incomplete Gamma integral, Applied Statistics (JRSS C), 37, 466-473. doi:10.2307/2347328.

Abramowitz, M. and Stegun, I. A. (1972) Handbook of Mathematical Functions. New York: Dover. Chapter 6: Gamma and Related Functions.

NIST Digital Library of Mathematical Functions. https://dlmf.nist.gov/, section 8.2.

也可以看看

gamma 用于伽玛函数。

Distributions 用于其他标准分布,包括 dbeta 用于 Beta 分布和 dchisq 用于卡方分布(Gamma 分布的特殊情况)。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 The Gamma Distribution。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。