Matlab在金融工程中的应用_第1页
Matlab在金融工程中的应用_第2页
Matlab在金融工程中的应用_第3页
Matlab在金融工程中的应用_第4页
Matlab在金融工程中的应用_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八讲Matlab在金融工程中的应用,张树德著,参考文献:,MATLAB金融计算与金融数据处理,北京航空航天大学出版社,2008,Matlab金融工具箱模块,1.FinancialToolbox,Matlab自带金融工具箱,具有下列功能:,固定收益计算,日期数据处理,资产均值方差分析,时间序列分析,有价证卷的收益和价格,统计分析,定价和灵敏度分析,年金和现金流计算,抵押支持债卷,FinancialDerivativesToolbox是金融衍生产品工具箱,用于固定收益、金融衍生物以及风险投资评估分析,也可用于各种金融衍生物定价策略以及敏感度分析。,2.FinancialDerivativesToolbox,3.FinancialTimeSeriesToolbox,FinancialTimeSeriesToolbox用于分析金融市场的时间序列数据。金融数据是时间序列数据,例如股票价格或每天的利息波动,可以用该工具箱进行更加直观的数据管理。该工具箱支持下列功能:,技术分析函数分析投资。,可视化金融时间序列的对象;,提供两种创建金融时间序列的对象(用构造器和转换文本文件);,FixedIncomeToolbox扩展了Matlab在金融财经方面的应用,可以用固定收益模型进行计算,例如定价、收益和现金流动等有价证券的固定收益计算。支持的固定收益类型包括有价证券抵押回报、社会债卷和保证金等。该工具箱还能够处理相应金融衍生物的计算,支持抵押回收有价证券、国债和可转换债卷等的计算。,GarchToolbox提供了一个集成计算环境,允许对单变量金融时序数据的易变性进行建模。GarchToolbox使用一个广义ARMAX/GARCH复合模型对带有条件异方差的金融时序数据进行仿真、预测和参数识别。GarchToolbox提供了基本工具为单变量广义自回归条件异方差GARCH(GeneralizedAutoRegressiveConditionalHeteroskedasticity)易变性进行建模。GarchToolbox采用单变量GARCH模型对金融市场中的变化性进行分析。,4.FixedIncomeToolbox,5.GarchToolbox,上述工具箱基本上囊括了通常的金融计算,适用于金融学术研究,特别适合金融实务工作者进行金融计算。FinancialToolbox提供了一个基于Matlab的财务分析支撑环境,可以完成许多种财务分析统计任务;从简单计算到全面的分布式应用,财务工具箱都能够用来进行证卷定价、资产组合收益分析、偏差分析和优化业务量等工作。,金融数据统计,本讲主要介绍了统计学的基本原理和基本统计量。要求读者掌握均匀分布、正态分布随机数生成办法,学会常用的统计绘图命令,掌握回归的方法,学会运用主成份、因子分析金融问题。,一、随机模拟基本原理,1977年,菲利浦.伯耶勒(PhelimBoyle)提出了模拟方法求解金融资产定价问题。其想法是假设资产价格分布是随机波动,如果知道了这个波动过程,就可以模拟不同的路径;每做完一次模拟,就产生一个最终资产价值,在进行若干次这样的过程,那么所得到的结果就是一个最终资产价值分布,从这个分布中可以得到期望的资产价格。,(一)随机数生成函数,在Matlab中unidrnd函数可以生成1N的均匀分布随机数。其调用方式为:,Runidrnd(N),随机数矩阵,确定输出随机矩阵R的行数,生成在1N之间的一个随机数,1.均匀分布随机数生成函数,Runidrnd(N,m),Runidrnd(N,m,n),确定输出随机矩阵R的列数,输出方阵,unifrnd(0,1)ans=0.4565,如果需要生成服从连续均匀分布的随机数,则可以调用unifrnd函数,其调用方式为:,Runifrnd(A,B),A,B是随机数的下界与上界,如:生成一个01之间随机数:,2.生成服从连续均匀分布的随机数,Runifrnd(A,B,m),Runifrnd(A,B,m,n),m,n表示随机数的维数,下面介绍两种方法生成12之间随机矩阵K,K为5行6列矩阵。,方法1,方法2,unifrnd(1,2,5,6)ans=1.93341.13381.57511.01291.61241.58691.68331.20711.45141.38401.60851.05761.21261.60721.04391.68311.01581.36761.83921.62991.02721.09281.01641.63151.62881.37051.31271.03531.19011.7176,unifrnd(1,2,5,6)ans=1.69271.15361.55481.27311.90841.64081.08411.67561.12101.25481.23191.19091.45441.69921.45081.86561.23931.84391.44181.72751.71591.23241.04981.17391.35331.47841.89281.80491.07841.1708,Rnormrnd(mu,sigma),正态分布的均值,随机矩阵R的行数,正态分布的方差,3.生成正态分布的随机数,Rnormrnd(mu,sigma,m),Rnormrnd(mu,sigma,m,n),随机矩阵R的列数,调用方式为:,normrnd(0,1)ans=-0.4326,如:生成均值为0,方差为1正态分布的随机数,可用命令,下面用两种方法生成均值为0,方差为1的正态分布矩阵,矩阵为5行6列。,方法1,方法2,normrnd(0,1,5,6)ans=-0.31790.7310-0.25560.11840.7990-1.00781.09500.5779-0.37750.31480.9409-0.7420-1.87400.0403-0.29591.4435-0.99211.08230.42820.6771-1.4751-0.35100.2120-0.13150.89560.5689-0.23400.62320.23790.3899,normrnd(0,1,5,6)ans=0.08800.7812-2.20230.0215-1.0559-1.1283-0.63550.56900.9863-1.00391.4725-1.3493-0.5596-0.8217-0.5186-0.94710.0557-0.26110.4437-0.26560.3274-0.3744-1.21730.9535-0.9499-1.18780.2341-1.1859-0.04120.1286,4.特定分布随机数发生器,在Matlab中有统一格式随机数发生器,函数名称为random,可以生成许多服从不同分布的随机数。,调用方式,y=random(name,A1,A2,A3,m,n),输出参数,name说明随机分布的类型,具体如下表所列。,特定分布的参数表,a=random(Normal,0,1,3,2)a=0.6565-0.2624-1.1678-1.2132-0.4606-1.3194,下面用random函数生成3行2列的正态分布随机数矩阵,正态分布的均值为0、方差为1。,5.多元正态分布的随机数,多元正态分布的随机数可以用如下形式表示:,式中:是均值向量,是协方差矩阵。,XiN(,),mu均值sigma协方差cases样本个数,在Matlab中可使用mvnrnd函数生成多元正态分布函数。,调用方式,R=mvnrnd(mu,sigma)R=mvnrnd(mu,sigma,cases),输入参数,mu=23;%均值SIGMA=11.5;1.53;%协方差矩阵r=mvnrnd(mu,SIGMA,100);%生成100个随机样本plot(r(:,1),r(:,2),+),下面生成一个多元正态分布的例子。,样本的散点图如右所示:,二元正态分布的散点图,(二)多元正态分布密度函数,mu=1-1;Sigma=0.90.4;0.40.3;X=21;p=mvnpdf(X,mu,Sigma)p=1.3828e-005,多元正态分布的密度函数是mvnpdf。,调用方式,mvnpdf(X,mu,Sigma),下面是一个例子。,mu=1-1;Sigma=0.90.4;0.40.3;X=21;f=mvncdf(X,mu,Sigma)f=0.8541,F(x,y)P(Xx,Yy),如果计算分布函数,则X、Y为二元随机正态分布,分布函数F(x,y)的定义如下:,调用方式为:,p=mvncdf(X,mu,SIGMA),下面举一个例子。,可以看出:对于随机变量X,Y,有P(X2,Y1)=0.8541也即Xa=12;34;a=1234,下面是一个例子。,mean(a)ans=23,mean(a,2)ans=1.50003.5000,(二)剔除异常值后的平均值,X样本观察矩阵。percent剔除比率,例如percent10表示同时剔除最大的5%和最小的5观察值。dimdim1(默认)表示对每列求平均值,dim2表示对每行求平均值。,有时观察数据中有异常大或异常小的值,这些异常值会对平均值产生影响,需要去掉异常值。例如在体操比赛中,去掉一个最高分和最低分,然后计算运动员的最后得分。在Matlab中也有剔除异常值后的平均数。,调用方式,M=trimmean(X,percent)M=trimmean(X,percent,dim),输入参数,x=rand(1,20)trimmean(x,10)ans=0.5145,(三)计算中位数,A样本观测矩阵dimdim1(默认)表示对每列求中位数,dim2表示对每行求中位数,剔除10的异常值之后的平均数为0.5145。,调用方式,Mmedian(A)Mmedian(A,dim),输入参数,有时数据中出现NaN,在计算中位数时需要忽略NaN,这时需要调用nanmedian函数。,(四)计算方差与标准差,A样本值flag0(默认值)表示方差计算公式为1表示方差计算公式为,一般说来,资产组合的风险越大,方差越大,波动性越大。方差由于其简单、直观以及良好的统计性质使其成为风险的代名词。,在Matlab中计算方差、标准差的函数分别是Var、Std。,方差调用方式,Var(A)Var(A,flag),标准差调用方式,Std(A)Std(A,flag),输入参数,(五)计算样本的百分位数,x=rand(1,20);prctile(x,20)ans=0.1688,调用方式,Yprctile(X,p,dim),输入参数,X观察值p计算大于p值的数dim同上,下面是一个例子,(六)计算样本极差,r=range(q)r=range(q,dim),极差就是样本极大值与极小值的差,反映样本的离散程度。,调用方式,x=rand(1,20);range(x)ans=0.8404,下面是一个例子,(七)计算偏度与峰度,方差作为风险的度量指标并不是完整的。比如讲,两种资产收益分布的均值和方差都是相同的,但是一种资产收益是左偏的,另一种是右偏的。对于风险而言,相对于大概率和小损失人们更加厌恶小概率大损失的情况,后一种情况给人们带来的痛苦远大于第一情况。从这个意义上讲,收益分布左偏的资产的风险水平要小于右偏的资产。此时,方差作为风险的度量指标就不是完全的,还要考虑峰度、偏度等指标。偏度和峰度是两个高阶的统计量。计算偏度的目的在于考察组合收益率水平是否是对称分布,也就是组合产生亏损与获得盈利的概率如何;峰度是考察组合的收益率情况是否接近正态分布,如果组合的收益率存在尖峰厚尾的分布特征,则说明组合产生亏损和盈利的概率偏大,也就是在一定程度上认为组合收益率出现极端性的可能性偏大,这种组合的收益率稳定性是比较差的。,正态分布的峰度等于3,大于3表示尖峰,小于3表示分布比较均匀。股票市场收益率的时间序列大都为尖峰肥尾。,偏度的计算公式为,式中:,分别为样本x的均值与方差。,如果skewness0,则表示分布形态与正态分布偏度相同;如果skewness0,则表示正偏差数值较大,长尾巴拖在右边;如果skeqnessx=rand(1,20);skewness(x)ans=-0.0487,1.计算偏度,调用方式,Y=skewness(A)Y=skewness(A,flag),输入参数,A样本值flag偏度的计算方式,0(默认)为无偏估计,1为有偏估计,下面是一个例子。,k=kurtosis(X)k=kurtosis(X,flag)k=kurtosis(X,flag,dim),2.计算峰度,调用方式,X样本观察矩阵flag峰度的计算方式,0(默认)为无偏估计,1为有偏估计dimdim1(默认)表示对每列求平均,dim2表示对每行求平均,输入参数,x=rand(1,20)kurtosis(x)ans=1.4407,下面是一个例子。,(八)计算绝对离差,绝对离差是以偏差绝对数来衡量决策方案的风险。在期望值相同的情况下,绝对离差越大,风险越大;绝对离差越小,风险越小。,调用方式,Y=mad(X)Y=mad(X,n),输入参数,X观察值n绝对偏差计算方式n0(默认)计算公式为mean(abs(Xmean(X)n1计算公式为median(abs(Xmedian(X),x=rand(1,20)mad(x)ans=0.1750,下面是一个绝对离差的例子。,(九)计算中心矩,数理统计中经常用到中心矩的概念,k阶中心矩的计算公式为,可以看出1阶中心矩为0,如果观察值是矩阵则以每列为样本计算中心矩。,X观察样本值order中心矩的阶数,必须为正整数,调用方式,M=moment(X,order),输入参数,X=rand(65)X=0.41540.99010.32000.43990.13380.30500.78890.96010.93340.20710.87440.43870.72660.68330.60720.01500.49830.41200.21260.62990.76800.21400.74460.83920.37050.97080.64350.26790.62880.5751,m=moment(X,3)m=-0.01130.00140.0032-0.0058-0.0023,下面计算样本的3阶矩。,(十)计算协方差和相关系数,协方差是一个用于衡量投资组合任意两个资产相关性的统计指标。当协方差为正值时,表示两种资产的收益率呈同方向变动;协方差为负值时,表示两种资产的收益率呈相反方向变化;协方差等于0时,表示两种资产不存在相关性。相关系数总是在-11之间的范围内变动,-1表示完全负相关(反向),1表示完全正相关(同向),0则表示不相关。Matlab计算协方差、相关系数的函数分别是cov和corrcoef。,协方差,调用方式,C=cov(X)C=cov(x,y),下面是一个例子,A=-112;-231;403;cov(A)ans=10.333-4.16673.0000-4.16672.3333-1.50003.0000-1.50001.0000,X观察值矩阵Y观察向量param1参数1,参数的值如下:alpha表示置信度,在01之间val1参数1的值param2参数2val2参数2的值,2.相关系数,调用方式,R=corrcoef(X)R=corrcoef(x,y)R,P=corrcoef(X,param1,val1,param2,val2,),输入参数,R相关系数矩阵P每个相关系数的概率矩阵,输出参数,x=rand(30,4);x(:,4)=sum(x,2);r,p=corrcoef(x)i,j=find(pi,j,下面是一个计算相关系数的例子。,r=1.00000.1412-0.19540.49930.14121.0000-0.13120.5848-0.1954-0.13121.00000.37290.49930.58480.37291.0000p=1.00000.45660.30080.00500.45661.00000.48960.00070.30080.48961.00000.04240.00500.00070.04241.0000ans=414243142434,三、统计绘图,x=1235733.4x=1.00002.00003.00005.00007.00003.00003.4000tabulate(x)ValueCountPercent1114.29%2114.29%3228.57%3.4114.29%5114.29%7114.29%,(一)样本频率分布图,样本频率分布图函数是tabulate。,下面调用cdfplot函数绘出x的分布图。,cdfplot(x),向量x的分布图,(二)最小二乘拟合图,在Matlab中绘制最小二乘拟合图的命令是lsline,下面是一个例子。,x=rand(1,20)x=cumsum(x)plot(x,+)lsline,最小二乘拟合图,(三)正态分布概率图,有时需要判断样本数据是否服从正态分布,normplot函数用图的形式给出直观的判断。如果数据点越靠近直线则分布越近似正态分布,越远则越偏离正态分布。,x=normrnd(0,1,20,1)plot(x,+)normplot(x),正态分布拟合图,从图中可以看出,数据点基本上是直线,所以符合正态分布。如果判断数据是否服从Weibull分布则可以对生成的数据用wblplot函数进行判断。下图给出了Weibull分布拟合的结果。,从图中看出对于数据较小、较大的点偏离较大,数据不服从Weibull分布。,Weibull分布拟合图,(四)样本密度图,randn(seed,0);x=randn(1,20);x=cumsum(x)capaplot(x,0,10),在Matlab中绘出样本数据的密度图函数为capaplot。,样本的密度示意图如右图所示。,样本的密度示意图,(五)频率直方图,Y观察值。如果Y是一个向量,则画出一个频率图;如果Y是一个mp阶矩阵,则对Y每一列分别作频率图nbins频率图分成nbins等分的区间段,默认值为10。,调用方式,n=hist(Y)n=hist(Y,nbins)n,xout=hist(Y,nbins),输入参数,n样本落在区间段的频率xout区间断的刻度,输出参数,下面是一个例子。,randn(seed,0)x=randn(1,200);hist(x),频率直方图如右图所示,hist(x,min(x):0.3:max(x);,其中min(x):0.3:max(x)表示频率图X轴的刻度起点是x最小元素,终点是x中最大元素,刻度间隔0.3。规定刻度间隔的频率直方图如下图所示。,如果在频率图的基础上加上正态分布拟合图,则可以用histfit函数。,randn(seed,0)x=randn(1,20)histfit(x),带有密度函数的频率直方图如右图所示。,(六)盒图,X样本观察值G各组的名称Param1参数1的名称val1参数1的值,在Matlab中绘制样本数据的盒图函数是boxplot。,调用方式,boxplot(X)boxplot(X,G)boxplot(X,Param1,val1,Param2,val2,),输入参数,各参数的名称和内容如下表所列,x1=normrnd(5,1,100,1);x2=normrnd(6,1,100,1);boxplot(x1,x2,notch,on),盒子的上下两条线分别为样本的25和75分位数,盒子的上下底之间的距离为四分位的间距。盒子的中间线为样本中值,如果样本中值不在盒子的中间,表示存在一定的偏度。盒子的上方和下方有两条虚线,显示了样本的范围,野值(异常值)位于超过盒子顶端、底端1.5倍的四分位数。含有缺口的盒图中齿形缺口表示样本中值的置信区间。,图中的内容说明如下:,正态分布盒图如右图所示。,四、多元线性回归分析,在金融上常常需要对金融、经济数据进行回归,其中最简单的是多元线性回归。,(一)多元线性回归,b=regress(Y,X)b,bint=regress(Y,X)b,bint,r=regress(Y,X)b,bint,r,rint=regress(Y,X)b,bint,r,rint,stats=regress(Y,X)b,bint,r,rint,stats=regress(Y,X,alpha),假设因变量Y和自变量X之间服从以下的线性模型:,式中:Y是因变量的观察值,X是自变量回归矩阵,是参数向量,是白噪声。,的最小二乘解是,调用方式,X自变量观察值,注意如果模型中有常数项,则X的第一列所有元素为1。Y因变量观察值向量alpha参数的置信度,输入参数,例1首先按照下面模型生成一系列随机数,然后回归。,b的估计值,注意b中已经包含了常数项bint的置信区间r残值rint残值的置信区间statsR2、F、概率p,输出参数,b,bint,r,rint,stats=regress(Y,ones(10,1),X,0.05),下面生成一组随机数,X=1:10;Y=0.1+0.4*X+normrnd(0,0.1,1,10);,下面估计:,rint=-0.17940.1149-0.14350.1764-0.16250.1737-0.20050.1417-0.17950.1712-0.10460.2290-0.05690.2470-0.2559-0.0402-0.06670.2238-0.18890.1008stats=1.0e+003*0.00102.28370.00000.0000,b=0.13030.3953bint=0.01200.24870.37620.4144r=-0.03230.01650.0056-0.0294-0.00410.06220.0950-0.14800.0785-0.0440,从b的估计值可以得知常数项和一次项的系数分别为0.1303,0.3953。在0.05置信水平下常数项系数估计区间为0.01200.2487,X的系数置信区间为0.37620.4144。由于样本数量非常少,参数估计并不稳定。下图是残差及其置信区间图。,rcoplot(r,rint),(二)多元正态回归,在Matlab中mvnrmle函数可以进行多元正态回归,假设Yk为随机变量,其分布如下:,式中:N(g,g)为多元正态分布。,调用方式,Parameters,Covariance,Resid,Info=mvnrmle(Y,Design,MaxIterations,TolParam,Tol0bj,Covar0),Parameters参数Covariance协方差Resid残差Info估计过程的相关系数,Y观察值矩阵,Ynk中n是样本的个数,k是资产的数目Design自变量单元变量矩阵,如果Y只有一个资产时,Design是一个矩阵,如果Y中的资产个数大于一个时,Design是一个单元向量,每个元素都是一个矩阵。Y的k列和Design第k个元素中的矩阵进行回归MaxIterationsTolParamTol0bjCovaro,输出参数,输入参数,(三)估计多元正态分布每个资产的标准差,Data观察值矩阵,Ynk中n样本的个数,k是资产的数目Design自变量单元变量矩阵,如果Y只有一个资产时,Design是一个单元向量,如果Y含有多于一个资产时,Design是一个单元变量矩阵Covariance回归时的残值,调用方式,StdParameters,StdCovariance=mvnrstd(Data,Design,Covariance),输入参数,StdParameters每个资产的标准差StdCovariance协方差,输出参数,(四)岭回归,线性回归中参数估计,如果观察值X存在自相关性,则XTX是奇异矩阵,估计值就会出现非常大的误差,这时矩阵XTX需要加上一个对角元素是常数k的单位阵,即。Matlab提供了岭回归ridge函数求解该问题。,b模型估计参数,调用方式,b1=ridge(Y,X,k)b0=ridge(Y,X,k,0),输入参数,Y因变量观察值X自变量观察值kk表示控制系数,可以根据需要进行选择。,输出参数,k=0:0.01:1;b=ridge(heat,ingredients,k);plot(k,b);xlabel(Ridgeparameter);ylabel(Standardizedcoef.);title(RidgeTraceforHaldData)legend(x1,x2,x3,x4);,例2对hald文件中的数据进行岭回归。,loadhald,查看工作区中的变量。,whoYourvariablesare:haldheatingredients,五、主成分分析,主成分分析是在各个变量之间相关关系研究的基础上,用较少的新变量代替原来较多的变量,而且使这些较少的新变量尽可能多地保留原来较多的变量所反映的信息。,(一)主成分分析基本原理,首先对样本进行标准化处理,为简单起见,标准化后的样本仍记为X1,X2,X3,Xp。,设样本为X1,X2,X3,Xp,其对应的样本均值为对应的标准差为S1,S2,S3,Sp。,设F1,F2,F3,Fp是主成分,也即是X1,X2,X3,Xp的线性表示,同时满足下面的条件:主成分是原样本的正交变换。各主成分之间互不相关。主成分的总方差不变。主成分按方差从大到小排序。,主成分具有如下性质:,这一性质说明,主成分是原变量的线性组合,是对原变量信息的一种改良;主成分不增加总信息量,也不减少总信息量。,设为主成分的特征值,前k个方差累积贡献率为一般当累积贡献率大于85时不再增加新的主成分。,保留多少个主成分取决于保留部分的累积方差在总方差中占的百分比(即累计贡献率),它标志着前几个主成分概括的信息的多寡。在实践中,粗略规定一个百分比就可以决定保留几个主成分,如果多留一个主成分,但累积方差增加无几,便不再多留。,(二)主成分分析函数,COEFF主成分系数SCORE新坐标系latentX的协方差矩阵的特征值tsquareHotelling统计量的值,在Matlab中提供了两个主成分分析函数princomp和pcacov。,COEFF,SCORE=princomp(X)COEFF,SCORE,latent=princomp(X)COEFF,SCORE,latent,tsquare=princomp(X),输入参数,X观察变量,输出参数,调用方式,corrcoef(ingredients)ans=1.00000.2286-0.8241-0.24540.22861.0000-0.1392-0.9730-0.8241-0.13921.00000.0295-0.2454-0.97300.02951.0000,例3用Matlab自带数据进行主成分分析。Matlab中自带了数据文件hald,可以直接调用进行主成分分析。hald数据考虑影响温度的4个因素,温度保存在heat变量中,4个因素的观察值保存在ingredients中。由于4个因素之间存在相关性,无法直接回归,为解决这个问题,首先进行主成分分析,生成四个主成分变量,主成分之间互不相关,而且和观察值的信息是同样的。,第一步:载入数据,考察变量之间的相关性。,loadhald%载入Matlab自带的数据文件,考察相关性,发现自变量2与变量3之间的高度相关,所以需要剔除相关性。,第二步:主成分分析。,pc,score,latent,tsquare=princomp(ingredients),主成分系数,pc=0.06780.6460-0.56730.50620.67850.02000.54400.4933-0.0290-0.7553-0.40360.5156-0.73090.10850.46840.4844,主成分的方差贡献率,score=-36.82186.87094.59090.3967-29.6073-4.61092.2476-0.395812.98184.2049-0.9022-1.1261-23.71476.6341-1.8547-0.37860.55324.46176.08740.142410.81253.6466-0.9130-0.135032.5882-8.97981.60630.0818-22.6064-10.7259-3.23650.32439.2626-8.98540.0169-0.54373.284014.1573-7.04650.3405-9.2200-12.3861-3.42830.435225.58492.78170.38670.446826.90322.93102.44550.4116,协方差的特征值,latent=517.796967.496412.40540.2372tsquare=5.68033.07586.00022.61983.36810.56683.48183.97942.60867.48184.18302.23272.7216,由此可以得到4个主成分如下:,从特征值可以看出前面两个主成分可以很好的解释98%的方差:,(517.7969+67.4964)/(517.7969+67.4964+12.4054+0.2372)=98%,covx=cov(ingredients);pc,latent,explain=pcacov(covx),采用pcacov函数计算主成分的结果同princomp函数的结果是一样的。,loadhald,然后计算观察变量ingredients协方差。,new=ingredients*pc,在确定主成分后对主成分进行回归。,将生成的4个主成分,保存在变量new中,变量new中的每列就是一个主成分。,regress(heat,new(:,1:2)ans=2.18431.0894,验证主成分之间的相关性:,corrcoef(new)ans=1.00000.00000.00000.00000.00001.00000.00000.00000.00000.00001.00000.00000.00000.00000.00001.0000,发现主成分之间是不相关的。,第三步:用前两个主成分进行回归。,2.1843*pc(:,1)+1.0894*pc(:,2)ans=0.85191.5039-0.8862-1.4783,这样温度和主成分之间的关系如下:,还原成线性回归形式:,这样温度和自变量之间的关系如下:,第四步:验证主成分分析优点。,下面计算heat和ingredients中各个分量的相关系数。,corr(heat,ingredients(:,1)ans=0.7307,corr(heat,ingredients(:,2)ans=0.8163,corr(heat,ingredients(:,3)ans=-0.5347,corr(heat,ingredients(:,4)ans=-0.8213,相关系数表明前两个自变量和因变量之间是正相关,后两个自变量和因变量之间负相关。式(1)和实际结果相印证。,从式(2)可以看出自变量和因变量之间都是正相关,显然和实际结果不相印证。,自变量和因变量之间的函数关系如下:,c0=regress(heat,ingredients)c0=2.19301.15330.75850.4863,如果不用主成分回归,而是直接对自变量和因变量进行回归。,六、因子分析,因子分析法(factoranalysis)是一种用来分析隐藏在表象背后的因子作用的一类统计模型和方法,它起源于心理度量学,最初是研究如何使用少数几个变量来解释众多原始变量,同时又尽量避免信息丢失的多元统计分析方法。在实际问题的分析过程中,常用因子分析去除重叠信息,将原始的众多指标综合成较少的几个因子变量来分析。,1.因子分析法相关概念,设样本为,其对应的样本均值为,对应的标准差为。,因子分析的核心问题有两个,一是确定因子的个数,二是对因子变量进行命名。,首先对样本进行标准化处理,为简单起见,标准化后的样本仍记为。,因子分析的数学模型如下:,X=fX+s,式中:X是经过正交处理的样本值,f是负荷矩阵,表示公共因子部分,s是其他特殊因子。要求f,s之间不相关而且不可观察。,lambda负荷矩阵估计值psi特殊因素矩阵估计值T因素负荷旋转矩阵stats假设检验FF是nm维因子的分矩阵,2.因子分析函数调用方式,调用方式,lambda=factoran(X,m)lanmba,psi=factoran(X,m)lanmba,psi,T=factoran(X,m)lanmba,psi,T,stats=factoran(X,m)lanmba,psi,T,stats,F=factoran(X,m),输入参数,X观察值矩阵,每列属于同一个变量m公共因素的个数,输出参数,下面用一个例子说明,例4在Matlab中自带了10个公司100周的收益率数据,10家公司分成3个行业,4家属于科技公司,3家属于金融公司,另外3家属于零售类公司。一般来讲,同一行业内上市公司同质性强,走势也相同,不同行业内之间股票受不同风险因素影响,走势差别较大。下面验证该结论。,loadstockreturnsm=3;考虑3个行业的因素LoadingsPM,specificVarPM=factoran(stocks,m,rotate,promax),从上述结果可以明显看出第1到第4家公司属于同一类公司,第5家到第7家属于同一类公司,第8家到第10家属于同一类公司,说明不同行业间的股票收益率存在不同。,LoadingsPM=0.94520.1214-0.06170.7064-0.01780.20580.3885-0.09940.09750.4162-0.0148-0.12980.10210.90190.07680.08730.7709-0.0821-0.16160.5320-0.08880.21690.28440.66350.0016-0.18810.7849-0.22890.06360.6475specificVarPM=0.09910.34310.80970.85590.14290.36910.69280.31620.33110.6544,七、方差分析,方差分析主要用来检验两个以上样本的平均值差异的显著程度,由此判断样本究竟是否抽自具有同一均值的总体。,(一)单因素方差分析,一般地,假定所检验的结果受同一因素A的影响,可以取k个不同的水平1,2,3,k。对于因素的每一个水平i都进行n次试验,结果分别为,一般把这一组样本记作Xi。假定,即对于因素的每一个水平,所得到的结果都服从正态分布,且方差相等。,在方差分析中,通常把对实验结果发生影响和起作用的自变量称为因素。如果分析一个因素对于试验结果的影响和作用,就称为单因素方差分析。,(二)方差分析步骤,方差分析一方面确定因素的不同水平下均值之间的方差,作为所有试验数据所组成的全部总体方差的一个估计值;另一方面,再考虑同一水平下不同试验数据对于这一水平的均值的方差。由此,计算出全部数据的总体方差的第二个估计值;最后,比较上述两个估计值。如果这两个方差的估计值比较接近就说明因素的差异并不大,则接受零假设;否则接受备择假设。根据上述思路可以得到方差分析的方法和步骤。,1.提出假设,H0:1=2=k,即因素的不同水平对试验结果无显著影响。,H1:不是所有的i都相等(i=1,2,k),即因素的不同水平对试验结果有显著影响。,2.方差分解,下面先定义总离差平方和为各样本观察值与总均值的离差平方和。记,将总离差平方和分解为两部分:,N=nk为样本观察值总数,记,表示同一样本组内,由于随机因素影响所产生的离差平方和,简称组内平方和。,记,表示不同的样本组之间,由于变异因素的不同水平影响所产生的离差平方和,简称为组间平方和。,对应于SST,SSR和SSE的自由度分别为n-1,k-1,n-k。,由此可以得到:,SST=SSR+SSE,当原假设H0:1=2=k成立时,E(MSE)=E(MSR)=2。此时MSR较小,F值也较小。反之H0不成立时,MSR较大,F值也较大。对于给定的显著性水平查F分布表得到F1-(k-1,n-k)。如果FF1-(k-1,n-k),则原假设不成立,即k个组的总体均值之间有显著的差异,就拒绝H0。若FF1-(k-1,n-k),则原假设成立,即k个组的总体均值之间没有显著的差异,就接受H0。,3.F检验,将SSR和SSE分别除以自由度,即得各自的均方差:组间均方差MSR=SSR/(k-1)组内均方差MSE=SSE/(n-k)检验统计量,由于方差分析表(见下表)概括了方差分析的统计量之间的关系,在进行方差分析时就可以直接按照方差分析表来逐行、逐列地计算出有关的统计量,最后得到检验量F的值,并把这一F值与查表所得到的一定显著性水平下的F检验的临界值进行比较,然后作出接受或拒绝原假设的结论。,4.方差分析表,上述方差分析的方法可以用一张标准形式的表格来实现,称为方差分析表。方差分析表分为五列:第一列表示方差的来源;第二列表示方差的离差的平方和;第三列表示自由度;第四列表示均方差;第五列表示统计检验量F。表格又分为三行:第一行是组间的方差SSR和均方差MSR,表示因素的不同水平的影响所产生的方差,其值作为计算统计检验量F时的分子;第二行是组内方差SSE和均方差MSE,表示随机误差所引起的方差,其值作为计算统计检验量F的分母;第三行是检验行,表示总的方差SST。,单因素方差分析表,(三)单因素方差分析函数,p=anova1(X)p=anova1(Y,group)p=anova1(Y,group,displayopt)p,table=anova1(Y,group,displayopt)p,table,stats=anova1(Y,group,displayopt),单因素方差分析是比较两组和多组样本的均值,假设各组变量之间相互独立,方差相等,且服从正态分布。原假设是各组均值全部相等。,调用方式,输入参数,X样本观察值,要求各列均为彼此独立的样本Y观察值向量group组别,Y中每个元素所属的类别displayopt取值为“off”与“on”,分别表示掩藏与显示方差分析表图和盒图。盒图上下线为25%和75%分位数,中间线为中位数。,输出参数,p各列均值相等的概率table方差分析表stats统计量,例5恒瑞医药(600276)和ST达声(000007)的股价如下表所列。,恒瑞医药和ST达声价格收益表,group=stds,stds,stds,stds,stds,stds,stds,stds,stds,stds,stds,hryy,hryy,hryy,hryy,hryy,hryy,hryy,hryy,hryy,hryy,hryy,下面检验二者的收益率是否相等,rate=-0.030960.037344-0.008-0.02016-0.00823-0.00415.0-0.01250.0210970.0247930.0040320.005762.-0.015150.007730.00220200.0085630.06582.-0.002960.0004240.0096120,p,table,stat=anova1(rate,group,on)p=0.2412table=SourceSSdfMSFProbFGroups8.7401e-00418.7401e-0041.49760.2412Error0.0082145.8360e-004Total0.009015stat=gnames:2x1celln:115source:anova1means:3.4636e-0040.0163df:14s:0.0242,从结果可知p=0.24120.05,所以不能拒绝原假设,可以认为二者在此期间的收益率相等。其原因可能是以日收益率为样本,间隔时间太短,不足以反映股票之间的差别。,ST达声和恒瑞医药方差分析表如右上图所示,从图中可以看出方差分析表。第一列显示数据源(source)。第二列显示各类数据的平方和(SS)。第三列显示各类数据相应的自由度(df)。第四列显示均方差MS。第五列显示Friendman检验的F统计量(F)。第六列显示F统计量对应的概率值。,ST达声和恒瑞医药收益率盒图如右下图所示,(四)双因素方差分析,设因素A有a个水平,因素B有b个水平,试验的重复次数记作n。记Xijk为在因素A的第i个水平、因素B的第j个水平下进行第k次试验时的观察值(i=1,2,a;j=1,2,b;k=1,2,n)。记,前面所研究的是试验结果仅受一个因素影响的情形。要求检验的是当因素取两个不同水平时对结果所产生的影响是否显著。但在实践中,某种试验结果往往受到两个或两个以上因素的影响。双因素方差分析的基本思想与单因素方差分析基本相同。首先分别计算出总变差、各个因素的变差以及随机误差的变差;其次根据各变差相应的自由度求出均方差;最后计算出F值并作F检验。,为在因素A的第i个水平、因素B的第j个水平下进行各次重复试验的所有观察值的总和。,记,记,(i=1,2,a;j=1,2,b),为在因素A的第i个水平、因素B的第j个水平下进行各次重复试验的所有观察值的平均值。,式中:Nabn是所有观测值的总数,是所有观察值的平均值。,对于因素A:H0:因素A的各个水平的影响无显著差异。H1:因素A的各个水平的影响有显著差异。对于因素B:H0:因素B的各个水平的影响无显著差异。H1:因素B的各个水平的影响有显著差异。对于因素AB的交互作用:H0:因素AB的各个水平的影响无显著差异。H1:因素AB的各个水平的影响有显著差异。,利用上面所引入的符号,可以得到有交互作用的两因素方差分析的步骤如下:,建立假设,由于两因素有交互影响,因此除了分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论