“Copula”一词源于拉丁语,意为“联结、联系”。最初由Sklar在1959年提出,被广泛应用于统计、金融、风险管理等领域。Copula是处理统计中随机变量相关性问题的一种方法。

Copula函数的定义

定义1copula手册 python copula函数代码_定义域

copula手册 python copula函数代码_copula手册 python_02元 Copula函数copula手册 python copula函数代码_定义域_03是多元联合分布
copula手册 python copula函数代码_copula手册 python_04

其中copula手册 python copula函数代码_copula手册 python_05是标准均匀变量。

定义2copula手册 python copula函数代码_定义域_06

copula手册 python copula函数代码_copula手册 python_07在1998年给出了Copula函数的定义,指出具有下面性质的函数C是N维Copula函数。

  1. copula手册 python copula函数代码_copula手册 python_08copula手册 python copula函数代码_copula手册 python_09函数的定义域在一个copula手册 python copula函数代码_copula手册 python_10copula手册 python copula函数代码_定义域_11维空间上;
  2. 函数copula手册 python copula函数代码_copula手册 python_09在它的每个维度上都是单调递增的函数;
  3. 假设任意的copula手册 python copula函数代码_定义域_13copula手册 python copula函数代码_copula手册 python_09的边缘分布copula手册 python copula函数代码_copula手册 python_15满足copula手册 python copula函数代码_copula手册 python_16copula手册 python copula函数代码_copula手册 python_17

精确表达式copula手册 python copula函数代码_定义域

Sklar定理

copula手册 python copula函数代码_定义域_19copula手册 python copula函数代码_copula手册 python_02维随机变量copula手册 python copula函数代码_copula手册 python_21的联合分布函数,与其对应的边际分布分别是copula手册 python copula函数代码_copula手册 python_22,则存在一个copula手册 python copula函数代码_copula手册 python_02元Copula函数copula手册 python copula函数代码_copula手册 python_24使得对于全部copula手册 python copula函数代码_copula手册 python_25,有 copula手册 python copula函数代码_定义域_26

copula手册 python copula函数代码_copula手册 python_22是连续的,则copula手册 python copula函数代码_copula手册 python_24唯一;否则copula手册 python copula函数代码_copula手册 python_24仅在copula手册 python copula函数代码_copula手册 python_30上唯一。

反之

copula手册 python copula函数代码_copula手册 python_24是一个Copula函数,copula手册 python copula函数代码_copula手册 python_22是单变量分布函数,则(1)式定义的copula手册 python copula函数代码_copula手册 python_33是边缘分布为copula手册 python copula函数代码_copula手册 python_22的随机向量的联合分布函数。

【说明】 定理给出了一种利用边际分布对多元联合分布建模的方法:(1)构建各变量的边际分布;(2)找到一个恰当的Copula函数,确定它的参数,作为刻画各个变量之间相关关系的工具。

推论

copula手册 python copula函数代码_定义域_35的分布函数copula手册 python copula函数代码_定义域_36均是连续的,copula手册 python copula函数代码_copula手册 python_37均服从copula手册 python copula函数代码_copula手册 python_38上的均匀分布,则随机变量copula手册 python copula函数代码_定义域_39的联合分布为
copula手册 python copula函数代码_copula手册 python_40

其中copula手册 python copula函数代码_copula手册 python_41称为copula手册 python copula函数代码_copula手册 python_42的伪逆函数,定义为copula手册 python copula函数代码_copula手册 python_43

【说明】 设copula手册 python copula函数代码_copula手册 python_22是连续的,联合分布函数也已经知道,用(2)式完全可以构造出相应的Copula函数,并且构造出的Copula函数完全刻画了变量之间的相依结构。

Copula函数的密度

copula手册 python copula函数代码_copula手册 python_02维向量copula手册 python copula函数代码_copula手册 python_21的边缘密度函数是copula手册 python copula函数代码_定义域_47,联合密度是
copula手册 python copula函数代码_定义域_48

Copula函数copula手册 python copula函数代码_copula手册 python_24的密度为
copula手册 python copula函数代码_copula手册 python_50

则有 copula手册 python copula函数代码_copula手册 python_51

双参数copula函数copula手册 python copula函数代码_定义域_06

  双参数Copula函数有很多种,双参数BB1和BB7 Copula能够较好的刻画尾部相依结构,它们的数学形式如下:

  • BB1:copula手册 python copula函数代码_定义域_53copula手册 python copula函数代码_copula手册 python_54
  • BB7:copula手册 python copula函数代码_copula手册 python_55copula手册 python copula函数代码_copula手册 python_56

