ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:197.44KB ,
资源ID:9214073      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9214073.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Copula理论及MATLAB应用实例.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Copula理论及MATLAB应用实例.docx

1、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, x

2、c = 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和lil

3、lietest函数对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 = lillietes

4、t(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个至最后一个元素,即排序后样本点处的经验分布函数值

5、fx = fx(2:end);fy = fy(2:end);% 通过排序和反排序恢复原始样本点处的经验分布函数值U1和V1Xsort,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,i

6、d = sort(X); % 为了作图的需要,对X进行排序figure; % 新建一个图形窗口plot(Xsort,U1(id),c,LineWidth,5); % 绘制沪市日收益率的经验分布函数图hold onplot(Xsort,U2(id),k-.,LineWidth,2); % 绘制沪市日收益率的核分布估计图legend(经验分布函数,核分布估计, Location,NorthWest); % 加标注框xlabel(沪市日收益率); % 为X轴加标签ylabel(F(x); % 为Y轴加标签Ysort,id = sort(Y); % 为了作图的需要,对Y进行排序figure; % 新建

7、一个图形窗口plot(Ysort,V1(id),c,LineWidth,5); % 绘制深市日收益率的经验分布函数图hold onplot(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 = ksdensi

8、ty(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

9、*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的密度函数和分布函数图*Uda

10、ta,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 = copula

11、pdf(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轴加标签fig

12、ure; % 新建图形窗口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(Udata); % 绘制二元t-Copula密度函数图xlabel(U); % 为X轴加标签ylabel(V); % 为Y轴加标签zlabel(c(u,v); %

13、 为z轴加标签figure; % 新建图形窗口surf(Udata,Vdata,reshape(Ccdf_t,size(Udata); % 绘制二元t-Copula分布函数图xlabel(U); % 为X轴加标签ylabel(V); % 为Y轴加标签zlabel(C(u,v); % 为z轴加标签%*求Kendall秩相关系数和Spearman秩相关系数*% 调用copulastat函数求二元正态Copula对应的Kendall秩相关系数Kendall_norm = copulastat(Gaussian,rho_norm)% 调用copulastat函数求二元正态Copula对应的Spearm

14、an秩相关系数Spearman_norm = copulastat(Gaussian,rho_norm,type,Spearman)% 调用copulastat函数求二元t-Copula对应的Kendall秩相关系数Kendall_t = copulastat(t,rho_t)% 调用copulastat函数求二元t-Copula对应的Spearman秩相关系数Spearman_t = copulastat(t,rho_t,type,Spearman)% 直接根据沪、深两市日收益率的原始观测数据,调用corr函数求Kendall秩相关系数Kendall = corr(X,Y,type,Kend

15、all)% 直接根据沪、深两市日收益率的原始观测数据,调用corr函数求Spearman秩相关系数Spearman = corr(X,Y,type,Spearman)%*模型评价*% 调用ecdf函数求X和Y的经验分布函数fx, Xsort = ecdf(X);fy, Ysort = ecdf(Y);% 调用spline函数,利用样条插值法求原始样本点处的经验分布函数值U = spline(Xsort(2:end),fx(2:end),X);V = spline(Ysort(2:end),fy(2:end),Y);% 定义经验Copula函数C(u,v)C = (u,v)mean(U = u)

16、.*(V x=0:pi/10:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2)图5.1.1 函数plot 绘制的正弦曲线在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专门提供了这方面的参数选项(见表5.1.1),我们只要在每个坐标后加上相关字符串,就可实现它们的功能。表5.1.1 绘图参数表色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式y 黄- 实线. 点 大于号例如,在上例中输入 plot(x,y1,r+-,x,y2,k*:)则得图5.1.2图5.1.2 使用不同标记的plot 函数绘制的正弦曲线5.1.

17、2 图形修饰MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。表5.1.2 图形修饰函数表函数 含义grid on (/off) 给当前图形标记添加(取消)网络xlable(string) 标记横坐标ylabel(string) 标记纵坐标title(string) 给图形添加标题text(x,y,string) 在图形的任意位置增加说明性文本信息gtext(string) 利用鼠标添加说明性文本信息axis(xmin xmax ymin ymax) 设置坐标轴的最小最大值例5.1.2 给例5.1.1 的图形中加入网络和标记。(见图5.1.3 和5.1.4) x=0:

18、pi/10:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) grid on xlabel(independent variable X) ylabel(Dependent Variable Y1 & Y2) title(Sine and Cosine Curve) text(1.5,0.3,cos(x) gtext(sin(x) axis(0 2*pi -0.9 0.9)图5.1.3 使用了图形修饰的plot 函数绘制的正弦曲线5.1.3 图形的比较显示在一般默认的情况下,MATLAB 每次使用plot 函数进行图形绘制,将重新产生一个图形窗口。但有时希

19、望后续的图形能够和前面所绘制的图形进行比较。一般来说有两种方法:一是采用hold on(/off)命令,将新产生的图形曲线叠加到已有的图形上;二是采用subplot(m,n,k)函数,将图形窗口分隔成n m 个子图,并选择第k 个子图作为当前图形,然后在同一个视图窗口中画出多个小图形。例5.1.3 在同一窗口中绘制线段。 x=0:pi/10:2*pi; y1=sin(x); y2=cos(x); y3=x; y4=log(x); plot(x,y1,x,y2) hold on plot(x,y3) plot(x,y4) hold off例5.1.4 在多个窗口中绘制图形。(见图5.1.6) x

20、=0:pi/10:2*pi; y1=sin(x); y2=cos(x); y3=exp(x); y4=log(x); subplot(2,2,1); plot(x,y1); subplot(2,2,2); plot(x,y2); subplot(2,2,3); plot(x,y3); subplot(2,2,4); plot(x,y4);说明 (1)子窗口的序号按行由上往下,按列从左向右编号。(2)如果不用指令clf 清除,以后图形将被绘制在子图形窗口中。图5.1.6 图形的比较显示(图形窗口分割方法)5.2 三维立体图形5.2.1 三维曲线图与二维图形相对应,MATLAB 提供了plot3 函数,可以在三维空间中绘制三维曲线,它的格式类似于plot,不过多了z 方向的数据。plot3 的调用格式为:plot3(x1,y1,z1,x2,y2,z2,.)其中x1,y1,z1,x2,y2,z2,等分别为维数相同的向量,分别存储着曲线的三个坐标值,该函数的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1