正在加载中...

展开本页目录
算法教程Copula-连接函数

Copula-连接函数

No.040 · 在线教程

Copula(连接函数)用于刻画多变量之间的依赖结构,将边缘分布与相关结构分离建模。系统支持:

Copula-连接函数

1. 方法概述

Copula(连接函数)用于刻画多变量之间的依赖结构,将边缘分布与相关结构分离建模。系统支持:

  • 单对变量(X/Y)与批量成对拟合(pairwise)
  • 边缘分布:经验分布(秩变换)、参数分布(正态/t/对数正态/伽马)、KDE CDF(如可用);
  • Copula 家族:Gaussian / t / Clayton / Frank / Gumbel(可自动选择);
  • 指标:Kendall / Spearman、logLik/AIC/BIC、尾部相关、经验距离;
  • 模拟:从拟合 Copula 生成样本并反变换回原尺度;
  • 输出:Excel 多表与图表(散点、伪观测、密度热力、尾相关对比等)。

设样本为 \(\{(x_i,y_i)\}_{i=1}^n\): $$ \mathcal{D}=\{(x_i,y_i)\}_{i=1}^{n},\quad x_i,y_i\in\mathbb{R} \tag{1} $$

2. Copula 基本定义(Sklar 定理)

二维联合分布可表示为 $$ F_{XY}(x,y)=C\big(F_X(x),F_Y(y)\big) \tag{2} $$

其中 \(C(\cdot,\cdot)\) 为 Copula,\(u=F_X(x), v=F_Y(y)\in(0,1)\)。
若可导,则 Copula 密度为 $$ c(u,v)=\frac{\partial^2 C(u,v)}{\partial u\,\partial v} \tag{3} $$

3. 边缘分布与伪观测

3.1 经验分布(秩变换)

$$ u_i=\frac{\mathrm{rank}(x_i)}{n+1},\quad v_i=\frac{\mathrm{rank}(y_i)}{n+1} \tag{4} $$

3.2 参数分布(可选)

若边缘分布参数为 \(\theta\),则 $$ u_i=F_X(x_i;\theta_x),\quad v_i=F_Y(y_i;\theta_y) \tag{5} $$

3.3 KDE CDF(可选)

当环境支持 KDE CDF 时,用核密度估计 \(\hat F_X,\hat F_Y\) 代替经验分布。

4. Copula 家族

4.1 Gaussian Copula

$$ C(u,v)=\Phi_{\rho}\big(\Phi^{-1}(u),\Phi^{-1}(v)\big) \tag{6} $$

4.2 t-Copula

$$ C(u,v)=t_{\nu,\rho}\big(t_{\nu}^{-1}(u),t_{\nu}^{-1}(v)\big) \tag{7} $$

4.3 Clayton Copula(下尾相关)

$$ C(u,v)=\left(u^{-\theta}+v^{-\theta}-1\right)^{-1/\theta},\quad \theta>0 \tag{8} $$

4.4 Frank Copula(无尾相关)

$$ C(u,v)=-\frac{1}{\theta}\ln\left(1+\frac{(e^{-\theta u}-1)(e^{-\theta v}-1)}{e^{-\theta}-1}\right),\ \theta\neq 0 \tag{9} $$

4.5 Gumbel Copula(上尾相关)

$$ C(u,v)=\exp\left(-\left((-\ln u)^{\theta}+(-\ln v)^{\theta}\right)^{1/\theta}\right),\quad \theta\ge 1 \tag{10} $$

5. 参数估计与评价指标

5.1 伪似然 / 对数似然

$$ \ell(\theta)=\sum_{i=1}^{n}\ln c(u_i,v_i;\theta) \tag{11} $$

5.2 AIC / BIC

$$ \text{AIC}=2k-2\ell(\theta),\qquad \text{BIC}=k\ln n-2\ell(\theta) \tag{12} $$

5.3 Kendall / Spearman(样本)

$$ \tau=\frac{2}{n(n-1)}\sum_{i<j}\mathrm{sign}(x_i-x_j)\,\mathrm{sign}(y_i-y_j) \tag{13} $$

$$ \rho_s=1-\frac{6\sum_{i=1}^n d_i^2}{n(n^2-1)} \tag{14} $$

5.4 椭圆 Copula 的秩相关