其中copula手册 python copula函数代码_copula手册 python_57copula手册 python copula函数代码_copula手册 python_58为双参数Copula的两个参数。

copula函数的思想

  Copula 函数能够把随机变量之间的相关关系与变量的边际分布分开进行研究,这种思想方法在多元统计分析中非常重要。直观地来看,可以将任意维的联合分布copula手册 python copula函数代码_定义域_59分成两步来处理。第一是,对所有的单变量随机变量copula手册 python copula函数代码_copula手册 python_60,通过累积分布函数copula手册 python copula函数代码_copula手册 python_42,我们可以得到随机变量copula手册 python copula函数代码_copula手册 python_62,这是一个均匀随机变量;第二是,随机变量间的相依结构能够通过直接连接这些均匀变量的copula手册 python copula函数代码_copula手册 python_02元Copula函数copula手册 python copula函数代码_定义域_64来描述。copula手册 python copula函数代码_定义域

copula手册 python copula函数代码_copula手册 python_38均匀分布的多维联合分布函数,其核心概念是以Copula函数将多个随机变量的边缘分布耦合起来。Copula函数本质上是边缘分布为copula手册 python copula函数代码_copula手册 python_67的随机变量copula手册 python copula函数代码_copula手册 python_68的多元联合分布函数。因此求取联合分布函数即为确定函数C,Copula函数理论为求解多个随机变量联合概率分布提供了新的思路和工具。copula手册 python copula函数代码_copula手册 python_69

copula手册 python copula函数代码_定义域_70copula手册 python copula函数代码_定义域_71,其连续累积分布函数分别为copula手册 python copula函数代码_定义域_72copula手册 python copula函数代码_定义域_73。通过分别在两个随机变量上应用概率积分变换,得到copula手册 python copula函数代码_copula手册 python_74copula手册 python copula函数代码_copula手册 python_75copula手册 python copula函数代码_copula手册 python_76copula手册 python copula函数代码_copula手册 python_77都是服从copula手册 python copula函数代码_copula手册 python_38上均匀分布的变量,它们的相关性取决于copula手册 python copula函数代码_定义域_70copula手册 python copula函数代码_定义域_71是否相关:如果copula手册 python copula函数代码_定义域_70copula手册 python copula函数代码_定义域_71是不相关的,那么copula手册 python copula函数代码_copula手册 python_76copula手册 python copula函数代码_copula手册 python_77也是不相关的,因为这个转换是可逆的,定义copula手册 python copula函数代码_定义域_85copula手册 python copula函数代码_copula手册 python_86之间的相关性等价于copula手册 python copula函数代码_定义域_87copula手册 python copula函数代码_定义域_88之间的相关性。由于copula手册 python copula函数代码_copula手册 python_76copula手册 python copula函数代码_copula手册 python_77是均匀分布的随机变量,所以问题被简化为定义一个在两个均匀分布之上的联合分布,这就是 Copula。Copula 函数的基本思想就是,通过把边缘变量转化为均匀分布变量而不再需要考察很多不同的边缘分布以简化问题,然后再把相关性定义为一个在均匀分布之上的联合分布。

Copula函数的性质copula手册 python copula函数代码_copula手册 python_69

copula手册 python copula函数代码_copula手册 python_24copula手册 python copula函数代码_定义域_93上的一个映射,满足以下性质:

  1. copula手册 python copula函数代码_定义域_94,copula手册 python copula函数代码_定义域_95
    Copula函数中只要有一个维度上变量为0,则这个Copula函数为0;在Copula函数中如有copula手册 python copula函数代码_定义域_96个随机变量为1,则 Copula函数等于这个不为1的随机变量。
  2. copula手册 python copula函数代码_copula手册 python_97,且copula手册 python copula函数代码_copula手册 python_98copula手册 python copula函数代码_定义域_99,则:
    copula手册 python copula函数代码_copula手册 python_100
  3. Copula函数的有界性:设copula手册 python copula函数代码_定义域_101,则有Copula函数边界不等式如下:
    copula手册 python copula函数代码_定义域_102
    式中,copula手册 python copula函数代码_定义域_103为Copula函数的下界,copula手册 python copula函数代码_copula手册 python_104为Copula函数的上界。

Copula函数的类型copula手册 python copula函数代码_copula手册 python_69

  Copula函数总体上可以划分为Archimedean型、椭圆型和二次型。

