(4)高维copula的计算原理和代码

前面我分享了大量二维和三维的Copula代码公式和原理,但我们研究过程中,二维三维的Copula是远远不够的。在已知多个已知边缘分布的随机变量下,Copula函数则是一个非常好的工具来对其相关性进行建模。 在高维也能相应处理,比如研究在一定的温度下,考虑降水、土壤水、径流和社会水亏损的高维干旱。这样的研究考虑更为全面。如何计算这种高维copula联合概率呢?变量越多,copula函数越复杂,有没有一种适合高维度的多元Copula函数呢?答案是Vine copulas。

前言

Vine copula为灵活建模多变量数据提供了一种更通用的方法。他们一开始由Joe[1996]提出,然后由Bedford和Cooke[2002]和Kurowicka和Cooke[2006]进一步发展。Vine copula是层次化的图形模型,它使用丰富的二元Copula(所谓的pair对)来描述多元copula)作为构建模块。

一、基本原理

Vine copula的建模方案是基于将n维多元密度分解为n(n-1)/2个二元Copula密度。请注意,思想是根据一定的规则降维,降维思想在数学中体现在很多方面。这种基于双变量联结物级联的构造意味着Vine copula也被称为对联结物构造(PCCs)。Vine copula结构是由PCCs建立的,其中n (n -1)/2对结对排列在n -1树中。Vine copula的一些例子是规范Vine(C -Vine)和可拉伸葡萄藤D -Vine),两者都是规则葡萄藤(R -Vine)的子类。大多数研究采用C -vine。C -vine的特征是其变量的顺序。排序定义了PCCs中条件作用的顺序::首先,变量1被条件作用,然后是变量2,依此类推(图1)。
在这里插入图片描述图1 带有三棵图1 树的四个变量的C-vine分层结构。节点名称显示在圆圈中,边缘名称显示在树的边缘附近。每棵树都有一个唯一的节点,该节点连接到c树中的所有其他节点。

如何构建“藤状”结构的高维联合概率分布模型?主要分为四步:
第1步、将多维的联合概率分解为若干个二维联合概率函数及边缘密度函数的乘积;
第2步、构建第一层tree结构,确立中心节点,即中心变量,计算各边二维Copula的参数;
第3步、利用h条件概率方程将原始数据转为tree 2所需的数据,并计算tree 2中各边对应的二维联合概率函数的参数,…;
第n-1步、计算最后tree n-1中各边对应的Copula参数;
第n步、累乘计算多维联合概率密度函数,这样便可以建立多维变量耦合概率的计算模型。

二、结果展示

1.代码片段

Vine copulas由三个结构定义:Vine藤数组A、Vine藤连中的联结族、Vine藤连的具体参数值。上述结构必须作为许多函数的输入提供。在下文中,将用一个示例性的5维简化的Vine copulas藤联结来展示如何运行程序。
藤数组A是一个上三角矩阵,例如:
A = [1 1 2 3 3; 0 2 1 2 2; 0 0 3 1 4; 0 0 0 4 1; 0 0 0 0 5 ]:以下5维藤数组:

在这里插入图片描述因此,Vine Copula中存在以下连结:c12, c23, c34, c35, c13;2, c24;3, c25;3, c14;23, c45;23,
和c15; 234。下图显示了这种Vine copula的图形表示。
在这里插入图片描述
在图形中实现的所有Copula都具有各自的参数值和字符串编码。细胞变量的结构以下方式反映了家族组合,每个Copula对具有对应的参数。
在这里插入图片描述
%藤数组A是一个上三角矩阵,它在MATLAB中是这样表示的,注意我们现在是指定一下Vine copula的结构,一般是根据输入的数据来确认最佳的Vine copula结构。
A = [1 1 2 3 3;
0 2 1 2 2;
0 0 3 1 4;
0 0 0 4 1;
0 0 0 0 5
];

%指定一下对应位置Copula的家族
family1 = {‘gauss’, ‘surjoe’, ‘clayton’, ‘gumbel’;‘clayton’, ‘clayton’, ‘frank’,0;‘amhaq’,‘clayton’,0,0;‘t’,0,0,0};
%对应位置Copula的家族参数设定
theta1 = {-0.7,2,3,4;2,3,5,0;0.8,3,0,0;[-0.4 5],0,0,0};
% 计算对应样本的pdf(0.1,0.2,0.3,0.4,0.5) and (0.3,0.4,0.5,0.6,0.7)
points = [0.1,0.2,0.3,0.4,0.5;0.3,0.4,0.5,0.6,0.7];
valuepdf = vinepdf(points,A,family1,theta1);
%计算这些样本点的cdf
valuecdf = vinecdf(points,A,family1,theta1);
%% 模拟出根据样本数据(我们这里是设定好的)得到符合指定高维Copula结构和相应Copula参数的1000个的边缘分布值。
u = simrvine(1000,A,family1,theta1,0);

2.计算效果图

在这里插入图片描述
由简化的Vine copulas生成的样本的归一化等高线图矩阵

在这里插入图片描述z
1~3个月预见期下,基于vine-copula预测的2006、2010、2013和2014年8月份PCC模型的农业干旱预测结果

*如果需要更多关于高维Copula的联合、同现和条件概率和重现期等的代码(MATLAB和R语言)。(代码可直接运行,包含注释和示例数据,替换数据即可运行出结果)如需请扫码关注趣品科研,回复 copula
在这里插入图片描述

参考文献

He, K., Chen, X., Zhou, J., Zhao, D., & Yu, X. (2024). Compound successive dry-hot and wet extremes in China with global warming and urbanization. Journal of Hydrology, 636, 131332
Liu, Z., P. Zhou, X. Chen, and Y. Guan (2015), A multivariate conditional model for streamflow prediction and spatial precipitation refinement, J. Geophys. Res. Atmos., 120, 10,116–10,129, doi:10.1002/2015JD023787.
Wu, H., Su, X., Singh, V. P., Feng, K., & Niu, J. (2021). Agricultural drought prediction based on conditional distributions of vine copulas. Water Resources Research, 57, e2021WR029562. https://doi.org/10.1029/2021WR029562.
Liu, Z., T. Tornros, and L. Menzel (2016), A probabilistic prediction network for hydrological drought identification and environmental flow assessment, Water Resour. Res., 52, 6243–6262, doi:10.1002/2016WR019106.
吴海江. 基于气象干旱和高温的中国农业干旱预测模型研究[D].西北农林科技大学,2022.DOI:10.27409/d.cnki.gxbnu.2021.000534.
Jiang, T., Su, X., Zhang, G., Zhang, T., & Wu, H. (2023). Estimating propagation probability from meteorological to ecological droughts using a hybrid machine learning copula method. Hydrology and Earth System Sciences, 27(2), 559-576. https://doi.org/10.5194/hess-27-559-2023

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>