说到“统计”,很容易让我们想到在学校里学习的“统计学”课程内容,只是因为统计任务已经被规约成任务单一的指标计算或同比和环比计算,所以我们在日常运营工作中用到的统计知识相对比较简单。而且,在全样本统计成本越来越低的情况下,通常不会用到太多高级统计学中有关从抽样误差反推到全样本误差的知识。不过,这仍然是统计,所以我们在统计学中需要注意的问题,在这里也一样需要注意。
既然数据统计的意义主要在于用数据为认知对象画像,那么数量统计、数值加和、数值平均、方差、同比、环比等就成了绝大多数单位在运营过程中所需的基本数据资源。在这样的情况下,我们就把这种一般性的“操作”当成“统计”来介绍,把“高级技巧”放在后面作为分析的内容来讲解。
据我所知,现在很多人都有这样的误解:在数据库里使用AVG、SUM、COUNT这样的语句进行统计是一件档次很低的事情,因为操作太简单,有一点SQL语言基础的人都能做到。但我并不这么看。统计通常用于把认知对象的维度从低变高,从高变低,从简易变得复合,从复合变得简易。这种认知维度升降中的变化,可以帮助认知对象在观测过程中处于复杂度适中的状态,从而为人们进行认知与归纳总结提供便利。
我们先说降维认知。当数据处于高维状态的时候,我们一般喜欢把它们降维到适当的状态来认知。数据挖掘领域使用的“数据立方体”(Data Cube,如图14-1所示)就是一种降维认知手段。在描述一个维度极为丰富的高维数据记录组(例如销售记录)的时候,这种记录可能会包含销售时间、销售地点、销售类目、销售金额、销售数量、折扣率、售货人员等各种维度的信息,而且会有数以百万计的数据记录量。假设有m个维度和n条销售记录,那么这些数据会形成一个m×n的巨型矩阵。但是,销售额是一个对加和值敏感的数据种类,在使用
SELECT SUM(XXX)
GROUP BY XXX
之后,就会忽略一些我们不那么关心的维度数据,并将一个确定的加和值返回,从而代替数以万计的具体销售记录。这就是典型的降维认知——只关注最为关键的数据维度,只关注一个统计值而非单个个体值。
图14-1 数据立方体
除了降维认知以外,升维认知(如图14-2所示)的使用也很广泛。
图14-2 升维认知
在表示股价或期货价格的K线图(如图14-3所示)中,横坐标是时间,K线图上的每一个柱形都表示4个价格信息,分别是开盘价、高价、低价、收盘价。这种数据蕴含的信息看上去很贫乏,因为只有时间和价格,对市场多空情绪的反映有些不直观。所以,股票分析家们又发明了很多技术指标,这些指标无一例外,都是用K线图上的数据进行计算所得到的升维指标数据,MA(Moving Average,移动平均线)就是其中之一。
图14-3 股票价格K线图
在一个MySQL数据表Price中有字段CLOSE作为收盘价的字段(如表14-1所示)。
表14-1 Price表信息
TIME | CLOSE |
2016/10/3 | 104.15 |
2016/10/4 | 102.33 |
2016/10/5 | 102.25 |
2016/10/6 | 101.54 |
2016/10/7 | 101.86 |
2016/10/10 | 102.43 |
2016/10/11 | 102.90 |
…… | …… |
计算收盘价MA,应该使用下面的步骤。
以3天移动平均线指标为例,先建立一个以ROW_NUM为升序伪列的表。
SET @ROWNUM=1;
CREATE TABLE TEMP AS
SELECT @ROWNUM:=@ROWNUM+1 AS ROW_NUM,TIME,CLOSE
FROM PRICE
ORDER BY TIME;
建立一个指标表放置MA数据。
CREATE TABLE EMA AS
SELECT
R3.ROW_NUM, R3.TIME, (R1.CLOSE+R2.CLOSE+R3.CLOSE)/3 AS MA
FROM
(
SELECT ROW_NUM, TIME, CLOSE
FROM
TEMP
) AS R1
LEFT JOIN
(
SELECT ROW_NUM, TIME, CLOSE
FROM
TEMP
) AS R2
ON R1.ROW_NUM=R2.ROW_NUM-1
LEFT JOIN
(
SELECT ROW_NUM, TIME, CLOSE
FROM
TEMP
) AS R3
ON R2.ROW_NUM=R3.ROW_NUM-1;
这样,MA列中就是3天移动平均线的值了。
同理可以计算任意多天的移动平均线的值,也可以考虑用游标等技术实现。一些技术流分析人员观察短期移动平均线上穿或下穿长期移动平均线的情况,并以此作为入场信号,因为这体现了近期变化的趋势改变,这种方式要比直接观察K线图容易很多。此外,EMA(Exponential Moving Average,指数平滑移动平均线)、MACD(Moving Average Convergence Divergence,指数平滑异同移动平均线)、RSI(Relative Strength Index,相对强弱指标)、BOLL(Bollinger Bands,布林线指标)等指标也是通过对K线图上价格数据的统计计算得到的,对分析价格数据有很大的辅助作用。这些引入的指标给人们提供了更多关于市场价格的认知维度,虽然它与原始的K线图价格维度不是正交的,但同样带来了信息。分析师们会通过这些新加入的维度,以及已有K线图上开盘价、高价、低价、收盘价的数值,进行有关是否到达支撑位置、是否形成有效突破等市场情况的判断。现在你不会觉得这些简单的SQL语句没有档次了吧?
在结合信息论的相关理论后,一些读者可能会有疑问:这些信息量都已经包含在原始数据中了,这种升维操作应该是一种没有信息量的数据信息,那么这种升维还有意义吗?这个问题可以这样理解。首先,信息论研究的问题仅仅是数据中蕴含的信息量的问题,讨论的是围绕信息量的传输、压缩等一系列“失真”或“非失真”程度的问题,这是它的研究边界。而我们刚刚讲到的,维度中蕴含的信息即使已经处于信息量的下界,也只是不能被更短的数据来表示而已,并不意味着这些信息对人类进行认知而言已经足够“好”了。想想看,这些数据信息中至少不包括升维或降维算法的信息,如果要说信息量的话,这部分同样应该归入整个讨论的边界。在升维后体现出来的新的或者原来不直观的特性,很可能帮助我们找到一些新的认知线索。这就是数据统计的意义。
升维也好,降维也罢,这都是把维度调整到的合适的程度来归纳和认知。
——本文选自《数据科学家养成手册》,由电子工业出版社投稿
编辑推荐
从哲学、数学、物理、统计,到测量、实验、辩证、分析,用谈天说地的方式激发思考,归纳总结数据科学的实质及成就一位数据科学家所需要的基本素养。
内容提要
作为认知科学的延伸,数据科学一方面应该越来越引起广大大数据工作者的重视,另一方面也要撩开自己的神秘面纱,以最为亲民的姿态和每位大数据工作者成为亲密无间的战友,为用科学的思维方式进行工作做好理论准备。《数据科学家养成手册》从众多先贤及科学家的轶事讲起,以逐步归纳和递进的脉络总结出科学及数据科学所应关注的要点,然后在生产的各个环节中对这些要点逐一进行讨论与落实,从更高、更广的视角回看科学及数据科学在各个生产环节的缩影。《数据科学家养成手册》并不以高深的数学理论研究作为目的,也不以某一种计算机语言编程作为主线脉络,而是在一个个看似孤立的故事与工程中不断拾遗,并试着从中悟出一些道理。
《数据科学家养成手册》适合大数据从业人员和对大数据相关知识感兴趣的人,初级和中级程序员、架构师及希望通过对数据的感知改进工作的人,产品经理、运营经理、数据分析师、数据库开发工程师等对数据分析工作敏感的人,以及所有对数据科学感兴趣并希望逐步深入了解数据科学知识体系的人阅读。
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。