(Gaussian / t) $$ \tau=\frac{2}{\pi}\arcsin(\rho),\qquad \rho_s=\frac{6}{\pi}\arcsin\left(\frac{\rho}{2}\right) \tag{15} $$

5.5 Clayton / Gumbel 的秩相关

$$ \tau_{\text{Clayton}}=\frac{\theta}{\theta+2},\qquad \tau_{\text{Gumbel}}=1-\frac{1}{\theta} \tag{16} $$

5.6 尾部相关(系统输出)

t-Copula: $$ \lambda_U=\lambda_L=2\,t_{\nu+1}\!\left(-\sqrt{\frac{(\nu+1)(1-\rho)}{1+\rho}}\right) \tag{17} $$

Clayton: $$ \lambda_L=2^{-1/\theta},\quad \lambda_U=0 \tag{18} $$

Gumbel: $$ \lambda_U=2-2^{1/\theta},\quad \lambda_L=0 \tag{19} $$

Gaussian / Frank 无尾相关(\(\lambda_L=\lambda_U=0\))。

5.7 经验 Copula 距离(可选)

经验 Copula 在样本点处: $$ \hat C(u_i,v_i)=\frac{1}{n}\sum_{j=1}^n\mathbf{1}(u_j\le u_i, v_j\le v_i) \tag{20} $$

与模型 CDF 的平方距离: $$ D^2=\sum_{i=1}^n\big(\hat C(u_i,v_i)-C(u_i,v_i)\big)^2 \tag{21} $$

6. 模拟与反变换

从拟合 Copula 生成 \((U,V)\) 后,反变换得到 $$ X=F_X^{-1}(U),\quad Y=F_Y^{-1}(V) \tag{22} $$

7. 批量成对拟合(pairwise)

系统支持对所有数值列进行两两拟合,并以 AIC 选择最优家族,输出:

  1. Pairwise_Summary(每对变量的最优家族与参数)
  2. family_heatmap / kendall_tau_heatmap 两张热力图

8. 输出结果与图表(Excel/图片)

Excel Sheets(单对拟合):

  • Parameters / Raw_Preview / Marginals / PseudoObs_UV
  • Copula_Fit / Dependence / Empirical_Distance / Simulated_Samples
  • Charts_Index

Excel Sheets(pairwise):

  • Raw_Preview / Pairwise_Summary / Charts_Index

图表清单(示例):

  1. 原始散点(scatter_raw)
  2. 伪观测散点(scatter_uv)
  3. U-V 直方图或热力图(hist2_uv / copula_pdf_heat)
  4. 模拟样本对比(scatter_sim_vs_raw)
  5. 尾部概率对比图(tail_empirical_vs_model)
  6. (pairwise)家族热力图 / Kendall-tau 热力图

9. 与代码实现的对应关系

本算法在程序中由 具体的算法2/Copula-连接函数/core/calculator.py 实现,支持单对变量拟合与全数值列 pairwise 两种模式。程序会同时导出边缘分布信息、伪观测、Copula 拟合结果、经验距离和图表索引,因此论文写作不应只停留在“选了某个 Copula 家族”,而应与这些真实产物对应。

9.1 程序实际导出的工作表

  • 单对拟合:ParametersRaw_PreviewMarginalsPseudoObs_UVCopula_FitDependenceEmpirical_DistanceSimulated_SamplesCharts_Index
  • pairwise:Raw_PreviewPairwise_SummaryCharts_Index

9.2 程序实际生成的图表

  • scatter_raw:原始样本散点;
  • scatter_uv:伪观测散点;
  • copula_pdf_heat:Copula 密度热力图;
  • scatter_sim_vs_raw:模拟样本与原样本对比;
  • tail_empirical_vs_model:尾部联动经验值与模型值对比;
  • pairwise 模式下还会生成家族热力图和 Kendall-tau 热力图。

9.3 程序实现中应写清的点

  • 边缘分布支持经验分布、参数分布与 KDE 路径;
  • copula_family=auto/best 时程序会比较多类 Copula 并按 AIC 选优;
  • t-Copula 会额外输出自由度与上下尾相关;
  • pairwise 结果是对所有数值列两两拟合的汇总,适合论文附录或变量筛查章节使用。

10. 论文写作模板