Archimedean Copula函数

  Archimedean Copula函数主要分为对称型和非对称型两大类。

对称型Archimedean Copula函数

  对称型Archimedean Copula函数简称SAC,其m维结构为:

copula手册 python copula函数代码_copula手册 python_106

式中,copula手册 python copula函数代码_定义域_107满足:copula手册 python copula函数代码_定义域_108,对copula手册 python copula函数代码_copula手册 python_109,有copula手册 python copula函数代码_copula手册 python_110。可见Copula函数由生成函数决定。以二维为例,常见的对称型Archimedean Copula函数如下表所列。

copula手册 python copula函数代码_定义域_111


非对称型Archimedean Copula函数  非对称型Archimedean Copula函数简称AAC,适用于构建三维以上Copula函数,其m维非对称Copula结构表示如下:

copula手册 python copula函数代码_定义域_112

椭圆Copula函数

  Fang等首先提出了椭圆Copula函数的概念,并对其进行了详细的阐述。Gaussian Copula函数和Student t Copula函数是最常用的椭圆Copula函数。

高斯Copula函数

  二元高斯Copula函数:
copula手册 python copula函数代码_copula手册 python_113
其中copula手册 python copula函数代码_定义域_114是相关系数为copula手册 python copula函数代码_定义域_115的二维高斯分布的分布函数,copula手册 python copula函数代码_copula手册 python_116是标准正态分布函数。

  下图是不同相关参数下高斯Copula的散点图。

copula手册 python copula函数代码_定义域_117

copula手册 python copula函数代码_copula手册 python_02元高斯Copula函数:
copula手册 python copula函数代码_copula手册 python_119
式中,copula手册 python copula函数代码_定义域_120为标准正态分布函数;copula手册 python copula函数代码_定义域_121为均值为0、协方差为copula手册 python copula函数代码_定义域_122的正态分布函数;copula手册 python copula函数代码_定义域_123copula手册 python copula函数代码_定义域_124copula手册 python copula函数代码_定义域_125为积分变量矢量。

  其Copula密度为
copula手册 python copula函数代码_copula手册 python_126

Student t Copula函数

copula手册 python copula函数代码_定义域_127

二次型Copula函数

copula手册 python copula函数代码_定义域_128

独立Copula

copula手册 python copula函数代码_定义域_129
有Sklar定理可得独立Copula的表达式:
copula手册 python copula函数代码_定义域_130
独立Copula的散点图如下图:


copula手册 python copula函数代码_定义域_131

  常见的几种Archimedean Copula及散点图见下。

copula手册 python copula函数代码_copula手册 python_132


copula手册 python copula函数代码_定义域_133

Copula函数的参数估计copula手册 python copula函数代码_copula手册 python_69

  参数估计是构建多变量概率模型的重要环节,目前使用较为广泛的参数估计方法主要有相关性指标法、极大似然法、矩估计方法、边际推断法、半参数法等。

相关性指标法

  相关性指标法通过Copula函数参数与某个变量相关性指标的关系,先根据样本计算相关性指标,再间接推求Copula函数参数。Gumbel、Clayton和Frank函数的参数可用Kendall秩相关系数进行推求,关系式分别如下:

  1. Gumbel函数:copula手册 python copula函数代码_copula手册 python_135
  2. Clayton函数:copula手册 python copula函数代码_定义域_136
  3. Frank函数:copula手册 python copula函数代码_copula手册 python_137

极大似然法

copula手册 python copula函数代码_定义域_35的联合分布表示为copula手册 python copula函数代码_copula手册 python_139copula手册 python copula函数代码_copula手册 python_140copula手册 python copula函数代码_copula手册 python_57为Copula函数的参数,在copula手册 python copula函数代码_定义域_142的样本空间上,极大似然函数为:
copula手册 python copula函数代码_定义域_143
其中copula手册 python copula函数代码_定义域_144copula手册 python copula函数代码_copula手册 python_02维Copula函数的密度函数。

  上式两边取对数,则有:
copula手册 python copula函数代码_定义域_146
(3)式取得最大值时,必须满足关于参数copula手册 python copula函数代码_copula手册 python_57的偏导数为0,即
copula手册 python copula函数代码_copula手册 python_148

Copula函数的拟合度检验copula手册 python copula函数代码_copula手册 python_69

  为了检验所选Copula函数能否准确地表征变量之间的相关性关系,需要对所选的Copula函数进行假设检验。通过确定置信水平下的临界值,与实测数据的统计量进行比较分析,判断所选定的Copula函数是否被接受。非参数Kolmogorov Smimov检验方法,其数学表达式如下。
