copulaPdfClayton

首发版本:3.00.6

语法

copulaPdfClayton(alpha, X)

详情

计算 Clayton Copula 在给定评估点上的概率密度值。

Clayton Copula 是二维 Archimedean Copula,具有下尾相关性,适合描述变量在低分位区域同时发生极端变化的依赖结构。例如在投资组合风险管理中,可用于观察两个资产在市场下跌区间共同承压的密度贡献。

该函数仅支持二维输入。形状参数 alpha 越大,下尾相关越强;当 alpha = 0 时退化为独立 Copula,所有有效评估点的密度为 1。

参数

alpha DOUBLE 类型标量,指定 Clayton Copula 的形状参数 θ,取值范围为 [0, ∞)

  • alpha = 0 表示独立 Copula。
  • alpha > 0 表示正相关和下尾依赖。
  • alpha 越大,下尾依赖越强。

X 非空二维数值矩阵或表,维度为 n×2,指定需要计算密度的评估点集。其中 n 为评估点数量,即 X 的行数;2 表示该函数仅支持二维 Copula。

  • 所有元素必须为有限数。
  • 位于开区间 (0, 1) 内的行按 Clayton Copula 密度公式计算。
  • 任意元素 u 位于闭区间边界或区间外(u <= 0u >= 1)的行返回 0。
  • X 为表时,每一列表示一个变量,列顺序即变量顺序。

返回值

DOUBLE 向量,长度为 X 的行数。返回向量中的第 i 个元素表示 X 第 i 行对应的 Copula 概率密度值。

例子

例1. 计算形状参数 alpha=2.0 的 Clayton Copula 在中心点 [0.5, 0.5] 处的概率密度。

X = matrix([0.5], [0.5])

y = copulaPdfClayton(2.0, X)
y
// 输出: [1.4810036493422782]

例2. 计算多个评估点的密度,观察 Clayton Copula 对左下角共同低分位区域的密度增强。

u1 = [0.05, 0.5, 0.95, 0.1]
u2 = [0.05, 0.5, 0.95, 0.9]
X = matrix(u1, u2)

y = copulaPdfClayton(2.0, X)
y
// 输出: [10.639819990415681, 1.4810036493422782, 2.502570536285007, 0.04091192552312709]

例3. alpha=0 时退化为独立 Copula,有效评估点的密度为 1。

u1 = [0.2, 0.5, 0.8]
u2 = [0.7, 0.5, 0.3]
X = matrix(u1, u2)

y = copulaPdfClayton(0, X)
y
// 输出: [1, 1, 1]

例4. 展示边界点的处理方式。包含 0 或 1 的行返回 0。

u1 = [0.0, 0.2, 0.9]
u2 = [0.1, 0.3, 1.0]
X = matrix(u1, u2)

y = copulaPdfClayton(2.0, X)
y
// 输出: [0, 1.901323738996821, 0]

例5. 以表作为输入,使用拟合得到的 Clayton 形状参数计算样本密度。

setRandomSeed(5)
X = copulaRandClayton(2.0, 1000)
stockRanks = table(X[0] as stockA, X[1] as stockB)

fitRes = copulaFitClayton(stockRanks)
y = copulaPdfClayton(fitRes.alpha, stockRanks)

fitRes.alpha
// 输出: 2.0203979013617106
avg(y)
// 输出: 4.56299390574462

相关函数:copulaFitClaytoncopulaRandClaytoncopulaCdfClaytoncopulaPdfGaussiancopulaPdfStudentcopulaPdfFrankcopulaPdfGumbel