Copula理论及MATLAB应用实例
%--------------------------------------------------------------------------
% Copula理论及其在matlab中的实现程序应用实例 %--------------------------------------------------------------------------
%******************************读取数据************************************* % 从文件hushi.xls中读取数据 hushi = xlsread('hushi.xls');
% 提取矩阵hushi的第5列数据,即沪市的日收益率数据 X = hushi(:,5);
% 从文件shenshi.xls中读取数据 shenshi = xlsread('shenshi.xls');
% 提取矩阵shenshi的第5列数据,即深市的日收益率数据 Y = shenshi(:,5);
%****************************绘制频率直方图*********************************
% 调用ecdf函数和ecdfhist函数绘制沪、深两市日收益率的频率直方图 [fx, xc] = ecdf(X); figure;
ecdfhist(fx, xc, 30);
xlabel('沪市日收益率'); % 为X轴加标签 ylabel('f(x)'); % 为Y轴加标签 [fy, yc] = ecdf(Y); figure;
ecdfhist(fy, yc, 30);
xlabel('深市日收益率'); % 为X轴加标签 ylabel('f(y)'); % 为Y轴加标签
%****************************计算偏度和峰度********************************* % 计算X和Y的偏度 xs = skewness(X) ys = skewness(Y)
% 计算X和Y的峰度 kx = kurtosis(X) ky = kurtosis(Y)
%******************************正态性检验*********************************** % 分别调用jbtest、kstest和lillietest函数对X进行正态性检验 [h,p] = jbtest(X) % Jarque-Bera检验
[h,p] = kstest(X,[X,normcdf(X,mean(X),std(X))]) % Kolmogorov-Smirnov检验
[h, p] = lillietest(X) % Lilliefors检验
% 分别调用jbtest、kstest和lillietest函数对Y进行正态性检验 [h,p] = jbtest(Y) % Jarque-Bera检验
[h,p] = kstest(Y,[Y,normcdf(Y,mean(Y),std(Y))]) % Kolmogorov-Smirnov检验 [h, p] = lillietest(Y) % Lilliefors检验
%****************************求经验分布函数值******************************* % 调用ecdf函数求X和Y的经验分布函数 [fx, Xsort] = ecdf(X); [fy, Ysort] = ecdf(Y);
% 调用spline函数,利用样条插值法求原始样本点处的经验分布函数值 U1 = spline(Xsort(2:end),fx(2:end),X); V1 = spline(Ysort(2:end),fy(2:end),Y);
% 调用ecdf函数求X和Y的经验分布函数 [fx, Xsort] = ecdf(X); [fy, Ysort] = ecdf(Y);
% 提取fx和fy的第2个至最后一个元素,即排序后样本点处的经验分布函数值 fx = fx(2:end); fy = fy(2:end);
% 通过排序和反排序恢复原始样本点处的经验分布函数值U1和V1 [Xsort,id] = sort(X); [idsort,id] = sort(id); U1 = fx(id);
[Ysort,id] = sort(Y); [idsort,id] = sort(id); V1 = fy(id);
%*******************************核分布估计********************************** % 调用ksdensity函数分别计算原始样本X和Y处的核分布估计值 U2 = ksdensity(X,X,'function','cdf'); V2 = ksdensity(Y,Y,'function','cdf');
% **********************绘制经验分布函数图和核分布估计图********************** [Xsort,id] = sort(X); % 为了作图的需要,对X进行排序 figure; % 新建一个图形窗口
plot(Xsort,U1(id),'c','LineWidth',5); % 绘制沪市日收益率的经验分布函数图 hold on
plot(Xsort,U2(id),'k-.','LineWidth',2); % 绘制沪市日收益率的核分布估计图
legend('经验分布函数','核分布估计', 'Location','NorthWest'); % 加标注框 xlabel('沪市日收益率'); % 为X轴加标签 ylabel('F(x)'); % 为Y轴加标签
[Ysort,id] = sort(Y); % 为了作图的需要,对Y进行排序 figure; % 新建一个图形窗口
plot(Ysort,V1(id),'c','LineWidth',5); % 绘制深市日收益率的经验分布函数图 hold on
plot(Ysort,V2(id),'k-.','LineWidth',2); % 绘制深市日收益率的核分布估计图 legend('经验分布函数','核分布估计', 'Location','NorthWest'); % 加标注框 xlabel('深市日收益率'); % 为X轴加标签 ylabel('F(x)'); % 为Y轴加标签
%****************************绘制二元频数直方图***************************** % 调用ksdensity函数分别计算原始样本X和Y处的核分布估计值 U = ksdensity(X,X,'function','cdf'); V = ksdensity(Y,Y,'function','cdf'); figure; % 新建一个图形窗口
% 绘制边缘分布的二元频数直方图, hist3([U(:) V(:)],[30,30])
xlabel('U(沪市)'); % 为X轴加标签 ylabel('V(深市)'); % 为Y轴加标签 zlabel('频数'); % 为z轴加标签
%****************************绘制二元频率直方图***************************** figure; % 新建一个图形窗口
% 绘制边缘分布的二元频数直方图, hist3([U(:) V(:)],[30,30])
h = get(gca, 'Children'); % 获取频数直方图的句柄值 cuv = get(h, 'ZData'); % 获取频数直方图的Z轴坐标
set(h,'ZData',cuv*30*30/length(X)); % 对频数直方图的Z轴坐标作变换 xlabel('U(沪市)'); % 为X轴加标签 ylabel('V(深市)'); % 为Y轴加标签 zlabel('c(u,v)'); % 为z轴加标签
%***********************求Copula中参数的估计值****************************** % 调用copulafit函数估计二元正态Copula中的线性相关参数 rho_norm = copulafit('Gaussian',[U(:), V(:)])
% 调用copulafit函数估计二元t-Copula中的线性相关参数和自由度 [rho_t,nuhat,nuci] = copulafit('t',[U(:), V(:)])
%********************绘制Copula的密度函数和分布函数图************************ [Udata,Vdata] = meshgrid(linspace(0,1,31)); % 为绘图需要,产生新的网格数据 % 调用copulapdf函数计算网格点上的二元正态Copula密度函数值 Cpdf_norm = copulapdf('Gaussian',[Udata(:), Vdata(:)],rho_norm);
% 调用copulacdf函数计算网格点上的二元正态Copula分布函数值 Ccdf_norm = copulacdf('Gaussian',[Udata(:), Vdata(:)],rho_norm); % 调用copulapdf函数计算网格点上的二元t-Copula密度函数值 Cpdf_t = copulapdf('t',[Udata(:), Vdata(:)],rho_t,nuhat);
% 调用copulacdf函数计算网格点上的二元t-Copula分布函数值 Ccdf_t = copulacdf('t',[Udata(:), Vdata(:)],rho_t,nuhat); % 绘制二元正态Copula的密度函数和分布函数图 figure; % 新建图形窗口
surf(Udata,Vdata,reshape(Cpdf_norm,size(Udata))); % 绘制二元正态Copula密度函数图 xlabel('U'); % 为X轴加标签 ylabel('V'); % 为Y轴加标签 zlabel('c(u,v)'); % 为z轴加标签 figure; % 新建图形窗口
surf(Udata,Vdata,reshape(Ccdf_norm,size(Udata))); % 绘制二元正态Copula分布函数图 xlabel('U'); % 为X轴加标签 ylabel('V'); % 为Y轴加标签 zlabel('C(u,v)'); % 为z轴加标签
% 绘制二元t-Copula的密度函数和分布函数图 figure; % 新建图形窗口
surf(Udata,Vdata,reshape(Cpdf_t,size( …… 此处隐藏:4744字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




