今天的主题,在数据分析里经常会涉及的数据回溯!
数据回溯是一个很重要很有意思的知识点(keng)
也是数据分析处理中经常会遇到的问题。
数据回溯非常实用,处理起来有点小技巧,下面我们详细介绍下数据回溯。
数据回溯有点类似:你从现在时点回看历史事件,你当然知道过去的事情最终状态是什么。
但有时候,我只需要你返回给我截取时间切片时刻的数据。
如果我的表述还不足够清晰,那直接上个干货,分析一下:
案例分享
假设今天是2019年06月18日,
那我想回溯下历史事件2018年11月1日的时候,客户A在这一天的逾期天数的情况,假如客户每个扣款都是每个月的20日,那距离11月1日最近的上个扣款日就是2018年10月20日,但客户在12月1日才还钱。

这个真实的场景案例,就涉及数据回溯的了。
假如在11月1日来看,那客户A是逾期状态,逾期11天;
如果事件站在12月2日来看,客户当前没有逾期的;
这是个最简单的数据回溯的例子。
当然真实的业务场景比这个维度要更多点,也更复杂一下。
问题思考时间
有个问题需要思考下:
首先,我们为什么需要站在11月1日这个时点来看客户的逾期情况?
因为我们卡11月1日这点的时间窗口的,就是想用它来作为观察期来观察客户是否在接下来的时间里,逾期可能性。
在催收建模里,应该说在任何数据的模型里都这样,在回溯时点,把当前的已知当未知,然后去预测回溯时点的未来。(你知道我在说什么吗??)
可能模型开发做得久了,模型整条知识框架嵌入骨髓,希望没把你绕晕。
在催收业务里,涉及处理逾期信息的时候,就需要用到数据回溯了。
真实的业务场景
我在清洗的数据时候,卡了一个历史的时间,我需要整理对应客户的逾期情况,下面是真实的几个数据回溯的场景:
1.有坏账的,统计日期在坏账日期前的,逾期时间应该从统计日期计算到理应还款日的时点;
2.有坏账的,统计日期在坏账日期后的,逾期时间应该从坏账时点算到理应还款时点;
3.无坏账的,统计日期在还款日前,算逾期情况,应该是统计节点算至理应还款日的时点;
4.无坏账的, 统计日期在还款日后,算逾期情况, 应该是还款日算至理应还款日的时点
……
其实还有至少是有5-6种形式,后续再梳理下,发到VIP粉丝共享资料里。
我也尝试把复杂的东西解释得更简化更清楚点。后续的视频跟知识星球里把这部分业务逻辑介绍更清晰些,更详细些。
理清楚业务逻辑,才能书写正确的代码,这段宝贵的代码花了些时间才写了出来,头都炸了,不容易啊!
最后为什么有时数据回溯比较困难
1.历史的数据会不断被覆盖跟更新,新的数据总会覆盖旧的历史数据,所以当有合并这些数据时候,前一次的数据一定记得要备份更新,而且这部分数据存放量也比较大,拉起来比较困难
2.如果你是自建报表,不存在报表被覆盖的问题,但是需要每天都更新备份,这个比较考验公司服务器的内存,但是日积月累的数据总在超出你想象
3.如果是IT帮忙做的基础表,某些后期能用到的字段、标签,都要尽量想好,不然有可能后期需要时再找IT。IT可能会告知你,生产库内存不足,多早之前的数据已经删除。这时你连找都找不回来
4.最后是不同数据库之间的对接问题,这方面就比较考验公司大数据部门的功力,但是我知道某些传统的公司,不使用hive或者存储的,都是直接在oracle里建个视图的,导致类似其他数据库比如mysql的部分字段无法映射过来,也是让人崩溃。
你在平时工作中,还遇到哪些关于数据回溯的案例,欢迎跟我们分享一下。
关于数据回溯详细的代码跟数据,有没有兴趣获取学习下,或者对文章有问题,加一下官微聊聊,谢谢!