在 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,…) 输入参数
各参数的名称和内容如下表所列 参 数 名 参 数 值 称 notch symbol orientation whisker labels colors widths positions grouporder ?on?生成有缺口的盒图,?off?生成矩形盒图 线条类型,默认值为?r +? ?vertical?(默认值)为垂直型盒图,?horizontal?为水平型盒图 盒图须线的长度,默认值=1.5×四分位间距 盒图行列的名称标签 线条颜色 盒图的宽度,默认值=0.5 盒图的位置,默认值为 1:n 组的次序
>>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 残值的置信区间 stats R2、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.1794 0.1149 -0.1435 0.1764 -0.1625 0.1737 -0.2005 0.1417 -0.1795 0.1712 -0.1046 0.2290 -0.0569 0.2470 -0.2559 -0.0402 -0.0667 0.2238 -0.1889 0.1008
是白噪声。 stats =
1.0e+003 *
0.0010 2.2837 0.0000 0.0000 b =
0.1303 0.3953 bint =
0.0120 0.2487 0.3762 0.4144 r =
-0.0323 0.0165 0.0056 -0.0294 -0.0041 0.0622 0.0950 -0.1480 0.0785 -0.0440
从 b 的估计值可以得知常数项和一次项的系数分别为0.1303, 0.3953。在 0.05 置信水平下常数项系数估计区间为[0.0120 0.2487],X的系数置信区间为[0.3762 0.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 个元素中的矩阵进行回归 MaxIterations TolParam Tol0bj Covaro 输出参数
输入参数
(三)估计多元正态分布每个资产的标准差
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 自变量观察值
k k 表示控制系数,可以根据需 要进行选择。 输出参数 k = 0:0.01:1;
b = ridge(heat, ingredients, k); plot(k, b');
xlabel('Ridge parameter'); ylabel('Standardized coef.'); title('Ridge Trace for Hald Data') legend('x1','x2','x3','x4');
例2 对 hald 文件中的数据进行岭回归。 >>load hald
查看工作区中的变量。 >>who
Your variables are :
hald heat ingredients 五、主成分分析
主成分分析是在各个变量之间相关关系研究的基础上,用较少的新变量代替原来较多的变量,而且使这些较少的新变量尽可能多地保留原来较多的变量所反映的信息。