因果关系分析方法

因果关系推断,可以说是数据分析领域最难的问题之一,争吵很多年也没有定论。经常同学们被问到:“到底这个问题的原因是什么!”都会觉得分析起来很挠头,今天我们系统讲解下。

1 常见方法1:拆解法

最常见的用来求因果关系的方法,是拆解法。把一个结果指标,从多个角度拆解,找到影响它的原因。举例:昨天有4个推广渠道,一共获客100,今天只获客80,问为啥获客少了。

拆解法做法(如上图):

1、把总获客数,按四个渠道拆解,发现A渠道获客最少。得到结论1:因为A渠道少了,所以总获客少了。

2、把A渠道的获客,按获客流程拆解,拆解为展示页-落地页-转化三步,发现是转化环节少了,得到结论:因为A渠道的转化环节出了问题,所以总获客少了。

3、小结:因为A渠道转化环节出问题,这是获客少的原因。

看起来回答的很完美,原因找到了!

可这种答法经不起业务部门再问一句:那为什么A转化差了呢?

l 我也没改文案呀?

l 投放经费也没少呀?

l 前后只差1天,为啥差异这么大?

l 为啥只有A变差了,其他又不变呢?

一个都回答不上来……

所谓的拆解法,本质上只是通过细分,锁定了问题发生的位置。并不能找到元凶。所以常常被用来发现问题,而不是解释问题(如下图)。

2 常见方法2:相关系数法

统计学里有相关分析的方法。而且有个看起来很复杂公式(如下图)

很多同学一看就来劲了!于是把两个指标带进去算相关系数,而且还到处百度

● 相关系数0.99算不算大

● 相关系数0.9算不算大

● 相关系数0.8算不算大

● 相关系数0.7算不算大

● 反正相关系数足够大,就算是相关了!

这次有一个复杂的公式做支撑,应该很科学了吧

这么搞,很容易搞出来统计学领域经典的“龙脉梗”

1、中国GDP年年涨

2、我家门前的树年年涨

3、把两个数据带进去,算出相关系数0.99

4、所以我家门前的树是中国的龙脉!

相关分析、回归分析、聚类分析,本质上不是“分析”,而是计算。通过计算,得出两列数字或者几列数字之间的关系。至于这个关系到底有没有含义,计算公式本身就不负责解释了。因此套到现实中经常搞出来各种奇葩结果。

所有的统计学方法都有类似的问题,只能解释数据本身的关系,解释不了现实中的关系。更本质地看:是否所有业务行为,外部因素都能量化?完全不是。比如消费者对品牌的信任,比如产品体验好坏,比如文案感受,是很难量化到一个稳定、可靠的指标的。因此,用统计学方法,可以大范围地筛选过滤指标,但是很难推理出真实因果。

3 常见方法3:趋势分析法

既然复杂的方法不好用,有没有简单的办法?有!比如基于最朴素的感觉:既然A会引发B,那么A产生了B就该产生,A结束了,B会慢慢结束(或者B死掉)。人们就此总结出了因果推断四大原则。

四大原则:

1、原因发生在结果以前

2、原因发生以后,结果发生

3、原因持续期间,结果持续

4、原因消失以后,结果消失

这样的推断,符合人们的直观逻辑。更重要的是需要的数据少!只要一个指标走势就能看图说话了。所以非常好用。

BUT,这么干有个很大的问题,就是无法剔除杂糅因素,只能观察到影响最大的那个因素。更无法看到隐藏在背后的深层因素。比如观察外因的时候,只能观察到天气、限行这种明显的因素;观察内因的时候,只能观察到降价这种因素。其他小因素根本观察不到。

因此,这种方法常常用来做排除法,剔除不合理的借口。比如:“你说天气不好业绩就不好,那为啥人家天气差照样有业绩!”至于到底推动业绩的因素是啥?不知道,还得用其他方法分析。

4 常见方法4:控制变量法

