《在金融中的应用.ppt》由会员分享,可在线阅读,更多相关《在金融中的应用.ppt(103页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在金融中的应用 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望张树德张树德著著参考文献:参考文献:MATLAB金融计算与金融数据处理金融计算与金融数据处理北京航空航天大学出版社,北京航空航天大学出版社,2008Matlab金融工具箱模块1.FinancialToolboxMatlab自带金融工具箱,具有下列功能:固定收益计算日期数据处理资产均值方差分析时间序列分析有价证卷的收益和价格统计分析定价和灵敏度分析年金和现金流计算抵押支持债卷FinancialDeriva
2、tivesToolbox是金融衍生产品工具箱,用于固定收益、金融衍生物以及风险投资评估分析,也可用于各种金融衍生物定价策略以及敏感度分析。2.FinancialDerivativesToolbox3.FinancialTimeSeriesToolboxFinancialTimeSeriesToolbox用于分析金融市场的时间序列数据。金融数据是时间序列数据,例如股票价格或每天的利息波动,可以用该工具箱进行更加直观的数据管理。该工具箱支持下列功能:技术分析函数分析投资。可视化金融时间序列的对象;提供两种创建金融时间序列的对象(用构造器和转换文本文件);FixedIncomeToolbox扩展了M
3、atlab在金融财经方面的应用,可以用固定收益模型进行计算,例如定价、收益和现金流动等有价证券的固定收益计算。支持的固定收益类型包括有价证券抵押回报、社会债卷和保证金等。该工具箱还能够处理相应金融衍生物的计算,支持抵押回收有价证券、国债和可转换债卷等的计算。GarchToolbox提供了一个集成计算环境,允许对单变量金融时序数据的易变性进行建模。GarchToolbox使用一个广义ARMAX/GARCH复合模型对带有条件异方差的金融时序数据进行仿真、预测和参数识别。GarchToolbox提供了基本工具为单变量广义自回归条件异方差GARCH(GeneralizedAutoRegressiveC
4、onditionalHeteroskedasticity)易变性进行建模。GarchToolbox采用单变量GARCH模型对金融市场中的变化性进行分析。4.FixedIncomeToolbox5.GarchToolbox上述工具箱基本上囊括了通常的金融计算,适用于金融学术研究,特别适合金融实务工作者进行金融计算。FinancialToolbox提供了一个基于Matlab的财务分析支撑环境,可以完成许多种财务分析统计任务;从简单计算到全面的分布式应用,财务工具箱都能够用来进行证卷定价、资产组合收益分析、偏差分析和优化业务量等工作。金金融融数数据据统统计计 本讲主要介绍了统计学的基本原理和基本统计
5、量。要求读者掌握均匀分布、正态分布随机数生成办法,学会常用的统计绘图命令,掌握回归的方法,学会运用主成份、因子分析金融问题。一、随机模拟基本原理一、随机模拟基本原理1977年,菲利浦.伯耶勒(PhelimBoyle)提出了模拟模拟方法求解金融资产定价问题方法求解金融资产定价问题。其想法是假设资产价格分布是随机波动,如果知道了这个波动过程,就可以模拟不同的路径;每做完一次模拟,就产生一个最终资产价值,在进行若干次这样的过程,那么所得到的结果就是一个最终资产价值分布,从这个分布中可以得到期望的资产价格。(一)(一)随机数生成函数随机数生成函数在Matlab中unidrnd函数可以生成1N的均匀分布
6、随机数。其调用方式为: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表示随机数的
7、维数下面介绍两种方法生成12之间随机矩阵K,K为5行6列矩阵。方法方法1方法方法2unifrnd(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.7176unifrnd(1,2,5,6)ans=1.69271.15361.55481.27311.90841.64081.0
8、8411.67561.12101.25481.23191.19091.45441.69921.45081.86561.23931.84391.44181.72751.71591.23241.04981.17391.35331.47841.89281.80491.07841.1708Rnormrnd(mu,sigma)正态分布的均值随机矩阵R的行数正态分布的方差3.生成正态分布的随机数生成正态分布的随机数Rnormrnd(mu,sigma,m)Rnormrnd(mu,sigma,m,n)随机矩阵R的列数调用方式为:normrnd(0,1)ans=-0.4326如:如:生成均值为0,方差为1正态分
9、布的随机数,可用命令下面用两种方法生成均值为0,方差为1的正态分布矩阵,矩阵为5行6列。方法方法1方法方法2normrnd(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.3899normrnd(0,1,5,6)ans=0.08800.7812-2
10、.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.12864.特定分布随机数发生器特定分布随机数发生器在Matlab中有统一格式随机数发生器,函数名称为random,可以生成许多服从不同分布的随机数。调用方式y=random(name,A1,A2,A3,m,n)输出参数name说明随机分布
11、的类型,具体如下表所列。类类别别贝贝塔塔二项分布二项分布卡卡方方指数分布指数分布F分布分布伽伽码码对数正态对数正态分布BetabinomialChisquareExponentialFGammaLognormal简写betabinochi2expfgamlogn类类别别均匀分布均匀分布泊松分布泊松分布T分分布布正态分布正态分布非中心非中心F分布分布非中心非中心T分布分布分布UniformPoissonTNormalNoncentralFNoncentralT简写unifpoisstnormncfnct特定分布的参数表特定分布的参数表a=random(Normal,0,1,3,2)a=0.656
12、5-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);%生
13、成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.8541F(x,y)P(X x,Y y)如果计算分布函
14、数,则X、Y为二元随机正态分布,分布函数F(x,y)的定义如下:调用方式为:p=mvncdf(X,mu,SIGMA)下面举一个例子。可以看出:对于随机变量X,Y,有P(X2,Y1)=0.8541也即X2且Ya=12;34;a=1234下面是一个例子。mean(a)ans=23mean(a,2)ans=1.50003.5000(二)(二)剔除异常值后的平均值剔除异常值后的平均值X样本观察矩阵。percent剔除比率,例如percent10表示同时剔除最大的5%和最小的5观察值。dimdim1(默认)表示对每列求平均值,dim2表示对每行求平均值。有时观察数据中有异常大或异常小的值,这些异常值会对
15、平均值产生影响,需要去掉异常值。例如在体操比赛中,去掉一个最高分和最低分,然后计算运动员的最后得分。在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,这时
16、需要调用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计算
17、大于p值的数dim同上下面是一个例子(六)计算样本极差(六)计算样本极差r=range(q)r=range(q,dim)极差就是样本极大值与极小值的差,反映样本的离散程度。调用方式x=rand(1,20);range(x)ans=0.8404下面是一个例子(七)计算偏度与峰度(七)计算偏度与峰度方差作为风险的度量指标并不是完整的。比如讲,两种资产收益分布的均值和方差都是相同的,但是一种资产收益是左偏的,另一种是右偏的。对于风险而言,相对于大概率和小损失人们更加厌恶小概率大损失的情况,后一种情况给人们带来的痛苦远大于第一情况。从这个意义上讲,收益分布左偏的资产的风险水平要小于右偏的资产收益分布左
18、偏的资产的风险水平要小于右偏的资产。此时,方差作为风险的度量指标就不是完全的,还要考虑峰度、偏度等指标。偏度和峰度是两个高阶的统计量。计算偏度的目的在计算偏度的目的在于考察组合收益率水平是否是对称分布于考察组合收益率水平是否是对称分布,也就是组合产生亏损与获得盈利的概率如何;峰度是考察组合的收益率情峰度是考察组合的收益率情况是否接近正态分布况是否接近正态分布,如果组合的收益率存在尖峰厚尾的分布特征,则说明组合产生亏损和盈利的概率偏大,也就是在一定程度上认为组合收益率出现极端性的可能性偏大,这种组合的收益率稳定性是比较差的。正态分布的峰度等于3,大于3表示尖峰,小于3表示分布比较均匀。股票市场收
19、益率的时间序列大都为尖峰肥尾。偏度的计算公式为式中:,分别为样本x的均值与方差。如果skewness0,则表示分布形态与正态分布偏度相同;如果skewness0,则表示正偏差数值较大,长尾巴拖在右边;如果skeqnessx=rand(1,20);skewness(x)ans=-0.04871.计算偏度计算偏度调用方式Y=skewness(A)Y=skewness(A,flag)输入参数A样本值flag偏度的计算方式,0(默认)为无偏估计,1为有偏估计下面是一个例子。k=kurtosis(X)k=kurtosis(X,flag)k=kurtosis(X,flag,dim)2.计算峰度计算峰度调用
20、方式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
21、(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.744
22、60.83920.37050.97080.64350.26790.62880.5751m=moment(X,3)m=-0.01130.00140.0032-0.0058-0.0023下面计算样本的3阶矩。(十)计算协方差和相关系数(十)计算协方差和相关系数协方差是一个用于衡量投资组合任意两个资产相关性的统计指标。当协方差为正值时,表示两种资产的收益率呈同方向变动;协方差为负值时,表示两种资产的收益率呈相反方向变化;协方差等于0时,表示两种资产不存在相关性。相关系数总是在-11之间的范围内变动,-1表示完全负相关(反向),1表示完全正相关(同向),0则表示不相关。Matlab计算协方差、相关系数
23、的函数分别是cov和corrcoef。1.协方差协方差调用方式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.0000X观察值矩阵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相关
24、系数矩阵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=4142
25、43142434三、三、统统计计绘绘图图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
26、,20)x=cumsum(x)plot(x,+)lsline最小二乘拟合图最小二乘拟合图(三)正态分布概率图(三)正态分布概率图有时需要判断样本数据是否服从正态分布,normplot函数用图的形式给出直观的判断。如果数据点越靠近直线则分如果数据点越靠近直线则分布越近似正态分布,越远则越偏离正态分布布越近似正态分布,越远则越偏离正态分布。x=normrnd(0,1,20,1)plot(x,+)normplot(x)正态分布拟合图正态分布拟合图从图中可以看出,数据点基本上是直线,所以符合正态分布。如果判断数据是否服从Weibull分布则可以对生成的数据用wblplot函数进行判断。下图给出了Wei
27、bull分布拟合的结果。从图中看出对于数据较小、较大的点偏离较大,数据不服从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
28、)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)带有密度函数的频率直方图如
29、右图所示。(六)盒(六)盒图图X样本观察值G各组的名称Param1参数1的名称val1参数1的值在Matlab中绘制样本数据的盒图函数是boxplot。调用方式boxplot(X)boxplot(X,G)boxplot(X,Param1,val1,Param2,val2,)输入参数各参数的名称和内容如下表所列参参数数名名称称参参数数值值notchon生成有缺口的盒图,off生成矩形盒图symbol线条类型,默认值为r+orientationvertical(默认值)为垂直型盒图,horizontal为水平型盒图whisker盒图须线的长度,默认值1.5四分位间距labels盒图行列的名称标签c
30、olors线条颜色widths盒图的宽度,默认值0.5positions盒图的位置,默认值为1:ngrouporder组的次序x1=normrnd(5,1,100,1);x2=normrnd(6,1,100,1);boxplot(x1,x2,notch,on)l盒子的上下两条线分别为样本的25和75分位数,盒子的上下底之间的距离为四分位的间距。l盒子的中间线为样本中值,如果样本中值不在盒子的中间,表示存在一定的偏度。盒子的上方和下方有两条虚线,显示了样本的范围,野值(异常值)位于超过盒子顶端、底端1.5倍的四分位数。l含有缺口的盒图中齿形缺口表示样本中值的置信区间。图中的内容说明如下:正态分布
31、盒图如右图所示。四、多元线性回归分析四、多元线性回归分析在金融上常常需要对金融、经济数据进行回归,其中最简单的是多元线性回归。(一)多元线性回归(一)多元线性回归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
32、自变量观察值,注意如果模型中有常数项,则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.
33、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.0000b=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的系数置
34、信区间为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是
35、资产的数目Design自变量单元变量矩阵,如果Y只有一个资产时,Design是一个矩阵,如果Y中的资产个数大于一个时,Design是一个单元向量,每个元素都是一个矩阵。Y的k列和Design第k个元素中的矩阵进行回归MaxIterationsTolParamTol0bjCovaro输出参数输入参数(三)估计多元正态分布每个资产的标准差(三)估计多元正态分布每个资产的标准差Data观察值矩阵,Ynk中n样本的个数,k是资产的数目Design自变量单元变量矩阵,如果Y只有一个资产时,Design是一个单元向量,如果Y含有多于一个资产时,Design是一个单元变量矩阵Covariance回归时的残值
36、调用方式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表示控制系数,可以根据需要进行选择
37、。输出参数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五、主成分分析五、主成分分析主成分分析是在各个变量之间相关关系研究的基础上,用较少的新变量代替原来较多的变量,而且使这些较少的新变量尽可能多地保
38、留原来较多的变量所反映的信息。(一)主成分分析基本原理(一)主成分分析基本原理首先对样本进行标准化处理,为简单起见,标准化后的样本仍记为X1,X2,X3,Xp。设样本为X1,X2,X3,Xp,其对应的样本均值为对应的标准差为S1,S2,S3,Sp。设F1,F2,F3,Fp是主成分,也即是X1,X2,X3,Xp的线性表示,同时满足下面的条件:主成分是原样本的正交变换。各主成分之间互不相关。主成分的总方差不变。主成分按方差从大到小排序。主成分具有如下性质:主成分具有如下性质:这一性质说明,主成分是原变量的线性组合,是对原变量信息的一种改良;主成分不增加总信息量,也不减少总信息量。设为主成分的特征值
39、,前k个方差累积贡献率为一般当累积贡献率大于85时不再增加新的主成分。保留多少个主成分取决于保留部分的累积方差在总方差中占的百分比(即累计贡献率),它标志着前几个主成分概括的信息的多寡。在实践中,粗略规定一个百分比就可以决定保留几个主成分,如果多留一个主成分,但累积方差增加无几,便不再多留。(二)主成分分析函数(二)主成分分析函数COEFF主成分系数SCORE新坐标系latentX的协方差矩阵的特征值tsquareHotelling统计量的值在Matlab中提供了两个主成分分析函数princomp和pcacov。COEFF,SCORE=princomp(X)COEFF,SCORE,latent
40、=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个因素的观察值保存在ingredi
41、ents中。由于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.73
42、090.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.34
43、05-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.23
44、72)=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.00
45、000.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.7307corr(heat,ingredients(:,2)a
46、ns=0.8163corr(heat,ingredients(:,3)ans=-0.5347corr(heat,ingredients(:,4)ans=-0.8213相关系数表明前两个自变量和因变量之间是正相关,后两个自变量和因变量之间负相关。式(1)和实际结果相印证。从式(2)可以看出自变量和因变量之间都是正相关,显然和实际结果不相印证。自变量和因变量之间的函数关系如下:c0=regress(heat,ingredients)c0=2.19301.15330.75850.4863如果不用主成分回归,而是直接对自变量和因变量进行回归。六、因子分析六、因子分析因子分析法(factoranalys
47、is)是一种用来分析隐藏在表用来分析隐藏在表象背后的因子作用的一类统计模型和方法象背后的因子作用的一类统计模型和方法,它起源于心理度量学,最初是研究如何使用少数几个变量来解释众多原始变量,同时又尽量避免信息丢失的多元统计分析方法。在实际问题的分析过程中,常用因子分析去除重叠信息,将原始的众多指标综合成较少的几个因子变量来分析。1.因子分析法相关概念因子分析法相关概念设样本为,其对应的样本均值为,对应的标准差为。因子分析的核心问题核心问题有两个,一是确定因子的个数,二是对因子变量进行命名。首先对样本进行标准化处理,为简单起见,标准化后的样本仍记为。因子分析的数学模型如下:X=fX+s式中:X是经
48、过正交处理的样本值,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公共因素的个数输出参
49、数下面用一个例子说明例例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家属于同一类公司,说明不同行业间的股票收益率存在
50、不同。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七、方差分析七、方差分析方差分析主要用来检验