copulaPdfStudent
首发版本:3.00.6
语法
copulaPdfStudent(rho, nu, X)
详情
计算 Student's t Copula 在给定评估点上的概率密度值。
t Copula 在 Gaussian Copula 的相关结构基础上引入自由度参数 nu,能够刻画上下尾对称的厚尾依赖。自由度越小,尾部相关越强;当 nu 趋向无穷大时,t Copula 在数值上逐渐接近 Gaussian Copula。
copulaPdfStudent 常用于极端风险建模场景下的密度评估,例如比较样本点在厚尾模型和 Gaussian 基准模型下的似然贡献。
参数
rho 标量或矩阵,表示线性相关参数。
- 当 X 为二维数据时,rho 可以是 DOUBLE 标量,指定两个变量之间的相关系数,取值范围为
(-1, 1)。 - rho 也可以是 2×2 相关系数矩阵。
nu INT 或 DOUBLE 类型标量,表示 t Copula 的自由度参数,取值范围为 (0, ∞)。
- nu 越小,尾部越厚。
- 较大的 nu 会使 t Copula 接近 Gaussian Copula。
X 非空二维数值矩阵或表,维度为 n×p(p = 2),指定需要计算密度的评估点集。其中 n 为评估点数量,即 X 的行数;p 为变量维度,即 X 的列数。
- 所有元素必须为有限数。
- 位于开区间
(0, 1)内的行按 t Copula 密度公式计算。 - 任意元素 u 位于闭区间边界或区间外(
u <= 0或u >= 1)的行返回 0。 - 当 X 为表时,每一列表示一个变量,列顺序即变量顺序。
返回值
DOUBLE 向量,长度为 X 的行数。返回向量中的第 i 个元素表示 X 第 i 行对应的 Copula 概率密度值。
例子
例1. 计算相关系数为 0.5、自由度为 5 的二维 t Copula 在中心点 [0.5, 0.5] 处的概率密度。
X = matrix([0.5], [0.5])
y = copulaPdfStudent(0.5, 5, X)
y
// 输出: [1.2753276779771845]
例2. 比较同一批评估点在不同自由度下的密度。自由度较小时,模型对尾部共同极端点会给出更高的密度。
u1 = [0.05, 0.5, 0.95]
u2 = [0.05, 0.5, 0.95]
X = matrix(u1, u2)
yNu4 = copulaPdfStudent(0.6, 4, X)
yNu30 = copulaPdfStudent(0.6, 30, X)
yNu4
// 输出: [4.439090113641852, 1.4147106052612917, 4.439090113641852]
yNu30
// 输出: [3.5554172160824566, 1.2710039953378847, 3.5554172160824566]
例3. 使用 t Copula 生成具有厚尾特征的伪观测值,再使用拟合结果计算这些样本点的密度。
X = copulaRandStudent(0.6, 5, 1000)
fitRes = copulaFitStudent(X)
y = copulaPdfStudent(fitRes.rho, fitRes.nu, X)
avg(y)
// 输出: 1.7878752240836582 (示意值,以实际输出为准)
fitRes.nu
// 输出: 6.0093821588887755 (示意值,以实际输出为准)
例4. 展示边界点的处理方式。第一行包含 0,第三行包含 1,对应密度返回 0。
u1 = [0.0, 0.2, 0.9]
u2 = [0.1, 0.3, 1.0]
X = matrix(u1, u2)
y = copulaPdfStudent(0.7, 5, X)
y
// 输出: [0, 1.7018622176354719, 0]
相关函数:copulaFitStudent、copulaRandStudent、copulaCdfStudent、copulaPdfGaussian、copulaPdfClayton、copulaPdfFrank、copulaPdfGumbel
