1、end),fx(2:end),X);V1 = spline(Ysort(2:end),fy(2:end),Y);% 提取 fx 和 fy 的第 2 个至最后一个元素,即排序后样本点处的经验分布函数值fx = fx(2:end);fy = fy(2:% 通过排序和反排序恢复原始样本点处的经验分布函数值 U1 和 V1Xsort,id = sort(X);idsort,id = sort(id);U1 = fx(id);Ysort,id = sort(Y);V1 = fy(id);%* 核分布估计 *% 调用 ksdensity 函数分别计算原始样本 X 和 Y 处的核分布估计值U2 = ksde
2、nsity(X,X,function,cdf*V2 = ksdensity(Y,Y ,绘制经验分布函数图和核分布估计图 * % 为了作图的需要,对 X 进行排序 % 新建一个图形窗口 plot(Xsort,U1(id),cLineWidth % 绘制沪市日收益率的经验分布函数图hold on plot(Xsort,U2(id),k-.,2); % 绘制沪市日收益率的核分布估计图legend(经验分布函数,核分布估计LocationNorthWest % 加标注框 xlabel(沪市日收益率%为X轴加标签 ylabel(F(x) % 为了作图的需要,对 Y 进行排序 figure; % 新建一个
3、图形窗口plot(Ysort,V1(id), % 绘制深市日收益率的经验分布函数图 hold onplot(Ysort,V2(id), % 绘制深市日收益率的核分布估计图 legend( % 加标注框深市日收益率U = ksdensity(X,X,V = ksdensity(Y,Y,% 绘制边缘分布的二元频数直方图,hist3(U(:) V(:),30,30)U (沪市) % 为 X 轴加标签 ylabel(V (深市) % 为 Y 轴加标签 zlabel(频数% 为z轴加标签h = get(gca, Children % 获取频数直方图的句柄值cuv = get(h, ZData % 获取频
4、数直方图的 Z 轴坐标 set(h,cuv*30*30/length(X); % 对频数直方图的 Z 轴坐标作变换 xlabel(zlabel(c(u,v) % 为 z 轴加标签%*求 Copula 中参数的估计值 *% 调用 copulafit 函数估计二元正态 Copula 中的线性相关参数rho_norm = copulafit(Gaussian,U(:), V(:)% 调用 copulafit 函数估计二元 t-Copula 中的线性相关参数和自由度rho_t,nuhat,nuci = copulafit(t%*绘制 Copula 的密度函数和分布函数图 *Udata,Vdata =
5、meshgrid(linspace(0,1,31); % 为绘图需要,产生新的网格数据% 调用 copulapdf 函数计算网格点上的二元正态 Copula 密度函数值 Cpdf_norm = copulapdf(,Udata(:), Vdata(:),rho_norm);% 调用 copulacdf 函数计算网格点上的二元正态 Copula 分布函数值Ccdf_norm = copulacdf(% 调用 copulapdf 函数计算网格点上的二元 t-Copula 密度函数值 Cpdf_t = copulapdf(),rho_t,nuhat);% 调用 copulacdf 函数计算网格点上的
6、二元 t-Copula 分布函数值Ccdf_t = copulacdf(% 绘制二元正态 Copula 的密度函数和分布函数图 figure; % 新建图形窗口surf(Udata,Vdata,reshape(Cpdf_norm,size(Udata); % 绘制二元正态 Copula 密度函数图 xlabel(UV % 为 z 轴加标签 figure;surf(Udata,Vdata,reshape(Ccdf_norm,size(Udata); % 绘制二元正态 Copula 分布函数图 xlabel(C(u,v)% 绘制二元 t-Copula 的密度函数和分布函数图 figure;surf
7、(Udata,Vdata,reshape(Cpdf_t,size(Udata); % 绘制二元 t-Copula 密度函数图 xlabel(surf(Udata,Vdata,reshape(Ccdf_t,size(Udata); % 绘制二元 t-Copula 分布函数图 xlabel(%* 求 Kendall 秩相关系数和 Spearman 秩相关系数 * % 调用 copulastat 函数求二元正态 Copula 对应的 Kendall 秩相关系数 Kendall_norm = copulastat(,rho_norm)% 调用 copulastat 函数求二元正态 Copula 对应的
8、 Spearman 秩相关系数 Spearman_norm = copulastat(,rho_norm,typeSpearman)% 调用 copulastat 函数求二元 t-Copula 对应的 Kendall 秩相关系数Kendall_t = copulastat(,rho_t)% 调用 copulastat 函数求二元 t-Copula 对应的 Spearman 秩相关系数% 直接根据沪、深两市日收益率的原始观测数据,调用 corr 函数求 Kendall 秩相关系数 Kendall = corr(X,Y,Kendall% 直接根据沪、深两市日收益率的原始观测数据,调用 corr 函
9、数求 Spearman 秩相关系数 Spearman = corr(X,Y,%* 模型评价 *U = spline(Xsort(2:V = spline(Ysort(2:% 定义经验 Copula 函数 C(u,v) C = (u,v)mean(U = u).*(V x=0:pi/10:2*pi; y1=si n( x); y2=cos(x); plot(x,y1,x,y2)图5.1.1函数plot绘制的正弦曲线 在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组, MATLAB 软件专门提供了这方面的参数选项(见表 5.1.1),我们只要在每个坐标后加上相关字 符串,就可实现它们的功
10、能。表 5.1.1 绘图参数表 色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式y 黄- 实线 . 点 大于号 例如,在上例中输入 plot(x,y1,r+-,x,y2,k*:则得图 5.1.2图5.1.2使用不同标记的plot函数绘制的正弦曲线5.1.2图形修饰MATLAB软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图 形。表5.1.2图形修饰函数表函数 含义grid on (/off) 给当前图形标记添加(取消)网络xlable( stri ng 标记横坐标ylabel( stri ng 标记纵坐标title( string 给图形添加标题text(x,y, s
11、tring在图形的任意位置增加说明性文本信息gtext( string 利用鼠标添加说明性文本信息axis(xmin xmax ymin ymax) 设置坐标轴的最小最大值例5.1.2给例5.1.1的图形中加入网络和标记。(见图 5.1.3和5.1.4) grid on xlabel(i ndepe ndent variable X ylabel(Depe ndent Variable Y1 & Y2 title(Sine and Cosine Curve text(1.5,0.3,cos(x) gtext(si n(x) axis(0 2*pi -0.9 0.9)图5.1.3使用了图形修饰的
12、plot函数绘制的正弦曲线5.1.3图形的比较显示在一般默认的情况下,MATLAB每次使用plot函数进行图形绘制,将重新产生 一个图形窗口。但有时希望后续的图形能够和前面所绘制的图形进行比较。 一般来说有两种方法:一是采用hold on(/off)命令,将新产生的图形曲线叠加到已有的图形上;二是采用subplot(m,n,k)函数,将图形窗口分隔成n mx个子图,并选择第k个 子图作为当前图形,然后在同一个视图窗口中画出多个小图形。例5.1.3在同一窗口中绘制线段 y1=sin(x); y3=x; y4=log(x); hold on plot(x,y3) plot(x,y4) hold o
13、ff例 5.1.4 在多个窗口中绘制图形。(见图 5.1.6) y3=exp(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函数,可以在三维空间中绘制三维 曲线
14、,它的格式类似于plot,不过多了 z方向的数据。plot3的调用格式为: plot3(x1,y1,z1,x2,y2,z2,.J其中x1,y1,z1,x2,y2,z2,等分别为维数相同的向量,分别存储着曲线的三个坐标 值,该函数的使用方式和plot类似,也可以采用多种的颜色或线型(见表 5.1.1)来区 分不同的数据组,只需在每组变量后面加上相关字符串即可实现该功能。例5.2.1绘制方程x=t y=s in(t)z=cos(t)在t=0,2*pi上的空间万程。(见图 521) clf plot3(y1,y2,x,m:pDepe ndent Variable Y1) Dependent Variable Y2 zlabel(I ndepe ndent Variable X图5.2.1函数plot绘制的三维曲线图5.2.2三维曲面图如果要画一个三维的曲面,可以使用 mesh(X,Y,Z)或surf(X,Y,Z)函数来实现。 mesh函数为数据点绘制网格线,图形中的每一个已知点和其附近的点用直线连接。surf函数和mesh的用法类似,但它可以画出着色表面图,图形中的每一个已知点与 其相邻点以平面连接。为方便测试立体绘图,MATLAB 提供了一个pea
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1