Python量化投资:技术、模型与策略
上QQ阅读APP看书,第一时间看更新

6.2 描述性统计

在完成初步的数据清理之后,我们可以做一些简单的描述性统计,这样既可以对数据有一个初步直观的感受,也便于对数据进行进一步的清理操作。

这里介绍两种常用的基本统计方法,中心趋势度量和数据散布度量,两个典型的代表分别是均值和方差。下面对中心趋势度量和数据散布度量做一个简单介绍。

6.2.1 中心趋势度量

本节将考察度量数据中心趋势的各种方法。下面以某资产的收益率X为例,假如我们已经获取了N个交易日的收益率值,依次记为x1,x2,…,xN。现在想要知道收益率总体大概在哪个值?这个反映的就是中心趋势的思想。中心趋势度量主要包括均值、中位数、众数。

“均值”是最常见、最有效的度量之一。令x1,x2,…,xN为某数值X的N个观测值。则该值集合的均值(mean)为:

这个均值又称为算术平均值。均线的理论就来自于此。

有时,对于每个值xi,我们可以取一个对应的权重wi。权重反映了每个值xi的重要性或者出现的频率。这种情况下,我们可以计算:

这个均值称为加权算术均值或者加权平均。在技术指标中,除了均线MA之外,还有一种指数平滑均线EMA(Exponential Moving Average),利用的就是加权平均的思想,EMA的计算使用的是一个递归公式,如下:

其中,a为平滑指数,一般取作2/(N+1)。

将这个公式展开之后,我们可以发现,随着时间的推移,过去收盘价的权重呈指数级减少。时刻越靠近现在,其权重越大,这样就可以凸显近期收盘价的重要性了。

虽然均值是描述数据集最有用的统计量,但它并非总是度量数据中心的最佳方法。主要问题是,均值对极端值非常敏感。比如,我们经常听到网传某某公司的平均收入是多少,该公司的员工就会抱怨他们是“被平均”了,因为少数几个高管的超高收入拉升了整个公司的平均水准,导致统计失真。为了降低少数极端值的影响,我们可以使用截尾均值(trimmed mean)。截尾均值是丢弃掉高低极端值后的均值。比如,我们可以对收益率排序,然后将最高的2%和最低的2%都去掉,最后再取平均值。

另外一种数据中心的度量是中位数(median),特别适合应用于非对称数据。中位数是有序数据的中间值。它是将数据较高的一半与较低的一半分开的值。计算中位数的方法比较简单,先将数据进行排序,如果N是奇数,则中位数就是序列的中间值;如果N是偶数,则中位数就有两个值;如果X是数值类型,则可以取中间两个值的平均值。

众数是另一种中心趋势度量。数据集的众数是集合中出现最频繁的值。众数比较适合用于离散变量。比如,A股的公司类型有国有企业、中央企业、民营企业、合资企业等。我们就可以统计企业类型的众数,得出A股中哪种类型的企业最多,最有代表性。

6.2.2 数据散布度量

本节将考察数据散布或者发散的度量。这些度量包括方差、极差、分位数等。

方差和标准差是最常见的数据散布度量,它们可用于指出数据分布的散布程序。低标准差意味着数据趋向于非常靠近均值,而高标准差则表示数据散布在一个大的范围中。在金融数据中,我们常使用方差或者标准差来表示收益的波动性和风险。比如布林线,就是使用均线加减N倍的标准差,这样就能同时表达价格的整体趋势和波动性。

数值X的N个样本x1,x2,…,xN的方差是:

其中,是数据的均值,σ2是方差,σ是标准差,也是方差的平均方根。标准差σ的性质如下。

·σ用于度量关于均值的发散,仅当选择均值作为中心度量时使用。

·只有当所有观测值都具有相同的值时,σ=0;否则σ>0。

除了方差,还有极差、分位数可以作为数据散布的度量。

极差是数据中最大值和最小值的差值,数值X的N个样本x1,x2,…,xN的极差可以记作max(X)-min(X)。

假设X的数据以数值递增的顺序排列。那么我们可以挑选某些数据点,这些数据点刚好可以将数据划分成大小相等的集合,这些数据点称为分位数。分位数是取自数据分布的、每隔一定间隔上的点,它们可将数据划分成大小基本上相等的连贯集合。(这里说“基本上”,是因为可能无法恰好将数据划分成大小相等的数据点。)

2-分位数是一个数据点,它将数据分布划分成高低两半。2-分位数对应于中位数。4-分位数是3个数据点,它们将数据分布划分成4个相等的部分,使得每部分都是数据分布的四分之一。