2026a

# gamcdf


Gamma 累积分布函数

函数库: TyStatistics

# 语法

p = gamcdf(x,a)
p = gamcdf(x,a,b)

p,pLo,pUp = gamcdf(x,a,b,pCov)
p,pLo,pUp = gamcdf(x,a,b,pCov,alpha)

___ = gamcdf(___;tail="upper")

# 说明

p=gamcdf(x,a,) 返回标准 gamma 分布的累积分布函数 (cdf),形状参数在 a 中,以 x 中的值进行计算。

p=gamcdf(x,a,b) 返回伽马分布的 cdf,形状参数在 a 中,比例参数在 b 中,以 x 中的值进行计算。示例

p,pLo,pUp = gamcdf(x,a,b,pCov) 当 a 和 b 是估计值时,还返回 p 的 95% 置信区间 [pLo pUp] 。pCov 为估计参数的协方差矩阵。示例

p,pLo,pUp = gamcdf(x,a,b,pCov,alpha) 指定置信区间 [pLo pUp] 的置信水平为 100(1-alpha)% 。

___ = gamcdf(___;tail="upper") 返回对 x 中的值求值的 cdf 的补集,该算法比从 1 中减去下尾值更准确地计算上尾极端概率。"upper" 可以跟在前面语法中的任何输入参数组合后面。示例

# 示例

计算伽玛分布累积分布函数

计算伽马分布平均值的 cdf,该值等于参数 ab 的乘积。

using TyStatistics
a = [1:6;]
b = [5:10;]
prob = gamcdf.(a .* b, a, b)
prob = 6-element Vector{Float64}:
 0.6321205588285577
 0.5939941502901619
 0.5768099188731565
 0.5665298796332912
 0.5595067149347877
 0.5543203586353886

随着 ab 的增加,分布变得更加对称,平均值接近中值。

Gamma cdf 值的置信区间
使用伽马分布数据找到一个置信区间,该区间估计观测值处于区间 [0, 10] 中的概率。

生成 1000 个具有形状 2 和尺度 5 的伽马分布随机数样本。

using TyStatistics
using TyMath
rng = MT19937ar(5489)
x = gamrnd(rng,2,5,1000,1);

计算参数的估计值。

params, = gamfit(x)
params
1×2 Matrix{Float64}:
 2.10893  4.81474

将参数存储为 ahat 和 bhat。

ahat = params[1];
bhat = params[2];

找出参数估计值的协方差。

_,nCov = gamlike(params,x)
nCov = 2×2 Matrix{Float64}:
  0.00772258  -0.0176308
 -0.0176308    0.0512436

创建一个置信区间来估计观测值在区间 [0, 10] 中的概率。

prob,pLo,pUp = gamcdf(10,ahat,bhat,nCov)
prob = 0.583039755013539

pLo =  0.5587410678352404

pUp = 0.6069416722305647
互补 cdf(尾分布)
确定具有形状参数 2 和尺度参数 3 的伽马分布的观测值在区间 [150, Inf] 中的概率。
using TyStatistics
p1 = 1 - gamcdf(150,2,3)
p1 = 0.0

Gamcdf(150,2,3)接近于 1,所以 p1 等于 0。指定 "upper" 以便 gamcdf 更准确地计算极端上尾概率。


p2 = gamcdf(150,2,3,"upper")
p2 = 9.836624224615988e-21

# 输入参数

x-计算 cdf 的值
非负标量值 | 非负标量值数组

计算 cdf 的值,指定为非负标量值或非负标量值数组。

  • 要以多个值计算 cdf,请使用数组指定 x

  • 要计算多个分布的 cdf,请使用数组指定 a 和 b

如果一个或多个输入参数 x、a 和 b 是数组,则数组大小必须相同。在这种情况下,gamcdf 将每个标量输入扩展为与数组输入大小相同的常量数组。p 中的每个元素是由 a 和 b 中的相应元素指定的分布的 cdf 值,在 x 中的相应元素处进行计算。

示例: [3 4 7 9]

数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128

a-形状参数
正标量值 | 正标量值数组

伽马分布的形状参数,指定为正标量值或正标量值数组。

  • 要以多个值计算 cdf,请使用数组指定 x

  • 要评估多个分布的 cdf,请使用数组指定 a 和 b

如果一个或多个输入参数 x、a 和 b 是数组,则数组大小必须相同。在这种情况下,gamcdf 将每个标量输入扩展为与数组输入大小相同的常量数组。p 中的每个元素是由 a 和 b 中的相应元素指定的分布的 cdf 值,在 x 中的相应元素处进行计算。

示例: [1 2 3 5]

数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128

b-比例参数
1(默认值)| 正标量值 | 正标量值数组

伽马分布的比例参数,指定为正标量值或正标量值数组。

  • 要以多个值计算 cdf,请使用数组指定 x

  • 要评估多个分布的 cdf,请使用数组指定 a 和 b

如果一个或多个输入参数 x、a 和 b 是数组,则数组大小必须相同。在这种情况下,gamcdf 将每个标量输入扩展为与数组输入大小相同的常量数组。p 中的每个元素是由 a 和 b 中的相应元素指定的分布的 cdf 值,在 x 中的相应元素处进行计算。

示例: [1 1 2 2]

数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128

pCov-估计
2 x 2 的数值矩阵

估计 a 和 b 的协方差,用 2 × 2 矩阵表示。如果指定 pCov 来计算置信区间 [pLo,pUp],则 x、a 和 b 必须是标量值。你可以用 gamfit 或 mle 来估计 a 和 b ,用 gamlike 来估计 a 和 b 的协方差。

数据类型: Float32 |Float64

alpha-显著性水平
0.05 (默认) | 介于 0 和 1 之间的数字

置信区间的显著性水平,在(0,1)范围内以标量指定。置信水平为 100(1-alpha)% ,其中 alpha 是置信区间不包含真实值的概率。

示例: 0.01

数据类型: Float32 |Float64

tail-尾概率
"lower"(默认)| "upper"

是否返回对 x 中的值求值的 cdf 的补集,默认不返回。

数据类型: String

# 输出参数

p-cdf 值
标量 | 数值数组

cdf 值在 x 中的值处求值,作为标量值或标量值数组返回。在任何必要的标量展开之后,p 与 x、a 和 b 的大小相同。p 中的每个元素是由 a 和 b 中的相应元素指定的分布的 cdf 值,在 x 中的相应元素处进行计算。

pLo-置信下界
标量 | 数值数组

p 的较低置信度界限,作为标量值或标量值数组返回。pLo 和 p 的大小相同。

pUp-置信上界
标量 | 数值数组

p 的较高置信度界限,作为标量值或标量值数组返回。pUp 和 p 的大小相同。

# 关于更多

Gamma cdf

伽玛分布(Gamma distribution)是一个双参数曲线族,其参数 ​​a​​ 和 ​​b​​ 分别表示 ​​形状(shape)​​ 和 ​​尺度(scale)​​。

cdf 表示为:

结果 ​​p​​ 表示从一个参数为 ​​a​​ 和 ​​b​​ 的伽玛分布中,单次观测值落在区间 ​​[0, x]​​ 内的概率。伽玛分布的累积分布函数(CDF)与​​不完全伽玛函数(incomplete gamma function)​​ gammainc 的关系如下:

标准伽玛分布​​在尺度参数 b=1 时成立,此时其累积分布函数(CDF)​​精确对应​​不完全伽玛函数。

# 另请参阅

gamfit | gampdf | gaminv | gamrnd