因果分析与相关

article/2025/6/8 7:25:16

在现实场景中我们常被要求回答“如果”的问题,经济学家称之为反事实。如果我现在要的不是这个价格,而是另一个价格,会发生什么?如果我不吃低脂饮食,而是吃低糖饮食会怎么样?如果你在银行工作,提供信贷,你必须弄清楚改变客户线如何改变你的收入。

在这些问题的核心是一个因果调查,我们希望知道答案,同时能够进行归因。因果问题渗透在日常问题中。回答这种问题比大多数人想象的要难。事实上,如何解释因果分析的情况还要更复杂一些。

因果分析方法中所用到的相关分析、回归分析、聚类分析,本质上不是“分析”,而是计算。通过计算,得出两列数字或者几列数字之间的关系。至于这个关系到底有没有含义,计算公式本身就不负责解释了。

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

因果分析的核心:

· identification:将因果关系从关联中分割
· estimation:计算因果关系的大小
· inference:基于统计的推断(有多大的信心结果是正确的Hypothesis testing,结果会存在多大的波动Confidence interval)

相关不是因果

凭直觉,我们便知道相关不是因果关系。在此之前我们先要清楚相关性的定义:相关分析是研究两个或两个以上处于的随机变量间的相关关系的统计分析方法,常用事物中的关联规则来表示。

相关分析仅仅是基于数据的特征进行分析,所有分析结果都是来源于数据所呈现的情况,但大部分数据并不足以支撑所有的相关性出现,同时这些相关规则也仅是因果关系中的一部分,并不能够代替因果。

相关性体现了两个事物之间相互关联的程度。比如房屋面积越大,房价就越高,改变其中一个变量(房屋面积)会引发另一个变量(房屋的价格)朝着同样的方向变化,这两个变量就存在正相关性。反之,如果一个变量的改变会让另一个变量朝着相反方向变化,就表明它们有负相关性,比如海拔高度和大气压的关系。

不过,数据之间通常只能呈现关联性,而很难直接体现因果性。人工智能就是一个典型代表,计算机只能发现数据之间的联系,它不负责解释原因。

相关推导因果

相关性和因果性之间的联系,从统计学教材到大数据著作,都有着广泛的探讨,甚至争议不断。迈尔舍恩伯格在《大数据时代》里说,“要相关,不要因果”,在大数据时代,有相关,就够了。

而周涛则在《为数据而生》一书中说,放弃对因果关系的追寻,就是人类的自我堕落,相关性分析是寻找因果关系的利器,能够为因果关系的发现提供一点思路。

《为数据而生》

在大数据分析领域又存在着这样的分析方法:相关分析法,常用于对总体中确实具有联系的标志进行分析,其主体是对总体中具有因果关系标志的分析。但两个变量之间存在相关关系,不一定说明两者之间存在着因果关系。因果关系,是指一个变量的存在一定会导致另一个变量的产生。而相关性是统计学上的一个概念,是指一个变量变化的同时,另一个因素也会伴随发生变化,但不能确定一个变量变化是不是另一个变量变化的原因。

比如天气冷和下雪通常一起发生,说明两者有很强的相关性,但不能肯定是谁导致了谁,所以不确定两者是够有因果关系。

因果有前因有后果,显然不能通过已知的关联性直接看到是事物间的因果关系,但一定是基于关联性之下去推导因果关系的,相关性——>因果性的跨越一定的需要认知参与的。

如何实现因果

相关分析为发现因果关系提供了基础。从大量数据集中发现项集之间的关联性或相关性。若两个或多个变量的取值之间存在某种规律性,就可以挖掘出关联规则。由关联规则结合时序便可推断出因果关系。

而在关联规则的挖掘中图数据的关联分析能发现大数据中的相互依赖关系和关联关系使用图理论完成关联关系挖掘,相比机器学习理论拥有可解释的特性。 对现实世界的规则有更好的 亲和性,更容易寻找到数据中潜在的规律。

在得到大量规则后,通过发现他们之间的时间顺序来筛选关联规则,在这些规则中归因、求果。

这种方式是行业中大部分数据分析、数据挖掘系统所选择的方向,在关联规则中进行因果分析,较为成熟的产品是基于钓鱼城引擎研发的关河因果数据分析系统:

新型数据分析产品_因果分析_关河因果【官网】​yinguo.grandhoo.com/home正在上传…重新上传取消

想要实现真正的因果分析还有很长的一段路要走,就相当当年的神经网络的历程一样,经过多次的推翻与重塑。因果分析的研究是会一直进行下去的。


http://chatgpt.dhexx.cn/article/xZn5lKKx.shtml

相关文章

因果分析.科学实验评估

目录 1. A/B Test原理 2. 实验分组划分 3.实验指标设计 4. 实验效果评估 5.离线指标测算 6.实验结果分析 不是每个想法都是好的,大部分想法都是不好的。 在互联网背景下,快速试错已经成为产品持续迭代的必备能力。借鉴传统行业(医学等)成熟的实验…

因果关系分析方法

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

因果分析来了!

我是小z,也可以叫我阿粥~ 本文的分享主题为观测数据因果推断,希望通过本文可以让大家对观测数据因果推断有一个整体的了解,明晰当前观测数据因果推断的困境和主要处理方法,以及在特定问题中的一套通用解法。 具体将围绕以下3部分展…

因果分析:原理、方法论、应用