10.1 模型描述模板段落

“本文采用 Copula 方法对变量 \(X\) 与 \(Y\) 的依赖结构进行建模。首先对边缘分布进行估计,并通过秩变换得到伪观测 \(U,V\)(式(4)–(5))。随后分别拟合 Gaussian/t/Clayton/Frank/Gumbel Copula,并以对数似然与 AIC/BIC 进行比较(式(11)–(12))。模型输出 Kendall 与 Spearman 秩相关、尾部相关与经验距离,用于刻画相关强度与尾部依赖。”

10.2 图表题注模板(示例)

  • 图 1 原始样本散点与伪观测散点对比图。
  • 图 2 Copula 密度热力图与模拟样本分布。
  • 图 3 尾部相关经验值与模型值对比图。

10.3 表格模板(示例)

表 1 Copula 家族参数与评价指标

家族 参数 logLik AIC BIC Kendall
Gaussian \(\rho=\)

表 2 尾部相关系数

家族 \(\lambda_L\) \(\lambda_U\)
t-Copula

10.3.1 更多中文表格示例(可直接用于论文)

表 3 Copula 家族对比(示例)

家族 参数估计 logLik AIC BIC 备注
Gaussian \(\rho=0.68\) -120.3 242.6 247.9 无尾相关
t-Copula \(\rho=0.66,\ \nu=4.2\) -118.1 240.2 247.0 存在尾相关
Clayton \(\theta=1.25\) -130.5 263.0 268.2 下尾相关
Gumbel \(\theta=1.40\) -127.8 257.6 262.8 上尾相关

表注:对比以 AIC/BIC 为主,logLik 越大越好;Clayton/Gumbel 仅适用于正相关样本。

表 4 依赖强度与尾部相关(示例)

指标 样本值 模型值 说明
Kendall’s \(\tau\) 0.62 0.60 秩相关强度
Spearman’s \(\rho_s\) 0.81 0.79 秩相关强度
\(\lambda_L\) 0.18 0.16 下尾相关
\(\lambda_U\) 0.22 0.21 上尾相关

表 5 经验距离与拟合优度(示例)

指标 数值 解释
\(D^2\) 0.011 经验 Copula 与模型 CDF 的平方距离
MSE 1.6e-5 距离均方误差

10.4 英文模板段落与图表题注(可直接使用)

英文段落模板

“A Copula model was employed to characterize the dependence between \(X\) and \(Y\). Marginal distributions were estimated and transformed to pseudo-observations \(U,V\) (Eqs. (4)–(5)). Gaussian/t/Clayton/Frank/Gumbel Copulas were fitted and compared using log-likelihood and information criteria (AIC/BIC; Eqs. (11)–(12)). Kendall’s \(\tau\), Spearman’s \(\rho_s\), and tail-dependence coefficients were reported to assess dependence strength and tail co-movement.”

英文图题模板

  • Fig. 1. Raw sample scatter and pseudo-observation scatter plots.
  • Fig. 2. Copula density heatmap and simulated sample distribution.
  • Fig. 3. Empirical vs. model tail dependence.

英文表格标题模板

  • Table 1. Copula family selection and parameter estimates.
  • Table 2. Dependence measures (Kendall’s \(\tau\), Spearman’s \(\rho_s\)) and tail coefficients.

11. UI 参数一一对应说明表(与界面一致)

UI 参数 含义 对应流程 备注
变量 X / 变量 Y 两列输入变量 单对拟合 需数值列
批量成对拟合 全部数值列两两拟合 pairwise 关闭后才可选 X/Y
X/Y 方法 边缘分布方法 伪观测 经验/参数/KDE
X/Y 分布 参数分布类型 边缘拟合 norm/t/lognorm/gamma
Copula 类型 Copula 家族 依赖结构 Auto/高斯/t/Clayton/Frank/Gumbel
t 自由度 nu t-Copula 自由度 尾部相关 自动估计或固定
经验Copula距离 经验距离开关 评价指标 平方欧氏距离
grid_n 密度热力图网格 绘图 默认 31
hist_bins U-V 直方图分箱 绘图 默认 30
模拟样本 是否模拟 输出 生成模拟散点
simulate_n 模拟样本量 输出 默认 5000
random_state 随机种子 复现 默认 42

