(66)有没有直接计算峰度和偏度的函数?
使用kurtosis函数和skewness函数可以直接计算峰度和偏度。
(67)如何构建线性回归模型?
使用lscov函数(或左除“\”运算)可以直接求解线性回归模型。lscov函数的简要用法如下:
lscov函数的返回值 x 是线性系统 A × x = b 的最小二乘解,即 x = A \ b ,见下例:
运行结果为:
(68)如何使用逐步回归?
参考Stepwise Regression函数,或者在MATLAB命令窗口中输入“stepwise”开启逐步回归GUI界面,如图0-10所示。
(69)如何做聚类分析?
K均值聚类算法可以用kmeans函数实现,具体算法过程在这里不详述,可以参考相关书籍,见下例:
图0-10 逐步回归GUI界面
运行结果为:
kmeans函数实现的效果图如图0-11所示。
图0-11 kmeans函数聚类样例
模糊C均值聚类算法可以用fcm函数实现,其语法格式如下:
用法如下:
输入变量:
输出变量:
具体实例如下:
运行结果为:
以上实例形成的效果图如图0-12所示。
图0-12 fcm函数聚类样例
(70)如何做主成分分析?
princomp函数可以进行主成分分析,具体过程可以参看下例:
运行结果如图0-13所示。
图0-13 ratings数据的box图
这里使用的是MATLAB自带的城市(cities)数据,里面的ratings数据是一个329×9的矩阵,表示329个城市的数据,每个城市有9个属性描述。上面是ratings数据的箱式图,下面使用princomp函数进行主成分分析。
代码运行结果如图0-14所示。
图0-14中的线表示累积变量解释程度,可以看出前7个主成分可以表示出原始数据的90%,所以在90%的意义下只需提取前7个主成分即可达到主成分提取的目的。下面进行一些结果的可视化:
图0-14 累积变量解释程度
运行结果如图0-15所示。
(71)如何对样本数据进行正态检验?
参考jbtest函数。MATLAB统计工具箱中主要的分布检验函数如下。
• jbtest:正态性的Jarque-Bera检验。
• kstest:单样本Kolmogorov-Smirnov检验。
• kstest2:双样本Kolmogorov-Smirnov检验。
• lillietest:正态性的Lilliefors检验。
(72)如何做配对t检验?
参考ttest、ttest2函数。MATLAB统计工具箱中主要的假设检验函数如下。
• ranksum:秩和检验。
• signrank:符号秩检验。
图0-15 主成分分析结果可视化
• signtest:符号检验。
• ttest:单样本t检验。
• ttest2:双样本t检验。
• ztest:z检验。
(73)多项式回归应该用什么函数?
使用polyfit函数可以进行多项式拟合,见下例:
运行结果为:
即最后求出的拟合多项式为-0.0931× x 3 -0.002× x 2 +0.8557× x +0.0041,拟合结果如图0-16所示。
图0-16 polyfit函数多项式拟合样例
(74)如何使用方差分析(ANOVA)?
方差分析的目的是确定在因素的不同处理(方法、变量)下,相应变量(类别、结果)的均值是否有显著差异。MATLAB提供了适用于单因素方差分析的函数anova1及双因素方差分析的函数anova2。
(75)logistic回归相关函数是什么?
logistic回归是关于相应变量为0-1定性变量的广义线性回归问题。在MATLAB中广义线性回归模型可以用glmfit函数实现,将广义线性回归模型的分布族设为二项分布(binomial)即可实现logistic回归,具体参看glmfit函数。
(76)如何做Decision Tree?
决策树(Decision Tree)学习是以实例为基础的归纳学习算法。该算法从一组无序的、无规则的事例中推理出决策树表示形式的分类规则,决策树也能表示为多个If-Then规则。一般在决策树中采用“自顶向下,分而治之”的递归方式,将搜索空间分为若干互不相交的子集,在决策树的内部节点(非叶子节点)进行属性值的比较,并根据不同的属性值判断从该节点向下的分支,在树的叶子节点得到结论。
MATLAB统计工具箱中的ClassificationTree.fit函数可实现基于训练集数据创建一个决策树分类器。
(77)Box-Cox如何变换?
参考boxcox函数。
(78)如何使用MATLAB进行生存分析?
参考coxphfit函数。
(79)如何利用MATLAB获取免费的金融数据?
MATLAB有一个数据获取工具箱(Datafeed Toolbox),用于从主要的金融数据提供商处获取当天、历史和实时的金融数据。将金融数据与MATLAB集成起来,用户可开发实时模型反映当前金融市场行为。这个工具箱也提供导出MATLAB数据到数据服务提供商的函数,用户可建立从MATLAB到数据服务提供商提供的历史数据或者预定实时数据流的连接。证券查找对话框可以使工程师在MATLAB环境中查找指定证券的代码(仅针对Bloomberg)。工程师可以使用证券的简要缩写码和代码来表示一只证券。
Datafeed Toolbox支持如下的金融数据服务提供商:
• Bloomberg ® 。
• eSignal。
• Factset ® 。
• Federal Reserve Economic Data(FRED)。
• Haver Analytics。
• Interactive Data。
• Kx Systems ® 。
• Reuters ® Market Data System。
• Thomson ® Datastream。
• Yahoo! ® Finance。
其中,雅虎财经(Yahoo! Finance)的数据接口是完全免费的,可以从雅虎财经下载全球的股票与期货数据进行建模测试。比如下载中国股市的数据,只需知道相应股票的代码(在Yahoo! Finance中上海证券交易所股票代码后需要加一个“.SS”,深圳证券交易所股票代码后需要加一个“.SZ”)。见下例,获取三友化工(600409.SS,Sanyou Chemical)在某一时段的股票日收盘数据:
运行结果为:
上述操作也可以在Datafeed Toolbox GUI界面上完成。在MATLAB命令窗口中输入“dftool”可以调出Datafeed Toolbox GUI界面,如图0-17所示。
图0-17 Datafeed Toolbox GUI界面
(80)利用MATLAB可以实现支持向量机(SVM)模型吗?
较新版本的MATLAB中有svmtrain、svmclassify等函数可以实现SVM,但笔者推荐使用LibSVM工具箱,其能更方便、自由地实现SVM模型。
更多关于SVM的理论和应用方面的知识可以查看下面的免费视频链接进行学习:
《支持向量机(SVM)相关免费学习视频集锦》,MATLAB技术论坛。
(81)如何计算一个资金流的最大回撤?
根据最大回撤的定义,设Equity为资金流,在索引(下标)Index处可以找出之前的资金流的最大值,设该最大值为Max。如果Index处的资金流为最大值,则Index处的最大回撤为0;否则Index处的最大回撤为(Equtity(Index)-Max)/Max。
下面的RetraceRatio.m函数可以实现最大回撤的计算:
下面使用该函数计算某一资金流(权益)的最大回撤,见下例:
运行结果如图0-18所示。
图0-18 最大回撤图形展示