matlab做copula,Copula理论及MATLAB应用实例

41528d3028836879cd698677c3999917.gifCopula理论及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处的核分布

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值