经营复盘经常要问「这两列相不相干」:销售额和利润是否同向、单价和数量是否反向、利润跟广告费谁更相关。答案不应写回每一行明细,而应落成一张「列对 + 系数」的长表,方便排序和汇报。

如果采用传统手工方式,只能在 Excel 里对两列插 CORREL,列一多就要两两手工配对,还容易把自身与自身的 1 也写进表。过程无法沉淀为可回溯、可自动复跑的工作流,也容易误改源表。

DT-Bot 的 「相关分析」 算子专为解决此类列对列相关系数而设计。它看一张表里列和列相不相干,写出「列A、列B、系数」三列长表。源表只读。未点名结果表时,新表名是「源表名_相关分析」。本节点只出列对长表,不会把系数贴回每一行明细。

一、 核心能力与适用场景

「相关分析」算子聚焦于把列对相关系数写成三列长表,覆盖以下三大核心能力:

核心能力 解决什么业务问题 典型业务场景
两列相关 指定两列,给出一个系数。 看销售额和利润相不相干;同比例同向时系数为 1。
一组列两两相关 多列只出上三角,不含自己和自己。 销售额、数量、单价两两相关。
一列对其余列 以某一列为基准,只看它跟谁相干,不再算其余列彼此的系数。 以利润为基准,看跟销售额、数量、广告费哪些最相关。

系数靠近 1 是一起变大;靠近 −1 是一个变大一个变小;靠近 0 是没什么线性关系。

二、 边界指南:它与相近算子有何区别?

在构建数据工作流时,理解算子之间的职责边界至关重要:

比较维度 「相关分析」算子 「累计统计」算子 「NP-SQL」算子 「表格合并」算子
主要定位 列对列相关系数长表 沿日期的窗口贴列 按查询出新表,可跨表 多表按规则拼成一张
输出机制 源表只读,另写三列长表 默认就地加列,行数不变 源表只读,另写查询结果 写出合并结果表
典型动作 两列相关、两两上三角、一列对其余列 近 N 天滚动窗口(不是把系数贴回行) 两表按键对齐后的明细 先把两表对齐到同一张表
如何选择 “只要列A、列B、系数,源表别动” “要沿日期滚窗口,不是列对系数矩阵” “只要按键对齐后的明细,不要相关系数” “两张表还没对齐到同一张表”

两张表要先对齐,请用「NP-SQL」或「表格合并」。本节点不会把系数贴回每一行明细。

三、 提示词编写规范与公式

「相关分析」算子支持自然语言直接表达,建议遵循以下标准的三要素编写公式:

【目标表】 + 【哪几列:两列 / 两两 / 一列对其余】 + 【结果表名(可选)】

1. 目标表范围表达

  • 单表精准点名:例如 “销售明细” :...;
  • 默认当前流转表:未显式提及表名时,继承上一节点连线流入的数据表。

2. 哪几列

  • 两列:看 “销售额” 和 “利润” 相不相干;
  • 一组两两:看销售额、数量、单价两两相关;
  • 一列对其余:以 “利润” 为基准,看跟销售额、数量、广告费哪些最相关。

3. 结果名

  • 显式命名或未点名时用「源表名_相关分析」。结果表固定为「列A」「列B」「系数」三列,不要改写成贴回明细的宽表。
“销售明细” :看 “销售额” 和 “利润” 相不相干。

四、 核心功能与图解实战

以下结合真实企业数据场景,展示「相关分析」在不同需求下的处理效果:

场景 1:两列相关(完全同向)

业务背景:财务要确认「销售额」与「利润」是否按同一比例变动。明细三行不能被改写,答案应是一张三列长表上的一个系数。

【处理前:销售明细】

日期 销售额 利润
1日 10 4
2日 20 8
3日 30 12

【执行提示词】

“销售明细” :看 “销售额” 和 “利润” 相不相干。

【处理后:销售明细_相关分析(新长表;源表只读)】

列A 列B 系数 变更说明
销售额 利润 1 两列按同一比例变,完全同向

逻辑详解:源表三行原样只读。未点名结果表,新表名为「销售明细_相关分析」,只有「列A、列B、系数」三列。系数 1 表示一起变大;靠近 −1 是反向;靠近 0 是没什么线性关系。


场景 2:一组列两两相关(只出上三角)

业务背景:商品分析要看销售额、数量、单价两两是否同向或反向。结果不应包含「销售额 vs 销售额」这种自己和自己,也不应把 A-B 与 B-A 写成两行。

【处理前:销售明细】

销售额 数量 单价
10 2 3
20 4 2
30 6 1

【执行提示词】

“销售明细” :看销售额、数量、单价两两相关。

【处理后:销售明细_相关分析(新长表)】

列A 列B 系数 变更说明
销售额 数量 1 A 与 B 同向
销售额 单价 −1 A 与 C 反向
数量 单价 −1 B 与 C 反向

逻辑详解:三列只出上三角三行,不含自己和自己。源表只读。A、B 都和 C 反向,与原文一致。


场景 3:一列对其余列(不再算其余列彼此)

业务背景:利润分析只要「利润跟谁最相关」,不需要再算销售额和数量彼此的系数,避免矩阵膨胀干扰阅读。

【处理前:销售明细】

销售额 数量 利润 广告费
10 1 4 30
20 2 8 20
30 3 12 10

【执行提示词】

“销售明细” :以 “利润” 为基准,看跟销售额、数量、广告费哪些最相关。

【处理后:销售明细_相关分析(新长表)】

列A 列B 系数 变更说明
利润 销售额 1 与利润同向
利润 数量 1 与利润同向
利润 广告费 −1 与利润反向

逻辑详解:基准列写在「列A」,其余列写在「列B」。不会出现「销售额 vs 数量」这一行。源表四列明细只读。

五、 常见问题与操作贴士(FAQ)

Q1:为什么源表明细没有多出一列「系数」?

答:本节点只出列对长表,不会把系数贴回每一行明细。未点名时新表名是「源表名_相关分析」,列名为「列A」「列B」「系数」。

Q2:两两相关为什么没有「销售额 vs 销售额」?

答:一组列两两相关只出上三角,不含自己和自己。A-B 与 B-A 也不重复写两行。

Q3:两张表各有一列,能直接做相关吗?

答:本算子看的是一张表里的列。两张表要先对齐到同一张表,请用 「NP-SQL」 或 「表格合并」,再对本节点指定列。

Q4:系数 1、−1、靠近 0 分别怎么读?

答:靠近 1 是一起变大;靠近 −1 是一个变大一个变小;靠近 0 是没什么线性关系。场景 1 中销售额与利润按同一比例变,系数是 1。

六、 关联算子导航