版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八讲在金融工程中的应用第一页,共一百零三页,编辑于2023年,星期一张树德著参考文献:MATLAB金融计算与金融数据处理北京航空航天大学出版社,2008第二页,共一百零三页,编辑于2023年,星期一Matlab金融工具箱模块1.FinancialToolboxMatlab自带金融工具箱,具有下列功能:固定收益计算日期数据处理资产均值-方差分析时间序列分析有价证卷的收益和价格统计分析定价和灵敏度分析年金和现金流计算抵押支持债卷第三页,共一百零三页,编辑于2023年,星期一
FinancialDerivativesToolbox是金融衍生产品工具箱,用于固定收益、金融衍生物以及风险投资评估分析,也可用于各种金融衍生物定价策略以及敏感度分析。2.FinancialDerivativesToolbox3.FinancialTimeSeriesToolboxFinancialTimeSeriesToolbox用于分析金融市场的时间序列数据。金融数据是时间序列数据,例如股票价格或每天的利息波动,可以用该工具箱进行更加直观的数据管理。该工具箱支持下列功能:技术分析函数分析投资。可视化金融时间序列的对象;提供两种创建金融时间序列的对象(用构造器和转换文本文件);第四页,共一百零三页,编辑于2023年,星期一
Fixed-IncomeToolbox扩展了Matlab在金融财经方面的应用,可以用固定收益模型进行计算,例如定价、收益和现金流动等有价证券的固定收益计算。支持的固定收益类型包括有价证券抵押回报、社会债卷和保证金等。该工具箱还能够处理相应金融衍生物的计算,支持抵押回收有价证券、国债和可转换债卷等的计算。GarchToolbox提供了一个集成计算环境,允许对单变量金融时序数据的易变性进行建模。GarchToolbox使用一个广义ARMAX/GARCH复合模型对带有条件异方差的金融时序数据进行仿真、预测和参数识别。GarchToolbox提供了基本工具为单变量广义自回归条件异方差GARCH(GeneralizedAutoRegressiveConditionalHeteroskedasticity)易变性进行建模。GarchToolbox采用单变量GARCH模型对金融市场中的变化性进行分析。4.Fixed-IncomeToolbox5.GarchToolbox第五页,共一百零三页,编辑于2023年,星期一上述工具箱基本上囊括了通常的金融计算,适用于金融学术研究,特别适合金融实务工作者进行金融计算。FinancialToolbox提供了一个基于Matlab的财务分析支撑环境,可以完成许多种财务分析统计任务;从简单计算到全面的分布式应用,财务工具箱都能够用来进行证卷定价、资产组合收益分析、偏差分析和优化业务量等工作。第六页,共一百零三页,编辑于2023年,星期一金融数据统计本讲主要介绍了统计学的基本原理和基本统计量。要求读者掌握均匀分布、正态分布随机数生成办法,学会常用的统计绘图命令,掌握回归的方法,学会运用主成份、因子分析金融问题。一、随机模拟基本原理1977年,菲利浦.伯耶勒(PhelimBoyle)提出了模拟方法求解金融资产定价问题。其想法是假设资产价格分布是随机波动,如果知道了这个波动过程,就可以模拟不同的路径;每做完一次模拟,就产生一个最终资产价值,在进行若干次这样的过程,那么所得到的结果就是一个最终资产价值分布,从这个分布中可以得到期望的资产价格。第七页,共一百零三页,编辑于2023年,星期一(一)随机数生成函数在Matlab中unidrnd函数可以生成1~N的均匀分布随机数。其调用方式为:R=unidrnd(N)随机数矩阵确定输出随机矩阵R的行数生成在1~N之间的一个随机数1.均匀分布随机数生成函数R=unidrnd(N,m)R=unidrnd(N,m,n)确定输出随机矩阵R的列数输出方阵第八页,共一百零三页,编辑于2023年,星期一>>unifrnd(0,1)ans=0.4565如果需要生成服从连续均匀分布的随机数,则可以调用
unifrnd函数,其调用方式为:R=unifrnd(A,B)A,B是随机数的下界与上界如:生成一个0~1之间随机数:2.生成服从连续均匀分布的随机数R=unifrnd(A,B,m)R=unifrnd(A,B,m,n)m,n表示随机数的维数第九页,共一百零三页,编辑于2023年,星期一下面介绍两种方法生成1~2之间随机矩阵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第十页,共一百零三页,编辑于2023年,星期一R=normrnd(mu,sigma)正态分布的均值随机矩阵R的行数正态分布的方差3.生成正态分布的随机数R=normrnd(mu,sigma,m)R=normrnd(mu,sigma,m,n)随机矩阵R的列数调用方式为:>>normrnd(0,1)ans=-0.4326如:生成均值为0,方差为1正态分布的随机数,可用命令第十一页,共一百零三页,编辑于2023年,星期一下面用两种方法生成均值为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第十二页,共一百零三页,编辑于2023年,星期一4.特定分布随机数发生器在Matlab中有统一格式随机数发生器,函数名称为random,可以生成许多服从不同分布的随机数。调用方式y=random('name',A1,A2,A3,m,n)输出参数name说明随机分布的类型,具体如下表所列。第十三页,共一百零三页,编辑于2023年,星期一类别贝塔二项分布卡方指数分布F分布伽码对数正态分布BetabinomialChisquareExponentialFGammaLognormal简写betabinochi2expfgamlogn类别均匀分布泊松分布T分布正态分布非中心F分布非中心T分布分布UniformPoissonTNormalNoncentralFNoncentralT简写unifpoisstnormncfnct
特定分布的参数表>>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。第十四页,共一百零三页,编辑于2023年,星期一5.多元正态分布的随机数多元正态分布的随机数可以用如下形式表示:式中:μ是均值向量,∑是协方差矩阵。
Xi~N(μ,∑)mu均值sigma协方差cases样本个数在Matlab中可使用mvnrnd函数生成多元正态分布函数。调用方式R=mvnrnd(mu,sigma)R=mvnrnd(mu,sigma,cases)输入参数第十五页,共一百零三页,编辑于2023年,星期一>>mu=[23];%均值>>SIGMA=[11.5;1.53];%协方差矩阵>>r=mvnrnd(mu,SIGMA,100);%生成100个随机样本>>plot(r(:,1),r(:,2),'+')下面生成一个多元正态分布的例子。样本的散点图如右所示:二元正态分布的散点图第十六页,共一百零三页,编辑于2023年,星期一(二)多元正态分布密度函数>>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)下面是一个例子。第十七页,共一百零三页,编辑于2023年,星期一>>mu=[1-1];>>Sigma=[0.90.4;0.40.3];>>X=[21];>>f=mvncdf(X,mu,Sigma)f=0.8541
F(x,y)=P(X<x,Y<y)如果计算分布函数,则X、Y为二元随机正态分布,分布函数F(x,y)的定义如下:调用方式为:p=mvncdf(X,mu,SIGMA)下面举一个例子。可以看出:对于随机变量X,Y,有P(X<2,Y<1)=0.8541也即X<2且Y<1的概率为0.8541。第十八页,共一百零三页,编辑于2023年,星期一二、随机变量的数字特征A如果A为向量,则返回值为该向量的平均值;如果A是矩阵,则返回值是每列的平均值。dimdim=1(默认)表示每列平均,dim=2表示每行平均。(一)计算平均值调用方式M=mean(A)mean(A,dim)输入参数第十九页,共一百零三页,编辑于2023年,星期一在Matlab中计算几何平均数的函数为geomean;计算调和平均数的函数是harmmean函数,调和平均数的计算公式是注意样本数据不能为0。>>a=[12;34];a=1234下面是一个例子。>>mean(a)ans=23>>mean(a,2)ans=1.50003.5000第二十页,共一百零三页,编辑于2023年,星期一(二)剔除异常值后的平均值X样本观察矩阵。percent剔除比率,例如percent=10表示同时剔除最大的5%和最小的5%观察值。dimdim=1(默认)表示对每列求平均值,dim=2表示对每行求平均值。有时观察数据中有异常大或异常小的值,这些异常值会对平均值产生影响,需要去掉异常值。例如在体操比赛中,去掉一个最高分和最低分,然后计算运动员的最后得分。在Matlab中也有剔除异常值后的平均数。调用方式M=trimmean(X,percent)M=trimmean(X,percent,dim)输入参数第二十一页,共一百零三页,编辑于2023年,星期一>>x=rand(1,20)>>trimmean(x,10)ans=0.5145(三)计算中位数A样本观测矩阵dimdim=1(默认)表示对每列求中位数,dim=2表示对每行求中位数剔除10%的异常值之后的平均数为0.5145。调用方式M=median(A)M=median(A,dim)输入参数有时数据中出现NaN,在计算中位数时需要忽略NaN,这时需要调用nanmedian函数。第二十二页,共一百零三页,编辑于2023年,星期一(四)计算方差与标准差A样本值flag0(默认值)表示方差计算公式为
1表示方差计算公式为一般说来,资产组合的风险越大,方差越大,波动性越大。方差由于其简单、直观以及良好的统计性质使其成为风险的代名词。在Matlab中计算方差、标准差的函数分别是Var、Std。方差调用方式Var(A)Var(A,flag)标准差调用方式Std(A)Std(A,flag)输入参数第二十三页,共一百零三页,编辑于2023年,星期一(五)计算样本的百分位数>>x=rand(1,20);>>prctile(x,20)ans=0.1688调用方式Y=prctile(X,p,dim)输入参数X观察值p计算大于p%值的数dim同上下面是一个例子第二十四页,共一百零三页,编辑于2023年,星期一(六)计算样本极差r=range(q)r=range(q,dim)极差就是样本极大值与极小值的差,反映样本的离散程度。调用方式>>x=rand(1,20);>>range(x)ans=0.8404下面是一个例子第二十五页,共一百零三页,编辑于2023年,星期一(七)计算偏度与峰度方差作为风险的度量指标并不是完整的。比如讲,两种资产收益分布的均值和方差都是相同的,但是一种资产收益是左偏的,另一种是右偏的。对于风险而言,相对于大概率和小损失人们更加厌恶小概率大损失的情况,后一种情况给人们带来的痛苦远大于第一情况。从这个意义上讲,收益分布左偏的资产的风险水平要小于右偏的资产。此时,方差作为风险的度量指标就不是完全的,还要考虑峰度、偏度等指标。偏度和峰度是两个高阶的统计量。计算偏度的目的在于考察组合收益率水平是否是对称分布,也就是组合产生亏损与获得盈利的概率如何;峰度是考察组合的收益率情况是否接近正态分布,如果组合的收益率存在尖峰厚尾的分布特征,则说明组合产生亏损和盈利的概率偏大,也就是在一定程度上认为组合收益率出现极端性的可能性偏大,这种组合的收益率稳定性是比较差的。第二十六页,共一百零三页,编辑于2023年,星期一正态分布的峰度等于3,大于3表示尖峰,小于3表示分布比较均匀。股票市场收益率的时间序列大都为尖峰肥尾。偏度的计算公式为式中:μ,σ分别为样本x的均值与方差。如果skewness=0,则表示分布形态与正态分布偏度相同;如果skewness>0,则表示正偏差数值较大,长尾巴拖在右边;如果skeqness<0,则表示负偏差数值较大,长尾巴拖在左边。峰度的计算公式为第二十七页,共一百零三页,编辑于2023年,星期一>>x=rand(1,20);>>skewness(x)ans=-0.04871.计算偏度调用方式Y=skewness(A)Y=skewness(A,flag)输入参数A样本值flag偏度的计算方式,0(默认)为无偏估计,1为有偏估计下面是一个例子。第二十八页,共一百零三页,编辑于2023年,星期一k=kurtosis(X)k=kurtosis(X,flag)k=kurtosis(X,flag,dim)2.计算峰度调用方式X样本观察矩阵flag峰度的计算方式,0(默认)为无偏估计,1为有偏估计dimdim=1(默认)表示对每列求平均,dim=2表示对每行求平均输入参数>>x=rand(1,20)>>kurtosis(x)ans=1.4407下面是一个例子。第二十九页,共一百零三页,编辑于2023年,星期一(八)计算绝对离差绝对离差是以偏差绝对数来衡量决策方案的风险。在期望值相同的情况下,绝对离差越大,风险越大;绝对离差越小,风险越小。调用方式Y=mad(X)Y=mad(X,n)输入参数X观察值n绝对偏差计算方式n=0(默认)计算公式为mean(abs(X-mean(X)))n=1计算公式为median(abs(X-median(X)))>>x=rand(1,20)>>mad(x)ans=0.1750下面是一个绝对离差的例子。第三十页,共一百零三页,编辑于2023年,星期一(九)计算中心矩数理统计中经常用到中心矩的概念,k阶中心矩的计算公式为可以看出1阶中心矩为0,如果观察值是矩阵则以每列为样本计算中心矩。X观察样本值order中心矩的阶数,必须为正整数调用方式M=moment(X,order)输入参数第三十一页,共一百零三页,编辑于2023年,星期一>>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阶矩。第三十二页,共一百零三页,编辑于2023年,星期一(十)计算协方差和相关系数协方差是一个用于衡量投资组合任意两个资产相关性的统计指标。当协方差为正值时,表示两种资产的收益率呈同方向变动;协方差为负值时,表示两种资产的收益率呈相反方向变化;协方差等于0时,表示两种资产不存在相关性。相关系数总是在-1~1之间的范围内变动,-1表示完全负相关(反向),1表示完全正相关(同向),0则表示不相关。Matlab计算协方差、相关系数的函数分别是cov和corrcoef。第三十三页,共一百零三页,编辑于2023年,星期一协方差调用方式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第三十四页,共一百零三页,编辑于2023年,星期一X观察值矩阵Y观察向量param1参数1,参数的值如下:alpha表示置信度,在0~1之间val1参数1的值param2参数2val2参数2的值2.相关系数调用方式R=corrcoef(X)R=corrcoef(x,y)[R,P]=corrcoef(X,'param1',val1,'param2',val2,…)输入参数R相关系数矩阵P每个相关系数的概率矩阵输出参数第三十五页,共一百零三页,编辑于2023年,星期一>>x=rand(30,4);>>x(:,4)=sum(x,2);>>[r,p]=corrcoef(x)>>[i,j]=find(p<0.05);>>[i,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第三十六页,共一百零三页,编辑于2023年,星期一三、统计绘图>>x=[1235733.4]x=1.00002.00003.00005.00007.00003.00003.4000>>tabulate(x)ValueCountPercent1114.29%2114.29%3228.57%3.4114.29%5114.29%7114.29%(一)样本频率分布图样本频率分布图函数是tabulate。第三十七页,共一百零三页,编辑于2023年,星期一下面调用cdfplot函数绘出x的分布图。>>cdfplot(x)向量x的分布图第三十八页,共一百零三页,编辑于2023年,星期一(二)最小二乘拟合图在Matlab中绘制最小二乘拟合图的命令是lsline,下面是一个例子。>>x=rand(1,20)>>x=cumsum(x)>>plot(x,'+')>>lsline最小二乘拟合图第三十九页,共一百零三页,编辑于2023年,星期一(三)正态分布概率图
有时需要判断样本数据是否服从正态分布,normplot函数用图的形式给出直观的判断。如果数据点越靠近直线则分布越近似正态分布,越远则越偏离正态分布。>>x=normrnd(0,1,20,1)>>plot(x,'+')>>normplot(x)正态分布拟合图第四十页,共一百零三页,编辑于2023年,星期一从图中可以看出,数据点基本上是直线,所以符合正态分布。如果判断数据是否服从Weibull分布则可以对生成的数据用wblplot函数进行判断。下图给出了Weibull分布拟合的结果。从图中看出对于数据较小、较大的点偏离较大,数据不服从Weibull分布。Weibull分布拟合图第四十一页,共一百零三页,编辑于2023年,星期一(四)样本密度图>>randn('seed',0);>>x=randn(1,20);>>x=cumsum(x)>>capaplot(x,[0,10])在Matlab中绘出样本数据的密度图函数为capaplot。样本的密度示意图如右图所示。
样本的密度示意图第四十二页,共一百零三页,编辑于2023年,星期一(五)频率直方图Y观察值。如果Y是一个向量,则画出一个频率图;如果Y是一个m×p阶矩阵,则对Y每一列分别作频率图nbins频率图分成nbins等分的区间段,默认值为10。调用方式n=hist(Y)n=hist(Y,nbins)[n,xout]=hist(Y,nbins)输入参数n样本落在区间段的频率xout区间断的刻度输出参数第四十三页,共一百零三页,编辑于2023年,星期一下面是一个例子。>>randn('seed',0)>>x=randn(1,200);>>hist(x)频率直方图如右图所示第四十四页,共一百零三页,编辑于2023年,星期一>>hist(x,min(x):0.3:max(x));其中min(x):0.3:max(x)表示频率图X轴的刻度起点是x最小元素,终点是x中最大元素,刻度间隔0.3。规定刻度间隔的频率直方图如下图所示。第四十五页,共一百零三页,编辑于2023年,星期一如果在频率图的基础上加上正态分布拟合图,则可以用histfit函数。>>randn('seed',0)>>x=randn(1,20)>>histfit(x)带有密度函数的频率直方图如右图所示。第四十六页,共一百零三页,编辑于2023年,星期一(六)盒图X样本观察值G各组的名称Param1参数1的名称val1参数1的值在Matlab中绘制样本数据的盒图函数是boxplot。调用方式boxplot(X)boxplot(X,G)boxplot(X,'Param1',val1,'Param2',val2,…)输入参数第四十七页,共一百零三页,编辑于2023年,星期一各参数的名称和内容如下表所列参数名称参数值notch‘on’生成有缺口的盒图,‘off’生成矩形盒图symbol线条类型,默认值为‘r+’orientation‘vertical’(默认值)为垂直型盒图,‘horizontal’为水平型盒图whisker盒图须线的长度,默认值=1.5×四分位间距labels盒图行列的名称标签colors线条颜色widths盒图的宽度,默认值=0.5positions盒图的位置,默认值为1:ngrouporder组的次序第四十八页,共一百零三页,编辑于2023年,星期一>>x1=normrnd(5,1,100,1);>>x2=normrnd(6,1,100,1);>>boxplot([x1,x2],'notch','on')盒子的上下两条线分别为样本的25%和75%分位数,盒子的上下底之间的距离为四分位的间距。盒子的中间线为样本中值,如果样本中值不在盒子的中间,表示存在一定的偏度。盒子的上方和下方有两条虚线,显示了样本的范围,野值(异常值)位于超过盒子顶端、底端1.5倍的四分位数。含有缺口的盒图中齿形缺口表示样本中值的置信区间。图中的内容说明如下:正态分布盒图如右图所示。第四十九页,共一百零三页,编辑于2023年,星期一四、多元线性回归分析在金融上常常需要对金融、经济数据进行回归,其中最简单的是多元线性回归。(一)多元线性回归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是自变量回归矩阵,β是参数向量,ε是白噪声。β的最小二乘解是调用方式第五十页,共一百零三页,编辑于2023年,星期一X自变量观察值,注意如果模型中有常数项,则X的第一列所有元素为1。Y因变量观察值向量alpha参数的置信度输入参数例1首先按照下面模型生成一系列随机数,然后回归。bβ的估计值,注意b中已经包含了常数项bintβ的置信区间r残值rint残值的置信区间statsR2、F、概率p输出参数第五十一页,共一百零三页,编辑于2023年,星期一>>[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.0000b=0.13030.3953bint=0.01200.24870.37620.4144r=-0.03230.01650.0056-0.0294-0.00410.06220.0950-0.14800.0785-0.0440第五十二页,共一百零三页,编辑于2023年,星期一从b的估计值可以得知常数项和一次项的系数分别为0.1303,0.3953。在0.05置信水平下常数项系数估计区间为[0.01200.2487],X的系数置信区间为[0.37620.4144]。由于样本数量非常少,参数估计并不稳定。下图是残差及其置信区间图。>>rcoplot(r,rint)第五十三页,共一百零三页,编辑于2023年,星期一(二)多元正态回归
在Matlab中mvnrmle函数可以进行多元正态回归,假设Yk为随机变量,其分布如下:式中:N(g,g)为多元正态分布。调用方式[Parameters,Covariance,Resid,Info]=mvnrmle(Y,Design,MaxIterations,TolParam,Tol0bj,Covar0)第五十四页,共一百零三页,编辑于2023年,星期一Parameters参数Covariance协方差Resid残差Info估计过程的相关系数Y观察值矩阵,Yn×k中n是样本的个数,k是资产的数目Design自变量单元变量矩阵,如果Y只有一个资产时,Design是一个矩阵,如果Y中的资产个数大于一个时,Design是一个单元向量,每个元素都是一个矩阵。Y的k列和Design第k个元素中的矩阵进行回归MaxIterationsTolParamTol0bjCovaro输出参数输入参数第五十五页,共一百零三页,编辑于2023年,星期一(三)估计多元正态分布每个资产的标准差Data观察值矩阵,Yn×k中n样本的个数,k是资产的数目Design自变量单元变量矩阵,如果Y只有一个资产时,Design是一个单元向量,如果Y含有多于一个资产时,Design是一个单元变量矩阵Covariance回归时的残值调用方式[StdParameters,StdCovariance]=mvnrstd(Data,Design,Covariance)输入参数StdParameters每个资产的标准差StdCovariance协方差输出参数第五十六页,共一百零三页,编辑于2023年,星期一(四)岭回归线性回归中参数估计,如果观察值X存在自相关性,则XTX是奇异矩阵,估计值就会出现非常大的误差,这时矩阵XTX需要加上一个对角元素是常数k的单位阵,即。Matlab提供了岭回归ridge函数求解该问题。b模型估计参数调用方式b1=ridge(Y,X,k)b0=ridge(Y,X,k,0)输入参数Y因变量观察值X自变量观察值kk表示控制系数,可以根据需要进行选择。输出参数第五十七页,共一百零三页,编辑于2023年,星期一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文件中的数据进行岭回归。>>load
hald查看工作区中的变量。>>whoYourvariablesare:haldheatingredients第五十八页,共一百零三页,编辑于2023年,星期一五、主成分分析主成分分析是在各个变量之间相关关系研究的基础上,用较少的新变量代替原来较多的变量,而且使这些较少的新变量尽可能多地保留原来较多的变量所反映的信息。(一)主成分分析基本原理首先对样本进行标准化处理,为简单起见,标准化后的样本仍记为X1,X2,X3,…,Xp。设样本为X1,X2,X3,…,Xp,其对应的样本均值为对应的标准差为S1,S2,S3,…,Sp。第五十九页,共一百零三页,编辑于2023年,星期一设F1,F2,F3,…,Fp是主成分,也即是X1,X2,X3,…,Xp的线性表示,同时满足下面的条件:主成分是原样本的正交变换。各主成分之间互不相关。主成分的总方差不变。主成分按方差从大到小排序。主成分具有如下性质:这一性质说明,主成分是原变量的线性组合,是对原变量信息的一种改良;主成分不增加总信息量,也不减少总信息量。
第六十页,共一百零三页,编辑于2023年,星期一设为主成分的特征值,前k个方差累积贡献率为一般当累积贡献率大于85%时不再增加新的主成分。保留多少个主成分取决于保留部分的累积方差在总方差中占的百分比(即累计贡献率),它标志着前几个主成分概括的信息的多寡。在实践中,粗略规定一个百分比就可以决定保留几个主成分,如果多留一个主成分,但累积方差增加无几,便不再多留。第六十一页,共一百零三页,编辑于2023年,星期一(二)主成分分析函数COEFF主成分系数SCORE新坐标系latentX的协方差矩阵的特征值tsquareHotelling统计量的值在Matlab中提供了两个主成分分析函数princomp和pcacov。[COEFF,SCORE]=princomp(X)[COEFF,SCORE,latent]=princomp(X)[COEFF,SCORE,latent,tsquare]=princomp(X)输入参数X观察变量输出参数调用方式第六十二页,共一百零三页,编辑于2023年,星期一>>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自带的数据文件考察相关性第六十三页,共一百零三页,编辑于2023年,星期一发现自变量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第六十四页,共一百零三页,编辑于2023年,星期一主成分的方差贡献率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第六十五页,共一百零三页,编辑于2023年,星期一协方差的特征值latent=517.796967.496412.40540.2372tsquare=5.68033.07586.00022.61983.36810.56683.48183.97942.60867.48184.18302.23272.7216第六十六页,共一百零三页,编辑于2023年,星期一由此可以得到4个主成分如下:从特征值可以看出前面两个主成分可以很好的解释98%的方差:(517.7969+67.4964)/(517.7969+67.4964+12.4054+0.2372)=98%第六十七页,共一百零三页,编辑于2023年,星期一>>covx=cov(ingredients);>>[pc,latent,explain]=pcacov(covx)采用pcacov函数计算主成分的结果同princomp函数的结果是一样的。>>loadhald然后计算观察变量ingredients协方差。>>new=ingredients*pc在确定主成分后对主成分进行回归。将生成的4个主成分,保存在变量new中,变量new中的每列就是一个主成分。
第六十八页,共一百零三页,编辑于2023年,星期一>>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发现主成分之间是不相关的。
第三步:用前两个主成分进行回归。第六十九页,共一百零三页,编辑于2023年,星期一
>>2.1843*pc(:,1)+1.0894*pc(:,2)ans=0.85191.5039-0.8862-1.4783这样温度和主成分之间的关系如下:还原成线性回归形式:这样温度和自变量之间的关系如下:第七十页,共一百零三页,编辑于2023年,星期一第四步:验证主成分分析优点。下面计算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第七十一页,共一百零三页,编辑于2023年,星期一相关系数表明前两个自变量和因变量之间是正相关,后两个自变量和因变量之间负相关。式(1)和实际结果相印证。从式(2)可以看出自变量和因变量之间都是正相关,显然和实际结果不相印证。自变量和因变量之间的函数关系如下:>>c0=regress(heat,ingredients)c0=2.19301.15330.75850.4863如果不用主成分回归,而是直接对自变量和因变量进行回归。第七十二页,共一百零三页,编辑于2023年,星期一六、因子分析因子分析法(factoranalysis)是一种用来分析隐藏在表象背后的因子作用的一类统计模型和方法,它起源于心理度量学,最初是研究如何使用少数几个变量来解释众多原始变量,同时又尽量避免信息丢失的多元统计分析方法。在实际问题的分析过程中,常用因子分析去除重叠信息,将原始的众多指标综合成较少的几个因子变量来分析。1.因子分析法相关概念设样本为
,其对应的样本均值为
,对应的标准差为。第七十三页,共一百零三页,编辑于2023年,星期一因子分析的核心问题有两个,一是确定因子的个数,二是对因子变量进行命名。首先对样本进行标准化处理,为简单起见,标准化后的样本仍记为。因子分析的数学模型如下:X=fX+s式中:X是经过正交处理的样本值,f是负荷矩阵,表示公共因子部分,s是其他特殊因子。要求f,s之间不相关而且不可观察。第七十四页,共一百零三页,编辑于2023年,星期一lambda负荷矩阵估计值psi特殊因素矩阵估计值T因素负荷旋转矩阵stats假设检验FF是n×m维因子的分矩阵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公共因素的个数输出参数第七十五页,共一百零三页,编辑于2023年,星期一下面用一个例子说明例4
在Matlab中自带了10个公司100周的收益率数据,10家公司分成3个行业,4家属于科技公司,3家属于金融公司,另外3家属于零售类公司。一般来讲,同一行业内上市公司同质性强,走势也相同,不同行业内之间股票受不同风险因素影响,走势差别较大。下面验证该结论。>>loadstockreturns>>m=3;%考虑3个行业的因素>>[LoadingsPM,specificVarPM]=factoran(stocks,m,'rotate','promax')第七十六页,共一百零三页,编辑于2023年,星期一从上述结果可以明显看出第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第七十七页,共一百零三页,编辑于2023年,星期一七、方差分析方差分析主要用来检验两个以上样本的平均值差异的显著程度,由此判断样本究竟是否抽自具有同一均值的总体。(一)单因素方差分析一般地,假定所检验的结果受同一因素A的影响,可以取k个不同的水平1,2,3,…,k。对于因素的每一个水平i都进行n次试验,结果分别为,一般把这一组样本记作Xi。假定,即对于因素的每一个水平,所得到的结果都服从正态分布,且方差相等。在方差分析中,通常把对实验结果发生影响和起作用的自变量称为因素。如果分析一个因素对于试验结果的影响和作用,就称为单因素方差分析。第七十八页,共一百零三页,编辑于2023年,星期一(二)方差分析步骤方差分析一方面确定因素的不同水平下均值之间的方差,作为所有试验数据所组成的全部总体方差的一个估计值;另一方面,再考虑同一水平下不同试验数据对于这一水平的均值的方差。由此,计算出全部数据的总体方差的第二个估计值;最后,比较上述两个估计值。如果这两个方差的估计值比较接近就说明因素的差异并不大,则接受零假设;否则接受备择假设。根据上述思路可以得到方差分析的方法和步骤。1.提出假设H0:µ1=µ2=…=µk,即因素的不同水平对试验结果无显著影响。H1:不是所有的µi都相等(i=1,2,…,k),即因素的不同水平对试验结果有显著影响。第七十九页,共一百零三页,编辑于2023年,星期一2.方差分解下面先定义总离差平方和为各样本观察值与总均值的离差平方和。记将总离差平方和分解为两部分:N=nk为样本观察值总数第八十页,共一百零三页,编辑于2023年,星期一记表示同一样本组内,由于随机因素影响所产生的离差平方和,简称组内平方和。记表示不同的样本组之间,由于变异因素的不同水平影响所产生的离差平方和,简称为组间平方和。对应于SST,SSR和SSE的自由度分别为n-1,k-1,n-k。由此可以得到:SST=SSR+SSE第八十一页,共一百零三页,编辑于2023年,星期一当原假设H0:µ1=µ2=…=µk成立时,E(MSE)=E(MSR)=σ2。此时MSR较小,F值也较小。反之H0不成立时,MSR较大,F值也较大。对于给定的显著性水平α查F分布表得到F1-α(k-1,n-k)。如果F>F1-α(k-1,n-k),则原假设不成立,即k个组的总体均值之间有显著的差异,就拒绝H0。若F≤F1-α(k-1,n-k),则原假设成立,即k个组的总体均值之间没有显著的差异,就接受H0。3.F检验将SSR和SSE分别除以自由度,即得各自的均方差:组间均方差
MSR=SSR/(k-1)组内均方差
MSE=SSE/(n-k)检验统计量
第八十二页,共一百零三页,编辑于2023年,星期一由于方差分析表(见下表)概括了方差分析的统计量之间的关系,在进行方差分析时就可以直接按照方差分析表来逐行、逐列地计算出有关的统计量,最后得到检验量F的值,并把这一F值与查表所得到的一定显著性水平下的F检验的临界值进行比较,然后作出接受或拒绝原假设的结论。4.方差分析表上述方差分析的方法可以用一张标准形式的表格来实现,称为方差分析表。方差分析表分为五列:第一列表示方差的来源;第二列表示方差的离差的平方和;第三列表示自由度;第四列表示均方差;第五列表示统计检验量F。表格又分为三行:第一行是组间的方差SSR和均方差MSR,表示因素的不同水平的影响所产生的方差,其值作为计算统计检验量F时的分子;第二行是组内方差SSE和均方差MSE,表示随机误差所引起的方差,其值作为计算统计检验量F的分母;第三行是检验行,表示总的方差SST。第八十三页,共一百零三页,编辑于2023年,星期一单因素方差分析表方差来源离差平方和自由度均方差统计检验量F组间差SSRk-1MSRF=MSR/MSE组内差SSEn-kMSE总方差SSTn-1(三)单因素方差分析函数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')
单因素方差分析是比较两组和多组样本的均值,假设各组变量之间相互独立,方差相等,且服从正态分布。原假设是各组均值全部相等。调用方式第八十四页,共一百零三页,编辑于2023年,星期一输入参数X样本观察值,要求各列均为彼此独立的样本Y观察值向量group组别,Y中每个元素所属的类别displayopt取值为“off”与“on”,分别表示掩藏与显示方差分析表图和盒图。盒图上下线为25%和75%分位数,中间线为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论