【待翻译】William Playfair如何改变了我们看待数据的方式

The Scottish Scoundrel Who Changed How We See Data When he wasn’t blackmailing lords and being sued for libel, William Playfair invented the pie chart, the bar graph, and the line graph. BY CARA GIAIMOJUNE 28, 2016 原文链接:https://www.atlasobscura.com/articles/the-scottish-scoundrel-who-changed-how-we-see-data article-imageA 1824 Playfair line graph, illustrating of how bread and stock prices are affected by war. (Image: WilliamContinue reading “【待翻译】William Playfair如何改变了我们看待数据的方式”

【新书摘要】第三章:问题分析方法与故事慧预告

最新新书,本以为比之前容易了,结果还是绞尽脑汁,最近已经在第三章耗费了两周时间,今天终于打通了关键的关联,开始落笔成文贯穿其中。这里先分享几个最简单的知识,作为预告吧。

【故事慧】2021-2-26 业务分析中的“结构性分析”by Tableau &喜乐君

欢迎大家参与由 Tableau 客户成功团队主持的 Tableau 故事慧!这一系列直播活动旨在为广大用户和 Tableau 成功使用者建立交流平台。希望大家可以通过嘉宾分享的成功经验,在个人的成长道路上和日常工作中受到启发,少走弯路,深刻了解 Tableau 的有效使用方法和巨大价值。 [喜乐君] Tableau 数据探索系列之 业务分析的“皇冠”–结构化分析日期:2 月 26 日时间:15:00-16:00

[Chapter-1]”Data Visualization Analysis: Principles and Practice of Tableau”

作者注:2020年新书出版之后,几位Tableau好友计划帮助我把书翻译为英文,计划本身就出乎我的意料,不过我也乐见其成,因此多方合作,已经有了前面两章的翻译。不过图片还需要我自己处理,需要一些时间。 不管能否出版,博客先随着翻译进度和修改公布内容。 希望能帮助大家。 ——喜乐君Michael Wu Data Visualization Analysis: Principles and Practice of Tableau Michael Wu This book presents principles and practice of Tableau Prep Builder and Tableau Desktop systematically. With visualization analysis and Tableau computing emphasized, it introduces in detail how to understand the levels of data, how to collect and prepare data with TableauContinue reading “[Chapter-1]”Data Visualization Analysis: Principles and Practice of Tableau””

【时序分析】客户生命周期区间的分析(未完待续)

