数据产品开发前的必修课(四):躲开平均数骗局

文/明道软件 胡晨川 个人公众号“川术”

图片发自简书App

平均数计算的目的,是用来判断一个序列的集中趋势,进而对数据总体有一个合理的认知。要求一个序列的平均数,主流算法其实有三种:算术平均数,中位数,众数。

算术平均数即大家用得最多的,几个数加总后除以个数;而中位数是序列中的数进行大小排序后,排名在中间的数(若序列中数值个数是偶数,则取排名在中间的两个数的算数平均数);而众数是指序列中出现频率最高的那个数。

三种算法在excel中对应的函数是average(),median()和mode()

三种算法各有特点,也各有使用条件。算数平均数的使用,有时侯会把你带坑里。我用最近遇到的一个案例,来说说为什么要使用中位数。

用中位数来避免算数平均数陷阱

中位数数的计算方式,我用下面一段python的代码表示,程序员们或许更好理解:

def Median(a):

a = sorted(a)

l = len(a)

l2 = l / 2

return a[l2] if l % 2 else (a[l2] + a[l2 - 1]) / 2.0

(文章末尾附录中我列出了sql语句计算中位数的方式)

最近在做明道crm中的统计模块,计算订单承担周期时,遇到了算数平均数陷阱:

比如,某个销售在6月份签了5单,每单的周期是order_period=[15,18,26,30,365]。其中有一个订单是去年注册的线索(小概率事件),因此周期的算数平均数90.8。之前成单周期水平都在一个月左右的人,在这个月突然变成了3个月,这个数值显然是不公平的。这样的巨幅变化,也会给销售决策造成干扰(对数据总体的认知被扭曲了)。因为365这个极大值,拉高了整个序列的算数平均数,使得数据失真。这正是算数平均数的弊端。

取用中位数,便排除了特数值带来的影响。纵使有一单是去年的线索,这位顾问的成单周期是26,依然是正常水准。

算数平均数与中位数的结合

而算数平均数也有它的优势,它是汇总所有数值信息后,计算的集中趋势,只要不出现特殊值,它的精确度是超过中位数的。所以,算数平均数和中位数如何结合呢?

crm成单周期的统计,又引发出另一个问题:从哪个层面来计算中位数?

我们的计算其实有四级:

公司销售部宏观的成单周期➡️每个城市分公司的成单周期➡️各个销售团队的成单周期➡️个人的成单周期。

如果每一级都计算中位数,显然是过于粗放的。我采用的方式是在个人这一级取中位数,之后的所有层级都取算数平均数。

但这还是有问题的:

个人成单量比较少的情况下,计算中位数也会不合理。比如,某个团队三个人,每个人周期序列分别是[2,300,200],[15,3],[5,14,26],中位数分别是200,14,14,算团队算数平均数时,依然没有排除掉极值的影响。

所以,最合理的方式也许是:

人均订单数超过5单的团队,计算一级中位数;而人均订单数小于5的团队,计算两级中位数。

当然,这里组合的方式就需要读者您根据自己业务情况来定了。

众数目前我还没有用上,它一般会用在离散型序列且数值个数较多的时候。

附录:

sql语句中似乎没有直接计算中位数的方式,我这边从网上找了一段,个人读后感觉是靠谱的,也贴出来,供大家理解。概括的说,它是使用2个子查询来计算,1个子查询用来排序,1个子查询用于计算总数,然后根据总数的 奇/偶,来决定哪些行需要进行计算。

SELECT

data_with_rownumber.Name,

AVG(data_with_rownumber.val) AS median

FROM

(

SELECT

ROW_NUMBER() OVER(PARTITION BY Name ORDER BY val) AS seq,

Name,val

FROM

test_median

) data_with_rownumber

JOIN

(

SELECT

Name, COUNT(1) AS NumOfVal

FROM

test_median

GROUP BY

Name

) data_count

ON

(

data_count.Name = data_with_rownumber.Name

AND

(

(data_count.NumOfVal % 2 = 0 AND data_with_rownumber.seq

IN (data_count.NumOfVal / 2, (data_count.NumOfVal / 2) + 1))

OR

(data_count.NumOfVal % 2 = 1

AND

data_with_rownumber.seq = 1 + data_count.NumOfVal / 2)

)

)

GROUP BY

data_with_rownumber.Name

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,958评论 6 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,651评论 18 139
  • 前段时间,读了五年大学的朋友毕业了。饭桌上,很多高中的朋友已经工作一年了,大家都开始畅聊各自的日常。让我忘不了的一...
    Kevin经纬阅读 3,351评论 0 1
  • 她二十来岁那年 有着湖水般清澈的眼眸 扎着乌黑发亮的马尾辫 总是不见其人先闻其笑 爽朗而单纯 她似乎从来不会含蓄 ...
    花雅雅阅读 271评论 0 2
  • 早上好!#幸福实修#~每天进步1%#幸福实修10班陈月莲~杭州 20170818~25/30 【幸福三朵玫瑰】 昨...
    馨儿_dda0阅读 219评论 1 2