copulaPdfGaussian
首发版本:3.00.6
语法
copulaPdfGaussian(rho, X)
详情
计算 Gaussian Copula 在给定评估点上的概率密度值。
Gaussian Copula 用相关系数矩阵刻画变量之间的对称依赖结构,不具有尾部相关性,常用于作为风险建模或依赖结构比较中的基准模型。copulaPdfGaussian 适合在已经确定相关参数后,对一组位于 (0, 1) 空间中的伪观测值计算密度,用于似然评估、模型比较或二维密度可视化。
参数
rho 标量或矩阵,表示线性相关参数。
- 当 X 为二维数据时,rho 可以是 DOUBLE 标量,指定两个变量之间的相关系数,取值范围为
(-1, 1)。 - rho 也可以是 2×2 相关系数矩阵。
X 非空二维数值矩阵或表,维度为 n×p(p = 2),指定需要计算密度的评估点集。其中 n 为评估点数量,即 X 的行数;p 为变量维度,即 X 的列
数。
- 所有元素必须为有限数。
- 位于开区间
(0, 1)内的行按 Gaussian Copula 密度公式计算。 - 任意元素 u 位于闭区间边界或区间外(
u <= 0或u >= 1)的行返回 0。 - 当 X 为表时,每一列表示一个变量,列顺序即变量顺序。
返回值
DOUBLE 向量,长度为 X 的行数。返回向量中的第 i 个元素表示 X 第 i 行对应的 Copula 概率密度值。
例子
例1. 计算相关系数为 0.5 的二维 Gaussian Copula 在中心点 [0.5, 0.5] 处的概率密度。
X = matrix([0.5], [0.5])
y = copulaPdfGaussian(0.5, X)
y
// 输出: [1.1547005383792515]
例2. 评估多组二维伪观测值,并展示边界点的处理方式。第一行包含 0,第三行包含 1,因此对应密度返回 0。
u1 = [0.0, 0.2, 0.9]
u2 = [0.1, 0.3, 1.0]
X = matrix(u1, u2)
y = copulaPdfGaussian(0.7, X)
y
// 输出: [0, 1.6000931673540228, 0]
例3. 使用拟合得到的相关系数矩阵计算样本点的 Gaussian Copula 密度。
setRandomSeed(5)
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 = copulaPdfGaussian(fitRes.rho, X)
avg(y)
// 输出:1.826696615255413
例4. 以表作为输入,计算两只股票伪观测值在给定 Gaussian Copula 参数下的密度。
setRandomSeed(5)
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 = copulaPdfGaussian(0.6, stockReturns)
y[0:5]
// 输出:[1.2167754772865382, 1.2529459921234738, 1.2116732436470703, 1.5904475671893479, 1.2464171642220696]
相关函数:copulaFitGaussian、copulaRandGaussian、copulaCdfGaussian、copulaPdfStudent、copulaPdfClayton、copulaPdfFrank、copulaPdfGumbel
