copulaFitStudent

首发版本:3.00.6

语法

copulaFitStudent(X, [method='ML'], [alpha=0.05])

详情

拟合 Student's t Copula,估计相关系数矩阵 rho 和自由度 nu

t Copula 可刻画厚尾和上下尾对称相关,适用于极端风险建模。当自由度趋向无穷大时,t Copula 退化为 Gaussian Copula。

参数

X 非空二维数值矩阵或表,n×p 维(p ≥ 2),表示输入数据。

  • 所有元素必须为有限数并严格位于开区间 (0, 1) 内。
  • 样本量需满足 n >= max(10, 2*p + 1),且不得包含常数列或近似常数列。

method STRING 类型标量,可选参数,默认值为 'ML'。表示拟合方法:'ML' 为标准最大似然;'ApproximateML' 为近似最大似然。

alpha DOUBLE 类型标量,可选参数,默认值为 0.05。表示置信区间显著性水平,取值范围为 (0, 1)

返回值

返回一个字典,包含以下键值对:

  • rho:矩阵,表示 p×p 估计的线性相关系数矩阵。
  • nu:DOUBLE 标量,表示估计的自由度参数。
  • nuCI:DOUBLE 向量,表示自由度的置信区间 。若成功计算,返回 [lower, upper];若置信区间无法稳定计算,则返回空值。
  • logLikelihood:DOUBLE 标量,表示对数似然值。
  • converged:BOOL 标量,表示优化器是否收敛。

例子

注意:以下例子的输出为示意值,实际运行结果可能不同。

例1. 生成相关系数 rho=0.7、自由度 nu=5 的 t Copula 数据(1000 个样本),使用默认参数拟合并验证估计的 rho 和 nu 是否接近真实值。

X = copulaRandStudent(0.7, 5, 1000)
res = copulaFitStudent(X)
res.nu
// 输出: 5.226848
res.nuCI
// 输出: [3.115844,7.337852]
res.logLikelihood
// 输出: 323.207189
res.rho

输出返回:

#0 #1
1 0.695732
0.695732 1

例2. 生成更大样本量(5000)的厚尾数据,使用近似最大似然法(ApproximateML)拟合,并设置 99% 置信区间(alpha=0.01),观察 nuCI 相比默认参数的变化。

// 单独生成样本量更大的厚尾数据,避免 ApproximateML 下 nuCI 为空
Xlarge = copulaRandStudent(0.7, 5, 5000)
res2 = copulaFitStudent(Xlarge, method='ApproximateML', alpha=0.01)
res2.nu
// 输出: 5.226868
res2.nuCI
// 输出: [3.551869,6.901868]
res2.logLikelihood
// 输出: 1780.580361
res2.rho

输出返回:

#0 #1
1 0.700865
0.700865 1

例3. 生成自由度更低(nu=4)、尾部更厚的数据(2000 个样本),验证模型能否准确捕捉更强的尾部相关性。

Xtail = copulaRandStudent(0.6, 4, 2000)
resTail = copulaFitStudent(Xtail)
resTail.nu
// 输出: 4.113908
resTail.nuCI
// 输出: [3.089262,5.138554]
resTail.logLikelihood
// 输出: 497.719249
resTail.rho

输出返回:

#0 #1
1 0.608286
0.608286 1

例4. 使用 t Copula 生成具有厚尾特征的伪观测值,以表作为输入拟合 t Copula,评估两只股票在极端行情下同时出现大幅波动的厚尾风险。

// 使用 t Copula 生成具有厚尾特征的伪观测值,避免自由度估计退化到上界
X = copulaRandStudent(0.6, 5, 1000)

stockReturns = table(X[0] as stockA, X[1] as stockB)
res = copulaFitStudent(stockReturns)
res.nu
// 输出: 6.092823
res.nuCI
// 输出: [3.293553,8.892092]
res.logLikelihood
// 输出: 226.861833
res.rho

输出返回:

#0 #1
1 0.596924
0.596924 1

相关函数:copulaFitGaussiancopulaFitClaytoncopulaFitFrankcopulaFitGumbelcopulaRandStudentcopulaPdfStudentcopulaCdfStudent