12. 示例数据说明模板(可直接用于论文)

“本文使用 \(n\) 组联合样本 \((x_i,y_i)\),通过经验分布/参数分布将边缘映射为伪观测 \((u_i,v_i)\),并拟合多类 Copula 以刻画依赖结构。模型输出相关指标与尾部相关系数,用以评估极端风险的联动程度。”

13. 单篇终审补充

13.1 图题与表题对齐建议

  • 本文档应优先对应真实算法目录 具体的算法2/Copula-连接函数
  • 代表性结果目录建议绑定 具体的算法2/Copula-连接函数/results/Copula分析结果_20260329_165518,因为该目录同时具备 xlsx + 图 + repro
  • 表题应直接对应 Copula分析结果_20260329_165518.xlsx 的真实工作表:ParametersRaw_PreviewMarginalsPseudoObs_UVCopula_FitDependenceEmpirical_DistanceSimulated_SamplesCharts_Index
  • 图题应优先绑定该目录已存在的实体图片:scatter_raw_20260329_165518.pngscatter_uv_20260329_165518.pngcopula_pdf_heat_20260329_165518.pngscatter_sim_20260329_165518.pngtail_empirical_vs_model_20260329_165518.pnghist2_uv_20260329_165518.png

13.2 终审说明

  • 当前 Copula 文档可以按“单个结果目录闭环”写入论文:结果表、图表、复现脚本都集中在同一时间戳目录中。
  • 复现脚本实际为 repro_copula_20260329_165518.py,其 SRC_FILE 写法是 repro_inputs/sample_data.csv,属于“脚本所在结果目录下的 repro_inputs 相对路径”口径。
  • 因此正文若说明复现方式,应写成“基于结果目录内 repro_inputs/sample_data.csv 快照复现”,不要误写成模块根目录 results/.../repro_inputs/... 形式。

13.3 全量强化补充

  • 当前 Copula 文档应绑定真实算法目录 具体的算法2/Copula-连接函数,代表性结果目录为 具体的算法2/Copula-连接函数/results/Copula分析结果_20260329_165518
  • 该目录首层主工作簿为 Copula分析结果_20260329_165518.xlsx,真实工作表为 ParametersRaw_PreviewMarginalsPseudoObs_UVCopula_FitDependenceEmpirical_DistanceSimulated_SamplesCharts_Index
  • 当前主图与主工作簿同层放置,真实文件为 scatter_raw_20260329_165518.pngscatter_uv_20260329_165518.pngcopula_pdf_heat_20260329_165518.pngscatter_sim_20260329_165518.pngtail_empirical_vs_model_20260329_165518.pnghist2_uv_20260329_165518.png。这里没有单独 charts/ 子目录。
  • 目录内同时存在 repro_copula_20260329_165518.pyrepro_inputs/sample_data.csv,脚本关键输入写法为 SRC_FILE = 'repro_inputs/sample_data.csv'。因此 Copula 属于标准“单目录内主结果 + 脚本 + repro_inputs”结构。
  • 若论文解释依赖结构,应把 Copula_FitDependencetail_empirical_vs_model_20260329_165518.png 成组引用;若解释伪观测构造,应把 PseudoObs_UVscatter_uv_20260329_165518.pnghist2_uv_20260329_165518.png 成组引用。

13.4 软件实现核查补充(2026-07)

  • 当前最新结果目录 results/Copula分析结果_20260411_213907 是输出目录,工作簿包含 ParametersRaw_PreviewMarginalsPseudoObs_UVCopula_FitDependenceEmpirical_DistanceSimulated_SamplesCharts_Index,图文件也都在根层。
  • 当前这版目录的核心图是 scatter_raw_20260411_213907.pngscatter_uv_20260411_213907.pngcopula_pdf_heat_20260411_213907.pngscatter_sim_20260411_213907.pngtail_empirical_vs_model_20260411_213907.pnghist2_uv_20260411_213907.png
  • 当前最新目录没有看到同层 repro 脚本;如果要写复现,请回溯到较早时间戳目录中的 repro_copula_20260411_212914.py 等脚本,不要把 213907 写成自带复现入口。
  • Copula 文档里要强调“边缘分布 + 伪观测 + 拟合 Copula + 模拟样本”这一条链路,不能把它写成普通回归或分类模型。