经营复盘经常要问「这两列相不相干」:销售额和利润是否同向、单价和数量是否反向、利润跟广告费谁更相关。答案不应写回每一行明细,而应落成一张「列对 + 系数」的长表,方便排序和汇报。
如果采用传统手工方式,只能在 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。
六、 关联算子导航
- 若需沿日期做窗口计算,而不是列对系数长表:请参考 数据统计 · 累计统计
- 若需两表按已确认关系对齐后再取数:请参考 数据统计 · NP-SQL
- 若需把两张表先拼成一张再分析:请参考 数据处理 · 表格合并
- 欲下载真实数据表格亲自动手实测:请查阅 数据案例 · 相关分析案例