什么是因果分析? 因果分析(Causal Analysis)是分析彼此之间的因果关系。 因果推断(Causal Inference)是基于原因推结果,是因果分析的一部分。 因果分析是数据分析、数据科学中重要的方法,广泛应用于A/B实验,异常分析&#xff0…

C语言有负号的除法以及求余运算规则

举例说明 abc…d 1753…2 被除数除数商…余数 有负号的运算规则 求: -17除以5的商和余数17除以-5的商和余数-17除以-5的商和余数 答: abc…d 用a代表被除数,用b代表除数,用c代表商,用d代表余数. c的数值是|a|/|b|,c是正号还是负号由a和b的负号数量决定;d的正负号和a相同…

C语言取余问题

如果 % 左边的操作数是正数&#xff0c;则取余的结果为正数或零&#xff1b;如果 % 左边的操作数是负数&#xff0c;则取余的结果为负数或零。 例如代码运行如下&#xff1a; 主代码&#xff1a; #include<iostream> using namespace std; int main() {cout<<(13…

c语言怎么对大数求余,C语言:大数取余

大数取余数(数组) 今天做学校的oj时遇到一题&#xff0c;问题可见一下截图&#xff1a; 查遍各大论坛&#xff0c;都没有遇到合适的方法&#xff0c;普通方法不可用&#xff0c;要采用数组的形式。 被除数超过long long类型&#xff0c;不能采用常规思路&#xff0c;否则会出现…

C语言--求余问题

C在线工具 | 菜鸟工具 在c语言中&#xff0c;如果 a为一个四位数 那么a%1000/100是啥&#xff1f; 假设a的值为1345&#xff0c;那么当计算a%1000时&#xff0c;值为345 #include <stdio.h>int main() {int a 1345;int b a%1000;printf("%d",b); } 而345/…

软件开发流程图

文件下载https://download.csdn.net/download/weixin_43250197/12243113

嵌入式软件开发的特点和流程

嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件&#xff0c;被广泛应用于工业控制、消费电子、医疗、通信等领域&#xff0c;我们常见的手机、电脑、数码相机等都运用到了嵌入式软件技术。为了确保嵌入式系统的运行&#xff0c;嵌入式软件迅速崛起&#xff0c;在整个软件…

一套完整的软件开发流程是怎样的?

​做什么事都需要一个流程&#xff0c;软件开发也不例外。 那么&#xff0c;一个软件从无到有到底是怎么开发的&#xff1f;一个软件产品的结果为什么是这样&#xff1f;为什么开发的速度不能再快一点。为什么程序员大多秃顶&#xff1f;他们有那么忙吗&#xff1f;完整的软件…

汽车软件V流程开发

1.系统需求分析 调研并输出系统需求文档 2.系统架构设计 通常和第一步并行&#xff0c;并在系统需求文档中体现。第1和第2步都是系统层级的&#xff0c;下面应该分软件和硬件两个分支&#xff0c;这里我们只关注软件这个分支。 3.软件需求分析 输出软件需求文档&#xff0…

详解自动驾驶安全软件开发流程

1 引言 自动驾驶汽车开发越来越重视性能、质量和性价比&#xff0c;自动驾驶口碑成为新技术应用取得市场成功的关键&#xff0c;而口碑的建立依赖于相关软件开发流程、周期、时间和质量。一家汽车企业只有拥有或者其软件开发供应商具有成熟的软件开发团队、软件开发流程、可复用…

软件开发流程:需求评审流程

1 常规需求 图1 常规需求评审流程 2 非常规需求 图2 非常规需求评审流程 3 紧急需求 图3 紧急需求评审流程

软件开发流程知识概括

软件开发流程知识概括 软件开发流程简述开发流程详解软件开发流程涉及的图软件开发总结 软件开发流程简述 研发流程简述&#xff1a; 研发流程详解&#xff1a; 需求提出&#xff1a; ①这个环节主要是产品爸爸给我们提需求&#xff0c;每个需求都是他们从用户&#xff0c…

软件开发的一般流程是什么?

软件开发流程分为: 需求确认——概要设计——详细设计——编码——单元测试——集成测试——系统测试——维护 软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软…

python----列表操作

1. append(添加&#xff0c;添加的类型不变) a [1, 2] b [3, 4] c a.append(b) print(a--->, a) print(b--->, b) print(c--->, c)2. extend(末尾添加&#xff0c;会合并成一个列表) a [1, 2] b [3, 4] c a.extend(b) print(a--->, a) print(b--->, b) …

python——列表基础操作

1.列表的格式 列表的相关操作&#xff1a; 2.添加append()列表里面包含列表: extend和append的区别&#xff1a;append的最终列表中添加的是一个元素&#xff0c;extend的最终列表中显示的是追加的多个元素 第二种方式extend(): 指定对应索引新增数据insert&#xff1a; &am…

在python中、列表中的元素可以是_Python列表操作集合

对于python列表里元素的操作主要分为以下几个方面&#xff1a; 1、向列表里面加元素&#xff1b; 向python列表里面添加元素主要有三种方法&#xff1a; &#xff08;1&#xff09;append&#xff08;&#xff09; append()对于列表的操作主要实现的是在特定的列表最后添加…

python使用下标可以修改列表的元素值吗_Python列表操作最全面总结

1.列表添加元素 列表中可以使用append、insert、extend方法实现元素的添加。 append会把新元素添加到列表末尾 A = ["a", "b", "c"] A.append("d") print(A) 输出 [a, b, c, d] insert(index, object) 在指定位置index前插入元素objec…