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 <= 0或u >= 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
相关函数:copulaFitClayton、copulaRandClayton、copulaCdfClayton、copulaPdfGaussian、 copulaPdfStudent、copulaPdfFrank、copulaPdfGumbel