想剔除杂糅因素,最好的办法就是分组测试,把样本塞到密封箱子里,然后一组组地测试效果。比如我想测用户对不同文案响应率,理论上,我应该用同样的商品、价格、转化位置,选同一批人,同一个渠道,然后可以开测了:

但是测试手段也有问题:

1、很难找到一模一样的两组人,完全剔除杂糅因素。

2、很难穷尽目标用户类型,因此测来测去可能都是同一类人的意见。

3、测试环境很难完全封闭,特别是要测试的是大促销、新品这种热门话题。4、很难在合法合规的情况下,完全搞差异化方案,涉嫌价格歧视与欺骗消费者,《反垄断法》和工商局都不是吃干饭的。

5、消费者永远是趋利的,他们会自己想办法突破测试屏蔽,最后选优惠最大的方案。

导致的结果,就是这种测试,适合即时反馈的+封闭信息渠道+个性化推送的场景。是滴,就是类似打车软件、短视频软件的场景。稍微反馈速度慢一点,比如电商平台搞大数据杀熟,很容易在消费者换几个手机号登陆比价的时候被发现。最后还是哪个便宜买哪个……

5 为什么常见方法不管用

综上,我们会发现,在因果推断领域,几乎没有一种方法完全可靠,包括很多经典的统计学方法和科学实验方法。为什么会这样?

因为本质上,企业经营是个社会科学问题,不是自然科学问题。自然科学领域,是有一些物理、化学、数学等基础原理支撑的,这些原理是稳定、科学、可量化的,因此可以通过数据统计+科学实验,慢慢地发现背后的自然规律。社会科学问题完全不是这样!社会科学问题本身就是多因素共同影响,容易被人操控改变,感性且冲动的。因此在社会科学领域,很难直接套用自然科学的方法解决问题。

再加上,企业里上班的人,都是有立场、有态度、有企图的。当他们张嘴问:“这个问题到底是因为什么产生的?”或者问“这个功劳到底是因为什么出来的?”的时候,他们的潜意识里装的就是:功劳是我的,多少得蹭一点,锅都是别人的,硬甩也得甩出去。因此即使有靠谱的方法,大家也不见得就愿意用,即使有结论,大家也会找其他理由搪塞。

所以面对因果推断的时候,要认真区分问题场景。如果涉及:设计、生产、研发等客观性高一些的部门,可以用各种科学方法认真推断。如果涉及:营销、运营、产品、销售这些主观性高的部门,可以参考陈老师在【数据分析终极一问:多影响因素下,到底咋归因?!】文章里教的方法,慢慢讨论。总之,结合商业场景,具体问题具体分析,才是解决问题之道。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多元非线性Granger因果关系分析是指在多变量时间序列数据中,利用非线性模型来分析变量之间的因果关系。该方法可以帮助我们理解变量之间的相互作用,并且可以发现线性方法可能无法捕捉到的非线性关系。 进行多元非线性Granger因果关系分析需要使用特定的代码库或软件包,例如Python中的statsmodels或R语言中的vars和Granger包。 在Python中,利用statsmodels库中的VAR模型可以进行多元时间序列分析和Granger因果关系分析。首先,需要导入相关库和数据集,然后使用VAR模型拟合数据,最后通过Granger因果检验来分析变量之间的因果关系。示例代码如下: ``` import numpy as np from statsmodels.tsa.api import VAR from statsmodels.tsa.stattools import grangercausalitytests # 导入数据集 data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 建立VAR模型 model = VAR(data) # 拟合数据 result = model.fit() # 进行Granger因果检验 granger_results = grangercausalitytests(data, maxlag=2) # 打印结果 for lag in range(1, 3): print("Lag:", lag) print("Granger Causality:", granger_results[lag][0]['ssr_ftest']) ``` 上述代码中,我们使用一个简单的3×3的数据矩阵来进行演示。首先,我们建立VAR模型并拟合数据,然后通过设置maxlag参数选择Granger因果检验的滞后阶数。最后,我们打印出每个滞后阶数下的Granger因果检验结果。 通过这个代码示例,我们可以分析变量之间的因果关系,从而了解它们之间的影响和交互作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值