copula手册 python copula函数代码_copula手册 python_150
式中,copula手册 python copula函数代码_定义域_151表示联合观测样本copula手册 python copula函数代码_定义域_152的Copula函数值,copula手册 python copula函数代码_定义域_153表示联合观测样本中满足条件copula手册 python copula函数代码_copula手册 python_154的联合观测值的个数。

Copula函数的拟合优度评价copula手册 python copula函数代码_copula手册 python_69

  在利用多种Copula函数对多变量联合分布进行拟合后,需采用拟合优度检验指标进行优选,确定最优拟合Copula函数。

  (1)RMSE准则法

  选取均方根误差准则(RMSE准则)的计算公式如下:
copula手册 python copula函数代码_copula手册 python_156
式中,copula手册 python copula函数代码_copula手册 python_157表示经验概率,copula手册 python copula函数代码_copula手册 python_158表示理论概率。RMSE值越小,表示拟合效果越好。

  (2)AIC信息准则法

  AIC信息准则包括两个部分,Copula函数拟合的偏差与Copula函数参数个数导致的不稳定性,AIC表达式为:
copula手册 python copula函数代码_copula手册 python_159
copula手册 python copula函数代码_定义域_160
式中,copula手册 python copula函数代码_copula手册 python_161为模型参数个数。AIC值越小说明拟合效果越好。

  (3)BIC信息准则法
copula手册 python copula函数代码_copula手册 python_162
BIC值越小,函数拟合效果越好。

变量相关性度量指标copula手册 python copula函数代码_copula手册 python_69

  Copula函数应用的前提是随机变量之间具有非线性的相关关系,因此,需要利用变量相关性指标分析特征变量之间的相关性。常用的度量随机变量相关性的统计指标如下:

copula手册 python copula函数代码_定义域_164
copula手册 python copula函数代码_定义域_165

式中,copula手册 python copula函数代码_copula手册 python_166表示取自总体copula手册 python copula函数代码_copula手册 python_167的样本,copula手册 python copula函数代码_定义域_168copula手册 python copula函数代码_定义域_169copula手册 python copula函数代码_copula手册 python_170分别表示变量copula手册 python copula函数代码_copula手册 python_171copula手册 python copula函数代码_copula手册 python_172的样本均值。copula手册 python copula函数代码_定义域_164的取值范围为copula手册 python copula函数代码_copula手册 python_174,其绝对值越大,表示变量之间的线性相关性越显著。

copula手册 python copula函数代码_定义域_175

copula手册 python copula函数代码_copula手册 python_176
式中,copula手册 python copula函数代码_copula手册 python_177是观测数据,copula手册 python copula函数代码_定义域_178是符号函数。
Kendall秩相关系数copula手册 python copula函数代码_定义域_175值越大,表示变量之间的相关性越显著。

copula手册 python copula函数代码_定义域_115
copula手册 python copula函数代码_copula手册 python_181
式中,copula手册 python copula函数代码_copula手册 python_182copula手册 python copula函数代码_定义域_183分别为变量copula手册 python copula函数代码_copula手册 python_171copula手册 python copula函数代码_copula手册 python_172的秩次,copula手册 python copula函数代码_copula手册 python_186copula手册 python copula函数代码_定义域_187分别为copula手册 python copula函数代码_copula手册 python_182copula手册 python copula函数代码_定义域_183的均值,copula手册 python copula函数代码_定义域_168。Spearman秩相关系数copula手册 python copula函数代码_定义域_115值越大,表示变量之间的相关性越显著。

Copula函数优选的步骤copula手册 python copula函数代码_copula手册 python_69

copula手册 python copula函数代码_定义域_193

Copula函数的应用

  Copula 函数最初在经济与金融领域用广泛的应用,后来在信号处理领域也受到了广泛关注。以下是Copula函数的几个典型应用:金融风险管理;极值理论;无线通信;随机信号源位置估计;多模信号处理;盲源分离。


[1] 赵梦婷. 高斯Copula过程及其应用[D].
[2] 高倩雨. 基于Copula函数的小流域山洪灾害风险组合概率临界雨量研究[D]. 2019.
[3] 蔡亮亮. 双参数Copula函数在金融风险尾部相依分析中的应用[D]. 2019.
[4] Nelsen, R.B. An introduction to Copulas, New York, USA: Springer,2006.