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
