不知不觉,跟一个监管平台快2年了。监管平台中数据分析占了很大一部分。需求分析和开发都缺少数据分析的经验,也没有所谓的专家指导。真是不坚持到最后,都不知道自己踩了有多少的坑。尽管事好多,还是忍不住要来数数,不然拖太久可能就忘记了,下次又继续踩。。咬咬牙坚持补充吧。。
一、开发时的坑
以下是在需求讲解、开发验收过程需注意的。
1.统计业务系统的数据时,需过滤掉删除状态的数据,不然会导致数据虚高。
这个按理说应该是个常识了,所以我也从来没有提醒过开发,也从来没想过会有这样的问题(捂脸)。
如:统计故障率,就未过滤掉删除状态的数据。
同理,业务上未审核通过、作废的数据也不应纳入统计。
2.涨幅
2.1 涨幅,应该是统计指标的涨幅,而不应该是和统计指标相关对象的涨幅
如,zj日均次数=zj次数合计/当月天数,该报表的涨幅,理当是zj日均次数指标的涨幅。我也真没想到开发统计成zj次数合计的涨幅。。这是开发偷懒了吗?
2.2 分母为0时怎么处理?
比如求涨幅,如事故数本期为5,上一期的数据是0,涨幅应该是多少。在统计学上分母为0是没有意义的。所以是当分母为0时,不计算涨幅,在对应的单元格上用'-'表示。
几个人讨论、搜索过应该用500%、5、0、“-”哪种表示。
开发建议是涨幅500%,好像也是合理的,但是看500%的第一感觉就是“哇,涨得这么夸张”的样子,无法让人一眼就知道上一期其实是0。
网上也有建议直接显示涨幅是5的。这个表示方式会让人误以为涨幅是5%。
用0的话,同样也会让人误解2个月事故数都是0。
所以用排除法,我跟对接人都倾向于用'-'表示。
在报表的指标说明中增加上对应的说明,如“当上一期xx数据为0时,不计算涨幅,用‘-’表示”会更好。
3.均值
3.1 xx日均次数应该是=xx总数/当月天数,而不应该是除以记录条数。
因为除以记录条数的话,如果有的天数没记录,则会计算少了天数,导致数据过高。
比如:zj日均次数应该是=xx总数/当月天数,注意不同年份的2月有不同的天数。
如果统计的是当月的日均次数,则应该是总数/当月已过的天数,而不应该是除以当月总天数。
但在不同的业务,可能会不同的要求。如成绩的平均分数。在一般情况下,班级平均分的计算是将所有参加考试的同学的成绩加总,然后除以参加考试的人数。也就是说,缺考的同学不会被计算在平均分的计算中。
所以,如果有类似的需求,在调研期间跟业务方确认下处理方式,可以降低下代码错误率、返工率。
3.2 xx率的均值:xx率的均值应该是= 分子的合计/分母的合计,而不是=xx率的合计/xx率的记录数。两种统计的结果是不一样的。
这貌似是统计分析的常识,但整个系统,开发全都是用=xx率的合计/xx率的记录数。真是让我怀疑人生啊。。如,月度pm(paomao)率=月度的{pm车数/行驶里程(万公里)},月度pm率均值则应是=月度pm车数之和/月度行驶里程之和。
再举个相同的例子方便理解:下面是2个班的成绩,两个班的平均分分别是:86.375,78.648。如果算两个平均分的均值,则整体平均分是82.511,而如果是算所有人的平均分则是82.394。
3.3.均值的显示格式
均值一般都是xx/xxx,所以会有除不尽的情况。常用的处理方式是默认保留小数点后2位,当然了,也有少部分业务会例外,比如除了后如果小数点后1位基本都是0,则应是保留3位小数、或4位。不然都显示00.00,或00.01就没什么业务意义了。
但是目前遇到的开发,没有一个会关心业务,你没发现,他则不管。我甚至怀疑开发做完后,都没看过自己写出来的东西是什么样子的。
4.报表的合计会不固定位置显示
开发选用的某个开源可视化工具,如不特殊处理,每次刷新页面,合计都会显示在不同的行。真真是万万没想到啊(捂脸哭)
5.同个图形的图例说明、排序样式需统一
比如下图的环形,一个百分比有括号、其他的没有括号;同个指标不同维度的图,有的图例是已保养排前面,有的是未保养。
6.可点击的行或单元格,鼠标悬浮时,应变成手势图标。
选用的开发工具(Dataease)竟然不支持这个交互(再次掩面哭)。虽然是个微乎其微的功能,但是确实很影响用户的体验。不手把手教的话,用户很难发现某些报表数据是可以下钻或者联动显示的。这么有名的工具真的不支持吗?
7.按维度统计时,未填写或者填了空格的数据怎么处理?
有的人喜欢未填写的,不纳入统计范围,即不在图表上显示。好处是图表好看。如果图表是给领导、上级领导看的,则用这种方法。
有的喜欢用“未填”系列来统计这类数据。好处是一眼就看出没有填写的有多少。
8.数据的导出
导出的数据,在做需求时明确跟开发要求:只要是数据的列,都要设置为“数值”格式,方便将数导出来后,再做合计等运算。不然用户在拿到导出的数据后,想做简单运算或校验时,不知道如何处理。
二、需求调研时的坑
1.同比、环比
我一直记不住同比、环比的定义。这里有详细的释义:https://m.thepaper.cn/baijiahao_23552723
简单的说,同比就是同期比较,环比是和上期比较。按日、月统计的数据,有同比、环比,按年统计的则只有同比,因为按年统计的同比环比增长都是一样的。
3.月份统计周期:
有的业务是用非自然月周期考核的,如by覆盖率,用的月度周期是上月28日至本月27日。
4.统计数据的0处理:有些维度统计的值是0时,会要求不显示为0的数据,有的会要求要补全0
如这个监管系统,则基本都是要求为0的数据不显示。比如长期停运的数据,长期停运有停运2-15天、15-30天、30天以上的数据,如某个单位这3个统计数据都为0,则不显示。因为报表是关注有异常的数据,就不需要将无异常的数据展示出来干扰视线。
而之前跟过的某个基础档案系统,业务方则是要求没有数据的单位,也要占一行显示。这样做的好处是数据齐全。
5.报表的排序
部分业务会特殊的排序需求。比如xx集团习惯按AA一分公司、BB二分公司、CC三分公司这样的顺序去查看下下级单位的数据。
一般排序方式有:
按数据从大到小、或从小到大。比如保有量需要按从大到小排序。
按系列的名称从小到大、或从大到小排。比如按车长、车龄维度的统计,需要按统计维度从小到大排序;
在细节调研或设计的时候,需考虑这些问题。
三、未解决的问题
1.环形、饼图标签说明堆叠.
当环形的系列比较多时,系列的标签说明如下图都堆叠在一起了。据开发反馈是工具自适应的,无解。
我在想是不是把显示区域再调大些会好点呢。
2.系列超多时,用什么图形展示,图例说明怎么处理?
比如下面的报表,在只有一个维度的时候,看着是挺正常的。
但是当下钻到2-4个维度时,有20甚至50、近100个系列,图形就成下面的样子。密密麻麻的线,这是让用户看什么呢??是不是当系列大于10个,就不要用图+表的方式展示,只用表就好了?但是即使系列数接近10,图例说明的展示不够清晰、显隐操作也不方便。是不是应该自定义一个批量显隐图例说明的功能和展示样式?