问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

高维Copula的计算原理和代码实现

创作时间:
作者:
@小白创作中心

高维Copula的计算原理和代码实现

引用
CSDN
1.
https://blog.csdn.net/frankgis/article/details/136572039

在数据分析和统计建模中,Copula函数是一种强大的工具,用于描述多个随机变量之间的相关性。虽然二维和三维Copula在许多场景下已经足够使用,但在处理高维数据时,传统的Copula方法可能会变得复杂且难以管理。Vine Copula作为一种层次化的图形模型,通过将高维问题分解为多个二元Copula,提供了一种更灵活和有效的解决方案。本文将详细介绍Vine Copula的基本原理、构建过程以及在MATLAB中的实现方法,并通过具体的应用案例展示其在农业干旱预测等领域的实际效果。

前言

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中各边对应的二维联合概率函数的参数,…;
  4. 计算最后tree n-1中各边对应的Copula参数;
  5. 累乘计算多维联合概率密度函数,这样便可以建立多维变量耦合概率的计算模型。

二、结果展示

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模型的农业干旱预测结果

参考文献

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

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号