本文介绍各种类型(Gaussian、t、Gumbel、Clayton、Frank)Copula的密度函数和分布函数图的绘制
完整代码
clc
close all
clear%% ********************计算Copula的密度函数和分布函数图************************
[Udata,Vdata] = meshgrid(linspace(0,1,31)); % 为绘图需要,产生新的网格数据
% 调用copulapdf函数计算网格点上的二元正态Copula密度函数值
Cpdf_norm = copulapdf('Gaussian',[Udata(:), Vdata(:)],0.7);
% 调用copulacdf函数计算网格点上的二元正态Copula分布函数值
Ccdf_norm = copulacdf('Gaussian',[Udata(:), Vdata(:)],0.7);% 调用copulapdf函数计算网格点上的二元t-Copula密度函数值
Cpdf_t = copulapdf('t',[Udata(:), Vdata(:)],0.7,5);
% 调用copulacdf函数计算网格点上的二元t-Copula分布函数值
Ccdf_t = copulacdf('t',[Udata(:), Vdata(:)],0.7,5);% 调用copulapdf函数计算网格点上的二元Gumbel-Copula密度函数值
Cpdf_Gumbel = copulapdf('Gumbel',[Udata(:), Vdata(:)],1.5);
% 调用copulacdf函数计算网格点上的二元Gumbel-Copula分布函数值
Ccdf_Gumbel = copulacdf('Gumbel',[Udata(:), Vdata(:)],1.5);% 调用copulapdf函数计算网格点上的二元Clayton-Copula密度函数值
Cpdf_Clayton = copulapdf('Clayton',[Udata(:), Vdata(:)],1);
% 调用copulacdf函数计算网格点上的二元Clayton-Copula分布函数值
Ccdf_Clayton = copulacdf('Clayton',[Udata(:), Vdata(:)],1);% 调用copulapdf函数计算网格点上的二元Frank-Copula密度函数值
Cpdf_Frank = copulapdf('Frank',[Udata(:), Vdata(:)],2);
% 调用copulacdf函数计算网格点上的二元Gumbel-Copula分布函数值
Ccdf_Frank = copulacdf('Frank',[Udata(:), Vdata(:)],2);%% 绘制二元正态Copula的密度函数和分布函数图
% 绘制二元Gaussian-Copula的密度函数和分布函数图
figure(1); % 新建图形窗口
subplot(1,2,1)
surf(Udata,Vdata,reshape(Cpdf_norm,size(Udata))); % 绘制二元正态Copula密度函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('c(u,v)'); % 为z轴加标签
title('二元正态Copula的密度函数')
subplot(1,2,2)
surf(Udata,Vdata,reshape(Ccdf_norm,size(Udata))); % 绘制二元正态Copula分布函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('C(u,v)'); % 为z轴加标签
title('二元正态Copula的分布函数')% 绘制二元t-Copula的密度函数和分布函数图
figure(2); % 新建图形窗口
subplot(1,2,1)
surf(Udata,Vdata,reshape(Cpdf_t,size(Udata))); % 绘制二元t-Copula密度函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('c(u,v)'); % 为z轴加标签
title('二元t-Copula的密度函数')
subplot(1,2,2)
surf(Udata,Vdata,reshape(Ccdf_t,size(Udata))); % 绘制二元t-Copula分布函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('C(u,v)'); % 为z轴加标签
title('二元t-Copula的分布函数')% 绘制二元Gumbel-Copula的密度函数和分布函数图
figure(3); % 新建图形窗口
subplot(1,2,1)
surf(Udata,Vdata,reshape(Cpdf_Gumbel,size(Udata))); % 绘制二元t-Copula密度函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('c(u,v)'); % 为z轴加标签
title('二元Gumbel-Copula的密度函数')
subplot(1,2,2)
surf(Udata,Vdata,reshape(Ccdf_Gumbel,size(Udata))); % 绘制二元t-Copula分布函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('C(u,v)'); % 为z轴加标签
title('二元Gumbel-Copula的分布函数')% 绘制二元Gumbel-Copula的密度函数和分布函数图
figure(4); % 新建图形窗口
subplot(1,2,1)
surf(Udata,Vdata,reshape(Cpdf_Clayton,size(Udata))); % 绘制二元t-Copula密度函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('c(u,v)'); % 为z轴加标签
title('二元Clayton-Copula的密度函数')
subplot(1,2,2)
surf(Udata,Vdata,reshape(Ccdf_Clayton,size(Udata))); % 绘制二元t-Copula分布函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('C(u,v)'); % 为z轴加标签
title('二元Clayton-Copula的分布函数')% 绘制二元Gumbel-Copula的密度函数和分布函数图
figure(5); % 新建图形窗口
subplot(1,2,1)
surf(Udata,Vdata,reshape(Cpdf_Frank,size(Udata))); % 绘制二元t-Copula密度函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('c(u,v)'); % 为z轴加标签
title('二元Frank-Copula的密度函数')
subplot(1,2,2)
surf(Udata,Vdata,reshape(Ccdf_Frank,size(Udata))); % 绘制二元t-Copula分布函数图
xlabel('U'); % 为X轴加标签
ylabel('V'); % 为Y轴加标签
zlabel('C(u,v)'); % 为z轴加标签
title('二元Frank-Copula的分布函数')
绘制结果