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 <= 0或u >= 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
相关函数:copulaFitFrank、copulaRandFrank、copulaCdfFrank、copulaPdfGaussian、copulaPdfStudent、copulaPdfClayton、copulaPdfGumbel
