(二) 剔除异常值后的平均值
X 样本观察矩阵。
percent 剔除比率,例如percent=10表示同时剔除最大
的5%和最小的5%观察值 。 dim dim=1(默认)表示对每列求平均值,dim=2 表示对每行求平均值。 有时观察数据中有异常大或异常小的值,这些异常值会对平均值产生影响,需要去掉异常值。例如在体操比赛中,去掉一个最高分和最低分,然后计算运动员的最后得分。在Matlab中也有剔除异常值后的平均数。 调用方式
M = trimmean ( X , percent )
M = trimmean ( X , percent , dim ) 输入参数
>> x = rand( 1 , 20 ) >> trimmean (x , 10) ans =
0.5145 (三)计算中位数
A 样本观测矩阵
dim dim=1(默认)表示对每列求中位数,dim=2表示对每行求中位数 剔除10%的异常值之后的平均数为0.5145 。 调用方式
M = median (A)
M = median (A ,dim) 输入参数
有时数据中出现NaN,在计算中位数时需要忽略NaN,这时需要调用nanmedian函数。 (四)计算方差与标准差 A 样本值
flag 0(默认值)表示方差计算公式为 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为有偏估计
dim dim=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 ( [ 6 5 ] ) X =
0.4154 0.9901 0.3200 0.4399 0.1338 0.3050 0.7889 0.9601 0.9334 0.2071 0.8744 0.4387 0.7266 0.6833 0.6072 0.0150 0.4983 0.4120 0.2126 0.6299 0.7680 0.2140 0.7446 0.8392 0.3705 0.9708 0.6435 0.2679 0.6288 0.5751 >> m = moment ( X , 3 ) m =
-0.0113 0.0014 0.0032 -0.0058 -0.0023 下面计算样本的 3 阶矩。 (十)计算协方差和相关系数
协方差是一个用于衡量投资组合任意两个资产相关性的统计指标。当协方差为正值时,表示两种资产的收益率呈同方向变动;协方差为负值时,表示两种资产的收益率呈相反方向变化;协方差等于 0 时,表示两种资产不存在相关性。
相关系数总是在 -1~1 之间的范围内变动,-1 表示完全负相关(反向),1 表示完全正相关(同向),0 则表示不相关。Matlab计算协方差、相关系数的函数分别是cov 和 corrcoef 。 协方差 调用方式 C = cov ( X )
C = cov( x , y ) 下面是一个例子
>> A = [ -1 1 2 ; -2 3 1 ; 4 0 3]; >> cov ( A ) ans =
10.333 -4.1667 3.0000 -4.1667 2.3333 -1.5000 3.0000 -1.5000 1.0000 X 观察值矩阵 Y 观察向量
param1 参数 1 ,参数的值如下:
alpha表示置信度,在 0~1 之间 val1 参数 1 的值 param2 参数 2
val2 参数 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 < 0.05 ); >> [ i , j ]
下面是一个计算相关系数的例子。 r =
1.0000 0.1412 -0.1954 0.4993 0.1412 1.0000 -0.1312 0.5848 -0.1954 -0.1312 1.0000 0.3729 0.4993 0.5848 0.3729 1.0000 p =
1.0000 0.4566 0.3008 0.0050 0.4566 1.0000 0.4896 0.0007 0.3008 0.4896 1.0000 0.0424 0.0050 0.0007 0.0424 1.0000 ans =
4 1 4 2 4 3 1 4 2 4 3 4 三、 统 计 绘 图
>> x = [ 1 2 3 5 7 3 3.4 ] x =
1.0000 2.0000 3.0000 5.0000 7.0000 >> tabulate ( x )
Value Count Percent
1 1 14.29% 2 1 14.29% 3 2 28.57% 3.4 1 14.29% 5 1 14.29% 7 1 14.29% (一)样本频率分布图
样本频率分布图函数是 tabulate 。
下面调用 cdfplot 函数绘出 x 的分布图。 >>cdfplot ( x ) 向量 x 的分布图
(二)最小二乘拟合图
3.0000 3.4000