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

下载本文档

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

文档简介

第八讲Matlab在金融工程中的应用 张树德著 参考文献 MATLAB金融计算与金融数据处理 北京航空航天大学出版社 2008 Matlab金融工具箱模块 1 FinancialToolbox Matlab自带金融工具箱 具有下列功能 固定收益计算 日期数据处理 资产均值 方差分析 时间序列分析 有价证卷的收益和价格 统计分析 定价和灵敏度分析 年金和现金流计算 抵押支持债卷 FinancialDerivativesToolbox是金融衍生产品工具箱 用于固定收益 金融衍生物以及风险投资评估分析 也可用于各种金融衍生物定价策略以及敏感度分析 2 FinancialDerivativesToolbox 3 FinancialTimeSeriesToolbox FinancialTimeSeriesToolbox用于分析金融市场的时间序列数据 金融数据是时间序列数据 例如股票价格或每天的利息波动 可以用该工具箱进行更加直观的数据管理 该工具箱支持下列功能 技术分析函数分析投资 可视化金融时间序列的对象 提供两种创建金融时间序列的对象 用构造器和转换文本文件 Fixed IncomeToolbox扩展了Matlab在金融财经方面的应用 可以用固定收益模型进行计算 例如定价 收益和现金流动等有价证券的固定收益计算 支持的固定收益类型包括有价证券抵押回报 社会债卷和保证金等 该工具箱还能够处理相应金融衍生物的计算 支持抵押回收有价证券 国债和可转换债卷等的计算 GarchToolbox提供了一个集成计算环境 允许对单变量金融时序数据的易变性进行建模 GarchToolbox使用一个广义ARMAX GARCH复合模型对带有条件异方差的金融时序数据进行仿真 预测和参数识别 GarchToolbox提供了基本工具为单变量广义自回归条件异方差GARCH GeneralizedAutoRegressiveConditionalHeteroskedasticity 易变性进行建模 GarchToolbox采用单变量GARCH模型对金融市场中的变化性进行分析 4 Fixed IncomeToolbox 5 GarchToolbox 上述工具箱基本上囊括了通常的金融计算 适用于金融学术研究 特别适合金融实务工作者进行金融计算 FinancialToolbox提供了一个基于Matlab的财务分析支撑环境 可以完成许多种财务分析统计任务 从简单计算到全面的分布式应用 财务工具箱都能够用来进行证卷定价 资产组合收益分析 偏差分析和优化业务量等工作 金融数据统计 本讲主要介绍了统计学的基本原理和基本统计量 要求读者掌握均匀分布 正态分布随机数生成办法 学会常用的统计绘图命令 掌握回归的方法 学会运用主成份 因子分析金融问题 一 随机模拟基本原理 1977年 菲利浦 伯耶勒 PhelimBoyle 提出了模拟方法求解金融资产定价问题 其想法是假设资产价格分布是随机波动 如果知道了这个波动过程 就可以模拟不同的路径 每做完一次模拟 就产生一个最终资产价值 在进行若干次这样的过程 那么所得到的结果就是一个最终资产价值分布 从这个分布中可以得到期望的资产价格 一 随机数生成函数 在Matlab中unidrnd函数可以生成1 N的均匀分布随机数 其调用方式为 R unidrnd N 随机数矩阵 确定输出随机矩阵R的行数 生成在1 N之间的一个随机数 1 均匀分布随机数生成函数 R unidrnd N m R unidrnd N m n 确定输出随机矩阵R的列数 输出方阵 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表示随机数的维数 下面介绍两种方法生成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 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正态分布的随机数 可用命令 下面用两种方法生成均值为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 多元正态分布的随机数 多元正态分布的随机数可以用如下形式表示 式中 是均值向量 是协方差矩阵 Xi N 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 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 二 随机变量的数字特征 A如果A为向量 则返回值为该向量的平均值 如果A是矩阵 则返回值是每列的平均值 dimdim 1 默认 表示每列平均 dim 2表示每行平均 一 计算平均值 调用方式 M mean A mean A dim 输入参数 在Matlab中计算几何平均数的函数为geomean 计算调和平均数的函数是harmmean函数 调和平均数的计算公式是注意样本数据不能为0 a 12 34 a 1234 下面是一个例子 mean a ans 23 mean a 2 ans 1 50003 5000 二 剔除异常值后的平均值 X样本观察矩阵 percent剔除比率 例如percent 10表示同时剔除最大的5 和最小的5 观察值 dimdim 1 默认 表示对每列求平均值 dim 2表示对每行求平均值 有时观察数据中有异常大或异常小的值 这些异常值会对平均值产生影响 需要去掉异常值 例如在体操比赛中 去掉一个最高分和最低分 然后计算运动员的最后得分 在Matlab中也有剔除异常值后的平均数 调用方式 M trimmean X percent M trimmean X percent dim 输入参数 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函数 四 计算方差与标准差 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 调用方式 Y prctile 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的均值与方差 如果skewness 0 则表示分布形态与正态分布偏度相同 如果skewness 0 则表示正偏差数值较大 长尾巴拖在右边 如果skeqness 0 则表示负偏差数值较大 长尾巴拖在左边 峰度的计算公式为 x 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为有偏估计dimdim 1 默认 表示对每列求平均 dim 2表示对每行求平均 输入参数 x rand 1 20 kurtosis x ans 1 4407 下面是一个例子 八 计算绝对离差 绝对离差是以偏差绝对数来衡量决策方案的风险 在期望值相同的情况下 绝对离差越大 风险越大 绝对离差越小 风险越小 调用方式 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 下面是一个绝对离差的例子 九 计算中心矩 数理统计中经常用到中心矩的概念 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时 表示两种资产不存在相关性 相关系数总是在 1 1之间的范围内变动 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表示置信度 在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每个相关系数的概率矩阵 输出参数 x rand 30 4 x 4 sum x 2 r p corrcoef x i j find p 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 三 统计绘图 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 下面调用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是一个m p阶矩阵 则对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观察值矩阵 Yn k中n是样本的个数 k是资产的数目Design自变量单元变量矩阵 如果Y只有一个资产时 Design是一个矩阵 如果Y中的资产个数大于一个时 Design是一个单元向量 每个元素都是一个矩阵 Y的k列和Design第k个元素中的矩阵进行回归MaxIterationsTolParamTol0bjCovaro 输出参数 输入参数 三 估计多元正态分布每个资产的标准差 Data观察值矩阵 Yn k中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是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公共因素的个数 输出参数 下面用一个例子说明 例4在Matlab中自带了10个公司100周的收益率数据 10家公司分成3个行业 4家属于科技公司 3家属于金融公司 另外3家属于零售类公司 一般来讲 同一行业内上市公司同质性强 走势也相同 不同行业内之间股票受不同风险因素影响 走势差别较大 下面验证该结论 loadstockreturns m 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 如果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 检验统计量 由于方差分析表 见下表 概括了方差分析的统计量之间的关系 在进行方差分析时就可以直接按照方差分析表来逐行 逐列地计算出有关的统计量 最后得到检验量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 Source SS df MS F Prob F Groups 8 7401e 004 1 8 7401e 004 1 4976 0 2412 Error 0 0082 14 5 8360e 004 Total 0 0090 15 stat gnames 2x1cell n 115 source anova1 means 3 4636e 0040 0163 df 14s 0 0242 从结果可知p 0 2412 0 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个水平下进行各次重复试验的所有观察值的平均值 式中 N abn是所有观测值的总数 是所有观察值的平均值 对于因素A H0 因素A的各个水平的影响无显著差异 H1 因素A的各个水平的影响有显著差异 对于因素B H0 因素B的各个水平的影响无显著差异 H1 因素B的各个水平的影响有显著差异 对于因素AB的交互作用 H0 因素AB的各个水平的影响无显著差异 H1 因素AB的各个水平的影响有显著差异 利用上面所引入的符号 可以得到有交互作用的两因素方差分析的步骤如下 建立假设 由于两因素有交互影响 因此除了分别检验两因素单独对试验结果的影响外 还必须检验两因素交互作用的影响是否显著 2 离差平方和的分解 总离差平方和SST的自由度为N 1 有交互作用的两因素方差分析的总离差平方和可以分解为4项 表示因素间交互作用的离差平方和 自由度为 N 1 a 1 b 1 n 1 ab a 1 b 1 分别记 为因素A的离差平方和 自由度为a 1 为因素B的离差平方和 自由度为b 1 表示随机误差的离差平方和 自由度为N ab abn ab ab n 1 有交互影响的双因素方差分析表 编制方差分析表 进行F检验 从方差分解式所得到的SSA SSB和SSE除以各自的自由度 就得到了各自相应的均方差 然后对因素A 因素B和因素AB的交互作用分别做F检验 与前面所讨论的情形一样 双因素方差分析表如下表所列 对于因素A

温馨提示

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

评论

0/150

提交评论