copulaCdfGaussian

首发版本:3.00.6

语法

copulaCdfGaussian(rho, X)

详情

计算 Gaussian Copula 在给定评估点 X 上的累积分布值。

参数

rho 标量或矩阵,表示线性相关参数。

  • X 为二维数据时,rho 可以是 DOUBLE 标量,指定两个变量之间的相关系数,取值范围为 (-1, 1)

  • rho 也可以是 2×2 相关系数矩阵。

X 非空二维数值矩阵或表,维度为 n×p(目前仅支持 p = 2),表示评估点集。其中 n 为评估点数量,即 X 的行数;p 为变量维度,即 X 的列数。

  • 所有元素必须为有限数。

  • 位于开区间 (0, 1) 内的按 Gaussian Copula 累积分布函数值公式计算。

  • 任意维度 u <= 0 的行返回 0;所有维度 u >= 1 的行返回 1。

  • X 为表时,每一列表示一个变量,列顺序即变量顺序。

返回值

DOUBLE 类型向量,长度为 X 的行数。返回向量中的第 i 个元素表示 X 第 i 行对应的 Copula 累积分布值。

例子

例1. 计算相关系数为 0.5 的二维 Gaussian Copula 在中心点 [0.5, 0.5] 处的累积分布值。

X = matrix([0.5], [0.5])
y = copulaCdfGaussian(0.5, X)
y
// Output: [0.3333333334083112]

例2. 评估多组二维伪观测值,并展示边界点的处理方式。

u1 = [0.0, 0.2, 1.0]
u2 = [0.1, 0.3, 1.0]
X = matrix(u1, u2)
y = copulaCdfGaussian(0.7, X)
y
// Output: [0, 0.1433145419221347, 1]

例3. 使用拟合得到的相关系数矩阵计算样本点的 Gaussian Copula 累积分布值。

n = 1000
x1 = norm(0, 1, n)
x2 = 0.7 * x1 + sqrt(1 - 0.49) * norm(0, 1, n)
u1 = (rank(x1) + 1) \ (n + 1.0)
u2 = (rank(x2) + 1) \ (n + 1.0)
X = matrix(u1, u2)

fitRes = copulaFitGaussian(X)
y = copulaCdfGaussian(fitRes.rho, X)

avg(y)
// Output: 0.3757154812666682

例4. 以表作为输入,计算两只股票伪观测值在给定 Gaussian Copula 参数下的累积分布值。

n = 1000
retA = norm(0.0005, 0.02, n)
retB = 0.6 * retA + sqrt(1 - 0.36) * norm(0.0003, 0.015, n)
uA = (rank(retA) + 1) \ (n + 1.0)
uB = (rank(retB) + 1) \ (n + 1.0)

stockReturns = table(uA as stockA, uB as stockB)
y = copulaCdfGaussian(0.6, stockReturns)

y[0:5]
// Output: [0.887594899922026,0.840758480743543,0.331614007436525,0.452333747243809,0.446404642130547]

相关函数:copulaFitGaussian, copulaRandGaussian, copulaCdfGaussian, copulaCdfStudent, copulaCdfClayton, copulaCdfFrank, copulaCdfGumbel