在上次客户复购率矩阵的基础上,在往前一步走,就可以变成流失率分析。对于某个月份的100名获客样本而言,复购率60%就意味着有40%的群体短暂流失或者沉睡了,当然,这个流失/沉睡是相对于单月而言,也可能间隔两个月再次消费。这就是为什么老客户在前期复购率低,而在后期复购率反而提高——有效的会员政策和营销策略的目的,即在于激活会员的有效复购,让沉睡的会员苏醒重新加入活跃群体。 来自客户的几个问题,如下: 1、how many customers have bought less 3 months, 3~6 Ms, 6~9 Ms, 9~12Ms, and more than 12 Ms in the past year? (典型的分布分析,分布区间为客户生命周期Longitude区间) 2、 top 30% performance customers and bottom 30% performance customers, 3、scatter plot to analyze customers performance by region , department or province 1、先看第一个问题,不同客户生命周期区间的分布。 视图中是对客户的技术,而生命周期来自客户层次的计算,因此这里使用fixed lod在客户层次计算每个客户的生命周期,生命周期又依赖于每个客户的首次订单日期和最后一次订单日期。 L生命周期 = { fixed 客户名称:Continue reading “【时序分析】客户生命周期区间的分析(未完待续)”

【时序+表计算】高级案例:顾客复购率矩阵分析

今天在客户哪里做了一个销售人员的转化率分析,充分地使用了高级计算的多个函数,非常具有代表性。这里使用超市数据作为模版,迫不及待地与大家分享,并计划加入到明年的新书中。 由于超市的数据没有销售人员数据,因此这里使用“客户名称”,完成客户的复购率分析。完成的问题描述如下: 各个季度的新客户,在接下来第1、第2、第3……第N季度的复购率分别是多少? ——喜乐君 源文件可以从public下载: 复购率矩阵public 1、问题分析 按照此前问题解析的方法,这个问题是典型的高级分析——同时包含了两个层次。何为高级分析,在问题的筛选器、问题层次和聚合度量中,只有有一个位置包含了另一个层次的聚合。高级的高级分析甚至会同时在多个位置引用其他层次的聚合,比如“购物篮分析”。 主视图问题的维度是“各个季度”,聚合度量是“复购率”;聚合度量依赖于另一个层次的聚合,即每个季度有消费的客户数量除以对应「获客季度」新增的所有客户。我们把每个客户的「获客季度」称之为他所在的矩阵。这有点类似于LOD15案例中的第一题“不同客户矩阵的销售”。 本文创建了一个计算字段:first od ,用来计算每个客户的首次订单日期。在视图中这个日期以连续的季度为层次聚合,统称之为“获客季度”。 1.1 单一层次:每个季度的客户数量 在《数据可视化分析:Tableau原理与实践》第十章中,我介绍了“高级分析”的四个步骤,其中入门之基础,就是先做主视图。先不考虑接下来的矩阵,就是如下的图形。 1.2 在主视图基础上,增加客户所在的矩阵 视图的维度是“季度”,我们要引用“每个客户的首次订单所在的季度”(层次是 客户,聚合是min订单日期),很明显二者是独立的层次,因此使用fixed lod计算。之后把这个字段加入视图中,作为颜色,这样就是“客户不同获客季度矩阵,在接下来各个订单日期季度消费的客户数量”。 这样,我们可以说包含了问题分析需要的两个维度(订单日期季度和客户首次订单日期),以及需要的聚合度量(客户数量)。接下来的关键是调整视图并完成计算了。 2、构建基本的矩阵 上面的颜色字段改为连续季度后,明显线条会很多(如下图)。而且由于日期默认连续,颜色也是渐变的。 数据太多,折线反而显得混乱,我们可以尝试使用数字构建的矩阵代替。构建矩阵需要把日期改为离散,可以使用智能推荐调整。于是就有了下面的矩阵分布。 这样,我们就有了数据的雏形了,不过复购率还为时尚早。这里有两个问题: a、矩阵中仅有每个订单日期季度的消费客户数量,却没有每个“获客季度”(first od)的客户数量总和。缺少这个数据,就无法计算比率; b、矩阵中的数据,仅仅在每一行上有意义,不同获客季度的客户数量不同,因此相互之间的比较就没有意义,因此需要借助每个获客季度的客户数量总和,计算每个消费日期季度的复购比率(相当于获客季度的确定性样本)。 c、每个获客季度的时间不同,接下来的消费日期季度显然也不同。如何比较2017Q3的获客客户 和 2018年Q2的获客客户,分别在接下来了四个季度的复购率,才是关键。此后横轴的绝对日期轴就需要调整。 这个转变有点难度,我们一点点来。 3、增加更高层次的聚合——每个获客季度的客户数量 上面a的问题,就是要找到每个获客季度的客户数量,这个数据,是可以由不同消费日期季度的客户数量,通过不重复的计数计算获得的。获客季度的客户数量,层次高于当前视图。可以用下图的仪表板来表示。我们需要在左侧的工作表中,增加右侧的聚合“每个获客季度的客户数量”。 高于当前视图的二次聚合,优先表计算。这里相当于以每个获客季度为分区,以订单日期季度为方向,计算客户计数的二次求和,可以用window_sum函数计算,更简单的语法是直接使用total函数。即: total( countd([客户名称])) 不过,直接在视图中添加这个计算后,由于度量默认聚合,聚合生成坐标轴,因此矩阵中增加了坐标轴。此时需要字段上右键改为“离散”,此时依然不对,因为计算的分区错误。还需要配合设置计算依据为:订单日期季度。 表计算的关键就是:谁和谁计算,对应的字段是方向。 这样,视图中就有了统一的比较依据。 当然,上面的计算,也可以直接通过“分析——合计”拖拽完成,然后把合计放在左侧,而非默认右侧。这里之所以手动完成,是因为后面计算复购率依然要用。而且,所有的参考线,不过都是表计算的化身而已。 这里增加一个简单的步骤,计算复购率,就是每个矩阵中的客户计数,除以对应获客季度的客户计数,即: countd([客户名称]) / total( countd([客户名称])) 注意,这里的计算依据依然要设置。可以用这个字段替换此前的标签,视图就有了如下的变化。 至此,复购率的计算就完成了。由于这里使用的是每个客户名称的首次订单日期,因此第一个季度自然都是100%。在业务环境中,销售人员的成交通常晚于入职日期,因此首月的转化可以视为客户消费能力和培训效果的指标。 这里最后面临一个问题,虽然可以直观的查看每个获客季度在此后各个季度的复购率,但是无法直观地纵向比较。这就涉及到如何把绝对的日期轴,通过处理更改为相对的日期轴。 4、通过表计算更改坐标轴——公公基准的日期 这个步骤对应TC10的第二个案例,非常经典了。 如何将绝对日期改为相对日期?即相对于每个获客季度的第1、第2、第3……呢?只是日期的次序转化,首先考虑使用Tableau表计算的index函数。 直接在订单日期后输入index(),数值默认生成连续的坐标轴,这里还需要改为离散,如下图。 这里的index是基于所有日期的基准,我们希望仅保留基准index,而不再显示订单日期本身。注意,只是不显示,不能移除,因为订单日期字段是index字段的依据。可以把它拖到左侧标记的“详细信息”中。 此时进入了最重要的一步——如何设置表计算的依据。默认的index只有1,因为它默认采用的相对分区方法(表、区、单元格)无法识别标记中的字段。这里,每个获客日期为独立的分区,index的依据是订单日期——第一个月就是绝对日期的相对坐标而已。因此设置index表计算的计算依据为:订单日期。如下:Continue reading “【时序+表计算】高级案例:顾客复购率矩阵分析”

【修订】Tableau 2020最最最重要的功能:从数据连接、数据混合走向数据关系

编者按:Tableau在2020年最重要的产品功能之荣耀,在我看来只能属于“数据关系”。可惜的是,大部分用户还停留在关系和混合的漩涡之中,上个月某客户30多个表的Join让我看后大为惊骇,实在不忍心如此美好的产品被用成这般模样。在新修订的《数据可视化分析:Tableau原理与实践》书中,笔者进一步阐述了从union、join到relationship的过程,并以家庭关系作喻,帮助大家形象理解。 ——Tableau 帮助人们看到并理解数据—— ——引自第四章 数据合并与数据模型(10月印刷版) 4.3 集大成者:从数据连接、数据混合走向数据关系Tableau 2020.2版本推出的数据关系,是全新的功能,而非简单的升级。为了完整地理解它的设计原理,从而真正掌握它的用法,本书还需要进一步对比数据连接与混合的深层次差异,并从“取长补短”的角度引出“数据关系”。 4.3.1 并集、连接与混合的关系与优劣 1.并集、连接与混合的关系图 在学习Tableau一年多的时间里,笔者一直未能洞察这几种合并方法的本质区别,直到有一天凌晨醒来勾勒了它们的关系图,如图4-32所示。 图4‑32 数据并集、连接和混合的先后关系对应图4-32,总结为几句话: 数据并集优先于数据连接,二者都是在数据源阶段完成的。 —连接是行级别的:并集和连接都是在行级别的匹配,但不包含任何聚合过程。 —混合是聚合级别的:数据混合是在构建完主视图之后的,视图即聚合,混合是先聚合再匹配。 —阶段:并集与连接是数据准备,数据混合是基于已有视图的增强分析。 —结果:数据准备阶段的并集与连接生成的是稳定不变的、静态的数据表(物理表),而数据混合生成的是随主视图变化和匹配字段调整而变化的、临时查询的数据表(逻辑表)。 2.并集、连接与混合的原理性对比 基于上述关系,在4.2.2节总结的基础上,再进一步理解它们的区别与联系,就轻松自得了。从几个角度展开:数据表的行级别特征、性能影响与是否具有重复可用性。角度一,多个数据表的数据结构(第2章所讲的表的层次)。 —结构完全相同:字段及描述的业务完全相同的数据用并集(Union)合并,常见于本地文件; —表层次一致:有共同字段、详细级别相同的数据表可以连接(Join)合并; —表层次不一致:数据量特别大、不同详细级别的数据,推荐使用数据混合。 角度二,性能影响。 —由于连接(Join)的表比较多,或者数据量比较大,或者多个表的层次不一致,都会导致行级别匹配查询时缓慢,增加数据库处理负担;而且不管分析时是否使用其中的部分字段,连接都会提前匹配在一起——生成一个所谓的“大宽表”等待分析。 —由于混合是在视图层次,即某个层次的聚合基础上,再相对应地匹配另一个数据源聚合查询,两次聚合查询(相当于SQL中的Group By语句查询)是独立查询,之后匹配,相比连接的行级别匹配,性能有了本质的提升,因此对服务器的性能影响最小。 角度三,视图是否具有重复可用性。—由于并集与连接是在数据准备阶段,先于视图创建的,是在行级别匹配生成的稳定不变的数据源,因此它们的结果是可以持续使用的数据源——基于这个数据源可以构建无数工作表、仪表板和故事。—由于混合是在可视化阶段的,后于视图创建的查询,是基于主视图的层次而向辅助数据源发起聚合查询,它必须依赖于视图和数据源的关系。其优势在于性能好,而由于这种查询的临时性,聚合查询的结果是不能保存的,无法反复使用的。 3.数据关系:鱼和熊掌皆得 古人言“鱼与熊掌不可兼得”,那是无可奈何,如今,技术进步创造各种不可能。有没有一种创造性的方法,避免连接(join)在处理不同表层次时的数据冗余,但要像连接确保匹配的稳定性;避免混合(Blend)的反复构建,但要保留混合的聚合性能呢?“鱼”要有,“熊掌”也不能少!这就是Tableau 2020.2版本的“数据关系”。通过数据关系建立数据模型(Data Model),不仅具有数据混合的灵活性,而且具有数据连接的稳定性。不仅支持行级别的一对一连接匹配,也支持基于行级别一对多的匹配自动聚合到同一个层次再连接。几乎是身兼连接的稳定、混合的灵活和Prep Builder的层次聚合众多优点于一身。 4.3.2 从物理表/层到逻辑表/层:数据关系的背景与特殊性 数据关系是如何以一种全新的框架,解决了连接和混合的不足,同时又集成了二者的优点,并与并集、连接融为一体的呢?回答这个问题需要先理解一个背景知识:Tableau定义了两个层次——物理层(Physical Layer)和逻辑层(Logical Layer)来理解数据匹配的两种方式。关键就在于何为物理,何为逻辑? 1.物理与逻辑的分界 何为物理,何为逻辑?先从大家熟悉的“人”与“公司”背后的设计说起。我们每一位自然人都是真实存在的、具有自由意志的生物,社会学称之为“自然人”,此为“物理”(Physical),即“固定的、不变的”;而自然人所开设的公司只是法律意义上的实体,法律称之为“法人”——法律意义上的拟人化,“法人”没有独立意志,要依赖于董事长、总经理等岗位来确保运转,甚至需要一个人来代表它,即“法定代表人”,这种存在依赖于法律、章程等人造的环境,此为“逻辑”(Logical),即本身不存在但人类赋予它逻辑上的存在意义。“逻辑”的存在既然是人为的,因此就是灵活的、多变的、不稳定的。“法人”可以按照法律设立,也可以按照法律撤销;所以每天有很多公司成立,亦有很多公司注销甚至破产。有人说“有限责任公司是人类在商业历史上最伟大的发明”[1],“有限责任公司”的出现降低了人才的创业风险,自然人仅以“有限责任”对逻辑以上存在的“公司”负责,即鼓励人才设立公司发展技术,又降低了公司失败带来的风险。可以说,在任何一个领域,理解了背后的逻辑,就更容易触碰这个领域的灵魂,“逻辑”意义上的认知是推动文明进步的重要力量,对于数据分析而言亦是如此。本书为传播Tableau技术为宗旨,方法就是探究和分享背后的逻辑意义上的设计和原理。如图4-33所示,借用类似的视角分析数据。以计算机的真实存储与可见性为基本判断,每个Excel工作表、文本文件、数据库中的每个数据表(table或称view)都是真实存在的,特别是数据库底表一旦创建几乎不会改变,此为“物理表”;而各种因视图需要临时创建的多表查询,甚至随着视图互动随时变化的查询,都是“逻辑表”。IT经常为满足分析需求而创建各种多表的SQL查询,结果就是一个逻辑表,有时候,一个逻辑表会反复使用,因此会保存下来,称之为“存储过程”(Stored Procedure),它介于物理表与逻辑表之间,但由于存储过程依然可以随着需要灵活调整,因此它本质上依然是逻辑表。 图4-33 物理与逻辑之示例 用这样的方式,就可以更好地理解之前的话:并集与连接的数据结果是物理表(Physical Table),而数据混合的结果是逻辑表。数据关系把之前分布在两个阶段的两种关系,在数据源阶段合二为一。 2.数据关系的物理层、逻辑层双层结构 数据关系如何把物理表和逻辑表合二为一呢?如图4-34所示,关系的对象可以是单一的数据表,也可以是基于并集和连接的多表合并,物理表间的关系构成逻辑层的数据匹配。 图4-34 数据关系是物理层与逻辑层的双层结构 物理层的数据关系称之为“物理关系”,逻辑层的数据关系称之为“逻辑关系”。不过,由于是在数据源阶段完成的,相对于混合的按需匹配的过度灵活,数据关系中的逻辑关系是相对稳定的,又无需像连接预先行级别合并,同时保证了性能。如果不好理解,再打个比方,说说情侣与夫妻。情侣关系是灵活的、不稳定的关系,因情生爱、乐极生悲,谁都不知道能否成为夫妻,这种关系有点像数据混合。喜结连理,成为夫妻,就变成了相对稳定的关系,这种关系通过法律予以认可,但依然是逻辑意义上的关系;柴米油盐、日久生怨,谁都不知道能否彼此终老。但是即便夫妻这种法律上的逻辑关系破裂,也不会打破基于血缘的“物理关系”,如图4-35所示。 图4-35 包含逻辑关系和物理关系的家庭关系模型 物理表永远都是物理表,物理关系永远都是物理关系。基于血缘关系,父子、父女、母子、母女关系自出生开始直系血亲不可更改,此为“物理关系”(Physical);而基于法律上的公证,养父与养子养女关系、夫妻关系,既可以基于法律建立,也可以基于法律原则而撤销,这样的关系是形式上的、法律上的关系,此为“逻辑”——我们遵守法律,实质上是认可法律背后的逻辑推理。可以把家庭视为是逻辑与物理的双层结构,Tableau的数据关系亦如此。数据关系中的逻辑关系,如同稳定家庭的夫妻关系,因为法律上的认可相对而言是长期稳定的;而混合建立的逻辑关系,如同情侣关系,基于单一视图而建立,灵活性非常差。用这样的思考理解数据关系的双层结构,就容易理解了。 3.并集、连接、关系和混合的宏观模型Continue reading “【修订】Tableau 2020最最最重要的功能:从数据连接、数据混合走向数据关系”