
“大家好,我是李启方!今天跟大家分享高阶函数用法模型的相关知识。
公众号后台回复 “2023” 即可领取最新全套数据分析资料包!”
前段时间刷到FineBI的直播间,整体体验下来,内容还是很不错的,这让老李对FineBI有了新的认识,老李还追更了几场直播。这篇文章主要分享佐罗老师在直播间谈及的数据分析中很常见的高阶函数的用法模型。
内容摘自《FineBI不只是可视化:函数体系是数据分析师的必备利器》直播中BI佐罗老师的分享:
这个链路的第一步和第二步叫做预计算和模型阶段,那在这里面我们会用到FineBI中数据编辑和数据模型这两个功能;第二阶段用绿色表示,我们要去划分模型中谁是维度、谁是度量,以及通过公式去编写计算字段;第三个阶段才是做可视化。
如果你正在去选择一个 BI 工具,我们要求这个 BI 工具的函数体系是有纵深的,这个纵深就意味着我可以在数据的编辑阶段去做事情,而不依赖于 it 人员:
我可以在划分分析尺度和元素的阶段,把它分成维度和度量;我可以去构造新的分析与元素,比如新的用来做度量的计算字段、新的用来做维度的计算字段可以自己做;我可以在做图的时候附加一些新的计算......
也就是说以上 5 个阶段我们都可以自己完全完成,而不依赖于 i t ,这也就达到了我们所说的自助商业智能分析。
有的人会觉得DEF函数太难了,这里老师给大家分享 4 种模式:
第一种模式就叫做 it 模式。什么叫 it 模式?it 人员永远想的是怎么把数据立马给你准备好,直接可视化不就结了吗?要什么自行车,要什么函数?因为 i t 人员会SQL,它可以写出非常复杂的查询,所以可以把任何的事情都转化到IT阶段来做,也就是可以完全用模式一解决所有的问题。
第二个模式,我们除了会准备一些数据拼成模型以外,还要区分维度和度量。比如帕雷托分析,当把数据拖出来后还需要进行表计算。在FineBI 里既支持表计算,还支持二次计算或再计算,在一个结果表的基础上再进行计算,会降低对于前序的准备的工作。
第三种模式的特点是强烈使用计算字段,在计算字段里面很可能要用的是def函数。那么问题来了,是不是所有的表计算都可以转化为def函数?你可以举 10 个例子,用了表计算再用def函数去解决,但是你仍然不能从数学上证明def函数一定解决表计算的问题,所以你只能说可能是那样,这个问题就变成了一个猜想。那么,假设def函数可以替换所有的表计算,那么表计算是否还需要?这个问题就更好玩了,假设刚才那个猜想是真的,那也就意味着整个表计算的函数都可以不学了。那么问题又来了,什么时候需要表计算?这些问题都值得大家去研究。
如果在某些场景里可以用表计算,也可以用def函数计算,那应该用什么呢?怎么选?原则是什么?答案就是要用效率高的,要用要比效率。
第四个模式,正好解决了刚才的问题,它实现了一种几乎完美的平衡。首先用预计算和模型来平衡需要高效的状态,先要去预计算某些东西出来。然后用度量和维度的方式去划分要分析的内容和要素,接着用计算字段去实现更多的动态性,最后在某种场景下辅以表计算完成整个一个链路。
综上所述,我们从最简单的用函数、到了选择函数的境地,可以解决很多原来不能解决的问题,最后能平衡住效率,还能平衡住工作成本以及其他问题。而在这里我们也会来到工具和函数的边界,你会发现你使用它的最大可能性。
我们为什么要做数据分析?数据分析,任何一件事物都应该加上数据分析,如果你是HR,你就应该是HR。如果你是销售,你就应该是销售。如果你是财务,你就应该是财务数据分析。
而如果你数据分析的起点在电子表格,那么必然要升级。为什么?因为电子表格的单表容量是 100 万行,而且它慢,所以我们需要一个更强大的数据处理引擎。
在 BI 的体系下,我们应该默认为分析的尺度是无限量级,因为对数据量的限制属于硬件的限制、属于节点的限制、属于公司是否可以用硬件支撑它的限制,而我们不应该去关注这个方面,我们应该关注业务本身。
第一个叫做数据处理,是静态计算。第二个叫做数据分析,是动态计算。第三个叫做图表展示,它用来做交互的。
这里我们就可以分别解释在 BI 里面大家存在的一些困惑:
第一个困惑,是不是BI就是图表可视化?不是。BI 除了能够画出图表以外,还能做交互控制,这是跟静态图表不一样的。
第二个困惑,是不是随便写公式都可以?不是。在某种场景下必须写公式,而且必须写动态公式、必须写def函数,不能够用表计算,也不能够用预计算,也就意味着你不能够编辑数据、也不能去用表计算,只能写def函数。你就来到了数据分析的动态计算阶段,这个阶段能帮你完成的事情就是保持动态性的、实现逆向依赖。
什么叫实向逆向依赖?就是我们在做数据分析的时候,很多东西是没有办法预判的,所以老板和业务人员很有可能通过界面的交互重新去拟定要分析的基础元素。而在这个时候你没有机会去干预这个过程,所以我们需要一种动态的中间过程,能够继续去适配这个过程,也就意味着界面的元素发生变化,分析本身应该立马重新进行,而不应该产生任何改变。所以我们把分析的主动权完全实现了,现场依赖给了我们的看图的人,而我们作为分析师来讲,已经预料到了这些事情它会怎么发生,我们把这些预料到的事情已经预埋在了我们的分析体系里,这就需要你一定使用高阶动态函数。
那么在FineBI里就是def函数的组合,所以大家不要急于求成,一听说这个def函数好像很厉害就立马去用它,其实并不一定,因为有的时候在你的工作中只需要把一个报告做出来就 OK 了,并不一定非要需要用到这么复杂的东西,所以这个地方要分场景。
我们在这里面举一个非常非常直观的例子。比如说同期群分析,同期群分析是将用户按照他们的共同购买特征进行分组,然后对他们首次购买的年份进行分组,对比不同首次购买年份的客户在每一年的销售额的贡献度。
这个东西它怎么实现的?它的实现就是写了一句很短很短的函数,叫做首次购买时间。
首次购买时间是我们需要动态去生成的一个维度,然后立马把它拖拽到了这个可视化上,整个过程是沉浸式的,没有去重新打开数据、也没有去依赖于 it 的小伙伴,而只是去定义了一个计算字段。
我们再来看下面的一个例子,这叫 z 曲线。这个模型非常有意思,这个东西在FineBI里面不是一堆图组合起来,而只用了FineBI里面的一个图表,没有图表的堆叠,这代表什么意思呢?这里面的红线代表的是老板预定今年的目标,红色柱子代表的是我现在每一个月的实际情况,黑色柱子代表的是我要做到的。柱子上还有一根小短线,代表的是去年同期,超过去年同期是多少;虚线代表的是预测,未来几个月还没发生的预测数据。
去年同期我们要放的是预测,所以预测的是预测的是绿色的,所以从这个角度来讲的话,也就是说如果按照这个形态发展下去,我们预测如果到了今年年末,我们将会达到绿色的那条虚线所在的位置,所以它是不能达到我们今年一开始年头定的指标的,它有一大堆儿的差距,但是它会超过我去年同期的全年。这个动态z 曲线模型,特别适合公司来追踪自己的经营业绩。
而它在FineBI里只需要一个图,我们能实现对预测增长的参数控制,以及对整体业绩做预测评估、某些局部的业绩预测评估,这里也要用到高阶函数能让我们把这个图做出来。所以在服务一个商业大佬的时候,企业管理是以目标为导向,在年初的时候公司老板就已经定好了目标,如果你能帮助老板每天刷新数据、每周刷新数据,让他随时随刻知道这一年能不能完成业绩,你说他是不是时时刻刻需要你?而这一切都是来自于你选对了数据分析工具, z 曲线模型就是很好的考察一个数据分析工具是不是可以去完成函数纵深的测试,而在FineBI里面只需要一个图就完全可以做到。
如果你对这一项技能投资感兴趣的话,一定要用免费的FineBI来下载去体验,官方有很多的教程,就可以自己自学起来了。那么这就是我跟大家来分享函数为什么重要?以及为什么更应该去理解和学习函数?为什么要脱离对 BI 工具停留在可视化的认知?我们要看到函数体系的由来,以及它在 BI 工具里的纵深可能是什么样子的。
数据分析交流群持续开放中,已有5w+数据分析师进群交流 ⛳️
扫描左侧二维码,回复"进群",一起进群讨论吧 🏃加好友还可领取“全套数据分析资料包”😎