copulaPdfFrank

首发版本:3.00.6

语法

copulaPdfFrank(alpha, X)

详情

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

Frank Copula 是二维 Archimedean Copula,可描述对称相关结构,不具有尾部相关性。与 Clayton 和 Gumbel 不同,Frank Copula 的形状参数可以为正也可以为负,因此可用于正相关和负相关的二维依赖结构。

该函数仅支持二维输入。形状参数 alpha 越远离 0,依赖强度越强;alpha > 0 表示正相关,alpha < 0 表示负相关。alpha 趋近于 0 时趋于独立 Copula,但 alpha = 0 不在 Frank Copula 参数定义域内。

参数

alpha DOUBLE 类型标量,指定 Frank Copula 的形状参数 θ,取值范围为 (-∞, ∞) \ {0}

  • alpha > 0 表示正相关。
  • alpha < 0 表示负相关。
  • alpha 的绝对值越大,相关强度越强。

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

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

返回值

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

例子

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

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

y = copulaPdfFrank(5.0, X)
y
// 输出: [1.4735637245846294]

例2. 对多个评估点计算正相关 Frank Copula 密度。Frank Copula 的依赖结构是对称的,不会像 Clayton 或 Gumbel 那样只强化单侧尾部。

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

y = copulaPdfFrank(5.0, X)
y
// 输出: [3.3778185121129884, 1.4735637245846294, 3.3778185121129876, 0.09167524793418452]

例3. 计算负相关 Frank Copula 密度。对于负相关参数,反向分位组合 [0.1, 0.9] 的密度高于同向尾部组合。

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

y = copulaPdfFrank(-3.0, X)
y
// 输出: [0.21159924028293484, 1.1808253751833029, 0.21159924028293503, 2.006351286314979]

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

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

y = copulaPdfFrank(5.0, X)
y
// 输出: [0, 1.6164687265336453, 0]

例5. 使用拟合得到的 Frank 形状参数计算样本密度。

setRandomSeed(5)
X = copulaRandFrank(5.0, 1000)
fitRes = copulaFitFrank(X)

y = copulaPdfFrank(fitRes.alpha, X)

fitRes.alpha
// 输出: 5.156894003013904
avg(y)
// 输出: 1.5819408179753056

相关函数:copulaFitFrankcopulaRandFrankcopulaCdfFrankcopulaPdfGaussiancopulaPdfStudentcopulaPdfClaytoncopulaPdfGumbel