math-skill 1.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en-US.md +313 -0
- package/README.md +313 -278
- package/agents/math-critic.en.md +235 -0
- package/agents/math-critic.md +237 -203
- package/commands/abstraction.md +11 -34
- package/commands/algorithmic-thinking.md +11 -34
- package/commands/ask.md +18 -21
- package/commands/axiomatization.md +11 -34
- package/commands/causal-inference.md +11 -34
- package/commands/discrete-combinatorial.md +11 -34
- package/commands/game-theory.md +11 -34
- package/commands/induction-analogy.md +11 -34
- package/commands/information-theory.md +11 -34
- package/commands/logic-deduction.md +11 -34
- package/commands/modeling.md +11 -37
- package/commands/optimization.md +11 -33
- package/commands/probability-statistics.md +11 -36
- package/commands/symmetry-invariance.md +11 -34
- package/commands/topological-thinking.md +11 -33
- package/commands/transformation.md +11 -33
- package/knowledge-base/overview.en.md +228 -0
- package/knowledge-base/overview.md +230 -230
- package/package.json +73 -59
- package/references/agentic-workflow.en.md +53 -0
- package/references/agentic-workflow.md +55 -0
- package/references/books/abstract-algebra.md +124 -0
- package/references/books/algebraic-geometry-rising-sea.md +171 -0
- package/references/books/differential-geometry.md +140 -0
- package/references/books/matrix-analysis.md +146 -0
- package/references/books/micro-lie-theory.md +116 -0
- package/references/books/optimization-ml.md +164 -0
- package/references/books/smooth-manifolds.md +105 -0
- package/references/gpu-friendly-math.en.md +65 -0
- package/references/gpu-friendly-math.md +67 -0
- package/references/inspiration.en.md +113 -0
- package/{docs → references}/inspiration.md +2 -0
- package/skills/abstraction/SKILL.en.md +117 -0
- package/skills/abstraction/SKILL.md +121 -264
- package/skills/abstraction/original-texts.en.md +163 -0
- package/skills/algorithmic-thinking/SKILL.en.md +132 -0
- package/skills/algorithmic-thinking/SKILL.md +138 -371
- package/skills/algorithmic-thinking/original-texts.en.md +253 -0
- package/skills/axiomatization/SKILL.en.md +144 -0
- package/skills/axiomatization/SKILL.md +151 -213
- package/skills/axiomatization/original-texts.en.md +154 -0
- package/skills/causal-inference/SKILL.en.md +147 -0
- package/skills/causal-inference/SKILL.md +151 -374
- package/skills/causal-inference/original-texts.en.md +136 -0
- package/skills/discrete-combinatorial/SKILL.en.md +124 -0
- package/skills/discrete-combinatorial/SKILL.md +131 -286
- package/skills/discrete-combinatorial/original-texts.en.md +184 -0
- package/skills/game-theory/SKILL.en.md +117 -0
- package/skills/game-theory/SKILL.md +123 -318
- package/skills/game-theory/original-texts.en.md +131 -0
- package/skills/induction-analogy/SKILL.en.md +145 -0
- package/skills/induction-analogy/SKILL.md +152 -310
- package/skills/induction-analogy/original-texts.en.md +140 -0
- package/skills/information-theory/SKILL.en.md +134 -0
- package/skills/information-theory/SKILL.md +140 -242
- package/skills/information-theory/original-texts.en.md +127 -0
- package/skills/logic-deduction/SKILL.en.md +130 -0
- package/skills/logic-deduction/SKILL.md +135 -280
- package/skills/logic-deduction/original-texts.en.md +160 -0
- package/skills/math-research-activator/SKILL.en.md +132 -0
- package/skills/math-research-activator/SKILL.md +136 -0
- package/skills/math-research-activator/original-texts.en.md +105 -0
- package/skills/{meta-selector → math-research-activator}/original-texts.md +104 -104
- package/skills/modeling/SKILL.en.md +135 -0
- package/skills/modeling/SKILL.md +139 -318
- package/skills/modeling/original-texts.en.md +162 -0
- package/skills/optimization/SKILL.en.md +129 -0
- package/skills/optimization/SKILL.md +135 -292
- package/skills/optimization/original-texts.en.md +167 -0
- package/skills/probability-statistics/SKILL.en.md +146 -0
- package/skills/probability-statistics/SKILL.md +151 -312
- package/skills/probability-statistics/original-texts.en.md +191 -0
- package/skills/symmetry-invariance/SKILL.en.md +135 -0
- package/skills/symmetry-invariance/SKILL.md +139 -358
- package/skills/symmetry-invariance/original-texts.en.md +206 -0
- package/skills/topological-thinking/SKILL.en.md +124 -0
- package/skills/topological-thinking/SKILL.md +128 -273
- package/skills/topological-thinking/original-texts.en.md +134 -0
- package/skills/transformation/SKILL.en.md +120 -0
- package/skills/transformation/SKILL.md +124 -264
- package/skills/transformation/original-texts.en.md +204 -0
- package/docs/CLAUDE.md +0 -187
- package/skills/meta-selector/SKILL.md +0 -188
|
@@ -1,374 +1,151 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: causal-inference
|
|
3
|
-
description: |
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# 🔗 因果推断思想
|
|
11
|
-
|
|
12
|
-
> "相关不等于因果——但因果可以理清。关键区别:'看到X时Y如何'≠'如果做了X会怎样'"
|
|
13
|
-
> "Correlation is not causation — but causation can be sorted out. Key distinction: 'how is Y when we see X' ≠ 'what if we did X'"
|
|
14
|
-
>
|
|
15
|
-
> —— 因果推断、结构因果模型、反事实推理
|
|
16
|
-
> —— Causal Inference, Structural Causal Models, Counterfactual Reasoning
|
|
17
|
-
|
|
18
|
-
## 核心原则 / Core Principle
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
**Causal inference answers questions beyond
|
|
23
|
-
|
|
24
|
-
> **数学形式化 / Mathematical Formalization
|
|
25
|
-
>
|
|
26
|
-
> Pearl 因果层级 /
|
|
27
|
-
>
|
|
28
|
-
> - **Level
|
|
29
|
-
>
|
|
30
|
-
>
|
|
31
|
-
>
|
|
32
|
-
>
|
|
33
|
-
>
|
|
34
|
-
>
|
|
35
|
-
>
|
|
36
|
-
>
|
|
37
|
-
>
|
|
38
|
-
>
|
|
39
|
-
>
|
|
40
|
-
>
|
|
41
|
-
>
|
|
42
|
-
> P(y|do(x)) =
|
|
43
|
-
>
|
|
44
|
-
>
|
|
45
|
-
>
|
|
46
|
-
>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
#### 生活模式 / Life Mode
|
|
153
|
-
|
|
154
|
-
有没有一个隐藏因素同时影响了"原因"和"结果"?——比如"喝咖啡的人更健康"可能是因为喝咖啡的人本身更注重健康习惯,而不是咖啡让人健康
|
|
155
|
-
|
|
156
|
-
Is there a hidden factor that influences both the "cause" and the "outcome"? — e.g., "coffee drinkers are healthier" might be because coffee drinkers tend to have healthier habits, not because coffee makes you healthy
|
|
157
|
-
|
|
158
|
-
- 检查:有没有一个你没考虑到的因素,同时影响了两边?
|
|
159
|
-
- 常见混淆:健康习惯与健康结果、教育与收入、年龄与多种结果
|
|
160
|
-
- 混淆的特征:它同时出现在"原因"和"结果"的上游
|
|
161
|
-
|
|
162
|
-
#### 共通要点 / Shared Essentials
|
|
163
|
-
|
|
164
|
-
混淆变量的本质是创造虚假关联——不管形式化与否,识别"同时影响X和Y的因素"是因果推理的核心步骤。
|
|
165
|
-
|
|
166
|
-
The essence of confounders is creating spurious associations — whether formalized or not, identifying "factors that simultaneously influence X and Y" is the core step of causal reasoning.
|
|
167
|
-
|
|
168
|
-
### 第三步:选择识别策略 / Choose Identification Strategy
|
|
169
|
-
|
|
170
|
-
#### 科研模式 / Research Mode
|
|
171
|
-
|
|
172
|
-
根据混淆变量的可观测性,选择从观测数据计算 P(y|do(x)) 的策略:
|
|
173
|
-
|
|
174
|
-
**后门准则 / Back-door Criterion**:
|
|
175
|
-
若存在变量集 S 使得 (1) S 阻断 X→Y 的所有后门路径,(2) S 不包含 X 的后代,则:
|
|
176
|
-
P(y|do(x)) = Σ_s P(y|x,S=s)·P(S=s)
|
|
177
|
-
|
|
178
|
-
**前门准则 / Front-door Criterion**:
|
|
179
|
-
若混淆变量不可观测但中介变量 M 可观测,且 (1) X→M 且 X 到 M 无后门路径,(2) M→Y 且 X 到 Y 的所有后门路径都被 M 阻断,则:
|
|
180
|
-
P(y|do(x)) = Σ_m P(y|do(m))·P(m|do(x)) = Σ_m Σ_z P(y|m,z)·P(z)·P(m|x)
|
|
181
|
-
|
|
182
|
-
**do-演算 / Do-calculus**:
|
|
183
|
-
三条规则允许在可观测量间转换 do-表达式(详见核心原则中的数学形式化块)
|
|
184
|
-
|
|
185
|
-
#### 生活模式 / Life Mode
|
|
186
|
-
|
|
187
|
-
如何排除混淆因素的干扰?——能不能找到一个"纯净"的比较组(只差别在X上,其他条件完全一样)?
|
|
188
|
-
|
|
189
|
-
How to eliminate the influence of confounding factors? — can we find a "clean" comparison group (different only in X, identical in all other conditions)?
|
|
190
|
-
|
|
191
|
-
- 最理想的比较:两组人除了"是否做了X"之外完全一样——如果结果不同,才能说X导致了差异
|
|
192
|
-
- 如果找不到"纯净"比较组,至少尽量控制已知混淆因素——让比较更公平
|
|
193
|
-
- 注意:观察性数据总有遗漏混淆的风险,真正的因果验证需要实验
|
|
194
|
-
|
|
195
|
-
#### 共通要点 / Shared Essentials
|
|
196
|
-
|
|
197
|
-
识别策略的本质是"如何从混杂的数据中提取纯净的因果信号"——形式化工具和常识策略都在解决同一个问题。
|
|
198
|
-
|
|
199
|
-
The essence of identification strategy is "how to extract a clean causal signal from mixed data" — formal tools and common-sense strategies both solve the same problem.
|
|
200
|
-
|
|
201
|
-
### 第四步:计算干预效果 / Compute Intervention Effects
|
|
202
|
-
|
|
203
|
-
#### 科研模式 / Research Mode
|
|
204
|
-
|
|
205
|
-
使用调整公式计算 P(y|do(x)),并与观察性 P(y|x) 对比以衡量混淆偏差。
|
|
206
|
-
|
|
207
|
-
- **后门调整**:P(y|do(x)) = Σ_z P(y|x,z)·P(z)——对混淆变量 Z 的所有取值加权平均
|
|
208
|
-
- **混淆偏差度量**:|P(y|do(x)) - P(y|x)|——偏差越大,说明混淆越严重
|
|
209
|
-
- **因果效应**:ATE = E[Y|do(X=1)] - E[Y|do(X=0)]——平均处理效应
|
|
210
|
-
|
|
211
|
-
**关键问题**:P(y|do(x)) 与 P(y|x) 是否显著不同?若不同,说明观察性分析有混淆偏差;若相同,说明没有显著混淆(但可能是巧合)。
|
|
212
|
-
|
|
213
|
-
#### 生活模式 / Life Mode
|
|
214
|
-
|
|
215
|
-
如果我真的做了X(而不是刚好看到X),结果会怎样?——"看到成功人士早起"≠"早起就能成功"
|
|
216
|
-
|
|
217
|
-
What would happen if I actually did X (rather than just seeing X)? — "seeing successful people wake up early" ≠ "waking up early leads to success"
|
|
218
|
-
|
|
219
|
-
- 区分两种问题:"看到X的人Y如何?"和"做了X之后Y如何?"
|
|
220
|
-
- 第一个问题只是观察——可能有混淆;第二个才是因果——需要排除混淆
|
|
221
|
-
- 实际判断时:问"如果我主动做了X,结果和只是看到别人做X时一样吗?"
|
|
222
|
-
|
|
223
|
-
#### 共通要点 / Shared Essentials
|
|
224
|
-
|
|
225
|
-
干预效果的核心是"做了"与"看到"的区别——无论是 P(y|do(x)) 还是日常直觉,都要区分主动干预与被动观察。
|
|
226
|
-
|
|
227
|
-
The core of intervention effects is the distinction between "doing" and "seeing" — whether P(y|do(x)) or daily intuition, we must separate active intervention from passive observation.
|
|
228
|
-
|
|
229
|
-
### 第五步:反事实分析 / Counterfactual Analysis
|
|
230
|
-
|
|
231
|
-
#### 科研模式 / Research Mode
|
|
232
|
-
|
|
233
|
-
对个体层面进行回顾性推理:如果 X 是 x₁ 而不是 x₀,Y 会怎样?
|
|
234
|
-
|
|
235
|
-
- **结构因果模型 / SCM**:Y = f(X, Z, U),其中 U 为外生变量(不可观测的个体特征)
|
|
236
|
-
- **反事实计算**:给定观测值 (X=x₀, Y=y₀, Z=z₀),反事实 Y_{x₁} = f(x₁, z₀, u₀)
|
|
237
|
-
- **个体因果效应**:Y_{x₁} - Y_{x₀}——个体层面的因果效应,需要结构方程
|
|
238
|
-
|
|
239
|
-
**关键问题**:你有足够的信息来区分个体差异吗?反事实推理依赖结构方程的具体形式,对模型假设极为敏感。
|
|
240
|
-
|
|
241
|
-
#### 生活模式 / Life Mode
|
|
242
|
-
|
|
243
|
-
如果当初选了另一条路,现在会怎样?——反事实思考帮助理解因果关系,但要注意:我们永远无法真正验证"如果当初怎样"
|
|
244
|
-
|
|
245
|
-
What if I had chosen a different path? — counterfactual thinking helps understand causation, but note: we can never truly verify "what if things had been different"
|
|
246
|
-
|
|
247
|
-
- 反事实思考的价值:帮助理解"什么导致了什么"——如果去掉X,Y还会发生吗?
|
|
248
|
-
- 反事实思考的局限:我们永远无法回到过去验证——只能基于现有信息推断
|
|
249
|
-
- 避免过度依赖反事实:它帮助理解因果,但不能作为确定性的证据
|
|
250
|
-
|
|
251
|
-
#### 共通要点 / Shared Essentials
|
|
252
|
-
|
|
253
|
-
反事实推理是因果理解的最深层——它追问"如果不是这样,会怎样",无论是形式化 SCM 还是日常反思,都需要承认其不可验证性。
|
|
254
|
-
|
|
255
|
-
Counterfactual reasoning is the deepest level of causal understanding — it asks "what if it had been otherwise," whether formal SCM or daily reflection, we must acknowledge its unverifiability.
|
|
256
|
-
|
|
257
|
-
### 第六步:实验设计验证 / Experimental Design for Verification
|
|
258
|
-
|
|
259
|
-
#### 科研模式 / Research Mode
|
|
260
|
-
|
|
261
|
-
**RCT 作为黄金标准 / RCT as Gold Standard**:
|
|
262
|
-
- 随机化切断所有指向 X 的因果箭头——随机分配使处理组与对照组在所有变量(已知与未知)上期望相等
|
|
263
|
-
- 随机化直接阻断所有后门路径,无需识别混淆变量
|
|
264
|
-
- ATE = E[Y|随机分配X=1] - E[Y|随机分配X=0] = E[Y|do(X=1)] - E[Y|do(X=0)]
|
|
265
|
-
|
|
266
|
-
**当 RCT 不可能时 / When RCT is Impossible**:
|
|
267
|
-
|
|
268
|
-
- **自然实验 / Natural Experiments**:利用自然发生的随机化事件(如地震、政策变更)作为"准随机化"
|
|
269
|
-
- **工具变量 / Instrumental Variables (IV)**:变量 V 是工具变量,若 V→X 且 V 到 Y 无直接路径、V 与 Y 无共同原因——利用 V 创造的 X 的变异来估计因果效应
|
|
270
|
-
- **双重差分 / Difference-in-Differences (DD)**:比较处理组与对照组在干预前后差异的变化——DD = (Y₁^处理后 - Y₁^处理前) - (Y₀^处理后 - Y₀^处理前)
|
|
271
|
-
|
|
272
|
-
#### 生活模式 / Life Mode
|
|
273
|
-
|
|
274
|
-
如何验证因果关系?最可靠的方法是做实验——把人随机分成两组,一组做X一组不做,看结果是否不同。如果不能做实验,找自然发生的对比情境
|
|
275
|
-
|
|
276
|
-
How to verify causal relationships? The most reliable method is experimentation — randomly divide people into two groups, one does X and one doesn't, see if results differ. If experiments aren't possible, find naturally occurring comparison scenarios
|
|
277
|
-
|
|
278
|
-
- 最可靠:随机实验——两组人完全一样,唯一的差别是"是否做了X"
|
|
279
|
-
- 退而求其次:自然对比——找到恰好相似但X不同的情境进行比较
|
|
280
|
-
- 日常可用:小规模试错——自己尝试做/不做X,观察结果变化(但要注意其他变量也在变化)
|
|
281
|
-
|
|
282
|
-
#### 共通要点 / Shared Essentials
|
|
283
|
-
|
|
284
|
-
验证因果的核心是"随机化"或"等价比较"——无论是 RCT 还是日常小实验,都需要尽量排除其他变量的干扰。
|
|
285
|
-
|
|
286
|
-
The core of causal verification is "randomization" or "equivalent comparison" — whether RCT or daily small experiments, we must try to eliminate interference from other variables.
|
|
287
|
-
|
|
288
|
-
### 第七步:敏感性分析 / Sensitivity Analysis
|
|
289
|
-
|
|
290
|
-
#### 科研模式 / Research Mode
|
|
291
|
-
|
|
292
|
-
因果结论对未观测混淆有多脆弱?量化混淆必须有多强才能推翻结论。
|
|
293
|
-
|
|
294
|
-
- **Rosenbaum 方法**:对于给定的混淆强度 Γ,计算因果结论可能翻转的最大 p-value——Γ 越大,结论越脆弱
|
|
295
|
-
- **E-value**:使观察到的效应估计归零所需的混淆最小强度——E-value 越大,结论越稳健
|
|
296
|
-
- **关键问题**:如果存在一个未观测混淆变量 U,它必须多强(与 X 和 Y 的关联必须多大)才能使因果结论不再成立?
|
|
297
|
-
|
|
298
|
-
#### 生活模式 / Life Mode
|
|
299
|
-
|
|
300
|
-
因果结论有多脆弱?如果有一个你没考虑到的隐藏因素,它得多强才能推翻你的结论?——越脆弱,越要谨慎
|
|
301
|
-
|
|
302
|
-
How fragile is the causal conclusion? If there's a hidden factor you haven't considered, how strong would it need to be to overturn your conclusion? — the more fragile, the more cautious you should be
|
|
303
|
-
|
|
304
|
-
- 问问自己:有没有遗漏的混淆因素?如果有,它得多重要才能改变结论?
|
|
305
|
-
- 如果结论很容易被推翻,就不要太自信——谨慎行事
|
|
306
|
-
- 越重要的决策,越需要做敏感性检查——确保结论足够稳健
|
|
307
|
-
|
|
308
|
-
#### 共通要点 / Shared Essentials
|
|
309
|
-
|
|
310
|
-
敏感性分析是因果推理的"安全网"——无论是形式化的 Rosenbaum Γ 还是日常的"还能有多强"判断,都在检验结论的稳健性。
|
|
311
|
-
|
|
312
|
-
Sensitivity analysis is the "safety net" of causal reasoning — whether formal Rosenbaum Γ or daily "how strong could it be" judgment, both test the robustness of conclusions.
|
|
313
|
-
|
|
314
|
-
## 常见错误 / Common Errors
|
|
315
|
-
|
|
316
|
-
| 错误 / Error | 数学批评 / Mathematical Critique | 正确做法 / Correct Approach |
|
|
317
|
-
|---|---|---|
|
|
318
|
-
| 从相关直接推断因果 / Inferring causation from correlation directly `[科研/通用/生活]` | P(y|x) ≠ P(y|do(x));相关可能由混淆变量创造,而非因果机制 | 画 DAG 识别混淆路径,用后门调整计算 P(y|do(x)) |
|
|
319
|
-
| 忽略混淆变量 / Ignoring confounders `[科研/通用/生活]` | 不调整混淆时,|P(y|do(x)) - P(y|x)| = 混淆偏差;效应估计有偏且方向可能错误 | 识别 X 和 Y 的所有共同祖先,对可观测混淆做调整 |
|
|
320
|
-
| 混淆 do(x) 与条件化 P(y|x) / Confounding do(x) with conditioning P(y|x) `[科研/通用]` | do(x) 切断所有指向 X 的箭头;条件化 x 不切断任何箭头——两者数学含义不同 | 明确区分:do(x) 是干预("强制设定 X=x"),P(y|x) 是观察("看到 X=x 时 Y 如何") |
|
|
321
|
-
| 忽略中介效应 / Ignoring mediation effects `[科研/通用]` | X→M→Y 中,总效应 = 直接效应 + 间接效应;忽略中介会混淆因果路径 | 进行中介分析,拆分直接效应与间接效应(前门准则可利用中介) |
|
|
322
|
-
| 过度依赖单一因果假设 / Over-relying on a single causal assumption (DAG may be wrong) `[科研]` | DAG 的错误导致因果结论全盘错误;不同 DAG 可能给出相反结论 | 检验 DAG 的合理性;比较多个备选 DAG;进行敏感性分析 |
|
|
323
|
-
| 忽略敏感性分析 / Skipping sensitivity analysis `[科研]` | 未观测混淆可能推翻因果结论;不评估脆弱性则结论不可靠 | 用 Rosenbaum 方法或 E-value 量化结论对未观测混淆的脆弱性 |
|
|
324
|
-
| 把相关当因果 / Mistaking correlation for causation `[生活]` | 日常生活中最常见的错误——"看到X和Y一起出现"就认为"X导致Y" | 问自己:有没有隐藏的共同原因?X和Y是否只是恰好同时出现? |
|
|
325
|
-
| 忽略隐藏的共同原因 / Ignoring hidden common causes `[生活]` | 隐藏因素同时影响X和Y,制造虚假因果——比如"健康习惯"同时影响"喝咖啡"和"健康状况" | 检查有没有同时影响"原因"和"结果"的隐藏因素——寻找上游的共同原因 |
|
|
326
|
-
| 轻信"做了X就有效"而没验证 / Believing "doing X works" without verification `[生活]` | 观察到的效果可能是混淆偏差而非真实因果效应——没有验证就行动可能误导决策 | 找对比情境验证:有没有不做X但结果一样的情况?做小规模试错再全面推行 |
|
|
327
|
-
|
|
328
|
-
## 操作规程 / Operating Procedure
|
|
329
|
-
|
|
330
|
-
当本 skill 被触发时,根据模式选择输出格式:
|
|
331
|
-
|
|
332
|
-
### 模式选择 / Mode Selector
|
|
333
|
-
|
|
334
|
-
- **科研模式**:当问题涉及干预效果评估、政策评估、DAG建模、do-calculus时使用
|
|
335
|
-
**Research Mode**: Use when the question involves intervention effect evaluation, policy evaluation, DAG modeling, do-calculus
|
|
336
|
-
- **生活模式**:当问题涉及区分原因与借口、反事实思考、评估某事是否真的有效时使用
|
|
337
|
-
**Life Mode**: Use when the question involves distinguishing cause from excuse, counterfactual thinking, evaluating whether something truly works
|
|
338
|
-
|
|
339
|
-
### 科研模式输出格式 / Research Mode Output Format
|
|
340
|
-
|
|
341
|
-
1. **[DAG]:[因果图]**:画出所有变量的有向无环图,标注每条因果箭头的假设依据
|
|
342
|
-
2. **[混淆变量]:[列表]**:列出 X 和 Y 的所有共同祖先,标注哪些可观测、哪些不可观测
|
|
343
|
-
3. **[识别策略]:[后门/前门/do算子]**:根据混淆可观测性选择识别策略,说明选择理由
|
|
344
|
-
4. **[干预效果]:P(y|do(x))=[值]**:用调整公式计算因果效应,与观察性关联对比
|
|
345
|
-
5. **[反事实]:[分析]**:对关键个体或子群体进行反事实推理,说明所需结构方程
|
|
346
|
-
6. **[验证方法]:[RCT/自然实验/IV/DD]**:说明如何用实验或准实验方法验证因果结论
|
|
347
|
-
7. **[敏感性]:[评估]**:量化因果结论对未观测混淆的脆弱性(Rosenbaum Γ 或 E-value)
|
|
348
|
-
|
|
349
|
-
**科研模式输出必须包含以上 7 项,不得只输出分析性文字而不给出结论。**
|
|
350
|
-
|
|
351
|
-
### 生活模式输出格式 / Life Mode Output Format
|
|
352
|
-
|
|
353
|
-
1. **[因果链]:[分析]** — X真的导致Y吗?还是它们只是恰好同时出现?画出因果链
|
|
354
|
-
**[Causal Chain]:[Analysis]** — Does X truly cause Y? Or do they just happen to co-occur? Draw the causal chain
|
|
355
|
-
2. **[隐藏因素]:[列表]** — 有没有同时影响X和Y的隐藏因素
|
|
356
|
-
**[Hidden Factors]:[List]** — Are there hidden factors that simultaneously influence X and Y
|
|
357
|
-
3. **[真实效果]:[判断]** — 如果我真的做了X,结果会怎样(而不是"看到X时结果如何")
|
|
358
|
-
**[True Effect]:[Judgment]** — What would happen if I actually did X (not "how things are when we see X")
|
|
359
|
-
4. **[反事实]:[思考]** — 如果当初没做X/做了X,结果会怎样
|
|
360
|
-
**[Counterfactual]:[Thinking]** — What if I hadn't done X / had done X, what would the result be
|
|
361
|
-
5. **[验证方式]:[建议]** — 如何验证这个因果判断是否可靠
|
|
362
|
-
**[Verification]:[Suggestion]** — How to verify whether this causal judgment is reliable
|
|
363
|
-
6. **[行动建议]:[步骤]** — 在当前因果判断下最务实的行动方案
|
|
364
|
-
**[Action Advice]:[Steps]** — The most pragmatic action plan given the current causal judgment
|
|
365
|
-
|
|
366
|
-
**生活模式输出必须包含以上 6 项,不得只输出分析性文字而不给出结论。**
|
|
367
|
-
|
|
368
|
-
## 与其他 skill 的关系 / Relations to Other Skills
|
|
369
|
-
|
|
370
|
-
- **概率与统计**:统计是因果的基础但不充分——P(y|x) 是统计关联,P(y|do(x)) 是因果效应;因果需要额外假设
|
|
371
|
-
- **建模思想**:因果 DAG 是结构模型——编码变量间的因果机制假设,是建模的因果版本
|
|
372
|
-
- **逻辑演绎**:因果推理的演绎链条——从 DAG 假设出发,通过 do-演算三条规则演绎出因果结论
|
|
373
|
-
- **信息论思想**:信号与信息不对称——混淆变量制造虚假信号,因果推断从噪声中提取真实因果信号
|
|
374
|
-
- **博弈思想**:策略互动中的因果——参与者的策略选择构成因果干预,均衡分析需要因果推理
|
|
1
|
+
---
|
|
2
|
+
name: causal-inference
|
|
3
|
+
description: |
|
|
4
|
+
触发:相关≠因果、干预/反事实推理、do-演算、因果图(DAG)建模、混淆变量识别、政策/处理效应评估;或为模型可解释性、分布外泛化、数据生成过程(DGP)建模而需显式因果假设时调用。
|
|
5
|
+
English: Trigger when a problem concerns correlation≠causation, intervention/counterfactual reasoning, do-calculus, causal DAG modeling, confounder identification, policy/treatment effect estimation; or needs explicit causal assumptions for model interpretability, out-of-distribution generalization, or data-generating process modeling.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> **语言路由**:若用户消息为英文,请读取并遵循同目录下的 `SKILL.en.md`,按其操作规程以英文输出;中文消息则继续使用本文件。
|
|
9
|
+
|
|
10
|
+
# 🔗 因果推断思想 / Causal Inference
|
|
11
|
+
|
|
12
|
+
> "相关不等于因果——但因果可以理清。关键区别:'看到X时Y如何'≠'如果做了X会怎样'"
|
|
13
|
+
> "Correlation is not causation — but causation can be sorted out. Key distinction: 'how is Y when we see X' ≠ 'what if we did X'"
|
|
14
|
+
>
|
|
15
|
+
> —— 因果推断、结构因果模型、反事实推理
|
|
16
|
+
> —— Causal Inference, Structural Causal Models, Counterfactual Reasoning
|
|
17
|
+
|
|
18
|
+
## 核心原则 / Core Principle
|
|
19
|
+
|
|
20
|
+
**因果推断回答的问题超出概率论的表达能力:概率论能回答"看到 X 时 Y 如何",但不能回答"如果做了 X 会怎样"。Pearl 因果层级将推理分为三层,每层需要更强的建模假设。**
|
|
21
|
+
|
|
22
|
+
**Causal inference answers questions beyond probability's expressive power: probability answers "how is Y when we see X," not "what if we did X." Pearl's causal hierarchy has three levels, each requiring stronger modeling assumptions.**
|
|
23
|
+
|
|
24
|
+
> **数学形式化 / Mathematical Formalization**
|
|
25
|
+
>
|
|
26
|
+
> Pearl 因果层级 / Causal Hierarchy:
|
|
27
|
+
> - **Level 1 关联 / Association**:P(y|x) —— 看到/观察 / Seeing
|
|
28
|
+
> - **Level 2 干预 / Intervention**:P(y|do(x)) —— 做/干预 / Doing
|
|
29
|
+
> - **Level 3 反事实 / Counterfactual**:P(y_x|x',y') —— 想/回顾 / Imagining
|
|
30
|
+
>
|
|
31
|
+
> **do(x) ≠ 条件化 x**:do(x) 切断所有指向 X 的箭头(图手术),条件化 x 不切断任何箭头。后门调整 / back-door adjustment:P(y|do(x)) = Σ_z P(y|x,z)P(z)
|
|
32
|
+
>
|
|
33
|
+
> **潜在结果 / Potential Outcomes (Neyman-Rubin)**:Y(x) 为"若施干预 X=x 时 Y 的取值";个体效应 τ_i = Y_i(1)-Y_i(0),平均处理效应 ATE = E[Y(1)]-E[Y(0)] = E[Y|do(X=1)] - E[Y|do(X=0)]。
|
|
34
|
+
>
|
|
35
|
+
> **结构因果模型 / SCM**:Y := f(X, Z, U),U 为外生变量;DAG + 结构方程共同确定反事实 Y_x = f(x, Z, U)。
|
|
36
|
+
>
|
|
37
|
+
> **d-分离 / d-Separation**:路径被 Z 阻断 ⟺ 链/叉中点 ∈ Z,或 collider X→C←Y 且 C 及其后代 ∉ Z。d-分离 X⊥_G Y|Z 蕴含条件独立,是图上读出因果假设的工具。
|
|
38
|
+
>
|
|
39
|
+
> **do-演算三规则 / Do-calculus**(在修正图上用 d-分离判断):
|
|
40
|
+
> - 规则 1(插入/删除观察):若 Y ⊥ Z | X 在删去所有指向 X 的箭头后的图中成立,则 P(y|do(x),z) = P(y|do(x))
|
|
41
|
+
> - 规则 2(干预与观察互换):若 Y ⊥ Z | X 在删去所有指向 X 的箭头并删去所有从 Z 出发的箭头后的图中成立,则 P(y|do(x),do(z)) = P(y|do(x),z)
|
|
42
|
+
> - 规则 3(插入/删除干预):若 Y ⊥ Z | X 在删去所有指向 X 的箭头并删去所有从 Z 到 X 的路径上的箭头后的图中成立,则 P(y|do(x),do(z)) = P(y|do(x))
|
|
43
|
+
>
|
|
44
|
+
> **因果推理需显式因果模型,不能仅靠数据推导。DAG 编码因果假设,do-演算将干预表达式转化为可观测量。**
|
|
45
|
+
>
|
|
46
|
+
> 详细数学依据见 `original-texts.md`
|
|
47
|
+
|
|
48
|
+
## GPU 友好性 / GPU-Friendliness(横切检查)
|
|
49
|
+
|
|
50
|
+
当因果推断用于**模型可解释性 / 分布外泛化 / 数据生成过程建模**并需大规模估计时,方法本身要过 `../../references/gpu-friendly-math.md` 八维门:
|
|
51
|
+
|
|
52
|
+
- **效应估计 / 调整回归**:后门调整、IPW、双重机器学习的条件期望/regression 全是批量 GEMM,张量化、可融合、低精度可行——**友好**(见 `../../references/books/optimization-ml.md`)。
|
|
53
|
+
- **条件独立检验**:高维条件独立检验含精度阵(协方差逆)求逆 $O(p^3)$,可改 **低秩/对角近似**或迭代求解器——**可改造**(见 `../../references/books/matrix-analysis.md`)。
|
|
54
|
+
- **精确因果发现(DAG 搜索)**:DAG 空间随节点数超指数增长,精确打分搜索 NP-hard、不可微、串行——典型"美但不可算"反模式。
|
|
55
|
+
- **改造手法**:NOTEARS 式**连续松弛**(无环性 $h(W)=\text{tr}(e^{W\circ W})-p=0$)把离散图搜索变成可微优化;或 MCMC/贪心+打分作启发式近似。
|
|
56
|
+
- **反事实/SCM 仿真**:结构方程前向模拟可批量并行;但个体反事实依赖外生 U 的识别,警惕串行依赖。
|
|
57
|
+
|
|
58
|
+
八维最低判定(正式术语):**张量化**看样本/干预/候选图能否批量处理;**GEMM 可映射**看调整回归与表示学习是否落矩阵乘;**复杂度**看因果发现是否避开超指数 DAG 搜索;**显存与 KV-Cache**看精度阵、候选图和中间反事实是否可压缩;**低精度稳定**看 IPW 权重、协方差逆和 logit 是否稳健;**并行与通信**看多环境/多干预估计能否并行;**稀疏结构**看 DAG/SCM 是否结构化稀疏;**算子融合**看打分、mask、loss 能否融合。
|
|
59
|
+
|
|
60
|
+
> 配合 `../../references/books/optimization-ml.md`(干预估计/regression)与 `../../references/books/matrix-analysis.md`(条件独立/低秩精度阵)。
|
|
61
|
+
|
|
62
|
+
## 不适用场景 / When NOT to Use
|
|
63
|
+
|
|
64
|
+
- **纯预测任务且无因果问题**(只需 P(y|x),不关心"为什么")——关联足够,因果多余。
|
|
65
|
+
- **无可编码的因果假设**(画不出合理 DAG,因果方向不确定)——没有显式假设就没有因果结论。
|
|
66
|
+
- **确定性系统且无变异**(输入严格唯一映射输出)——因果已被机制完全描述,无需概率因果框架。
|
|
67
|
+
|
|
68
|
+
## 何时使用 / When to Use
|
|
69
|
+
|
|
70
|
+
- 需要知道干预的效果("做了 X,Y 会怎样?")——需 P(y|do(x)) 而非 P(y|x)。
|
|
71
|
+
- 需要区分原因与混淆变量(X 导致 Y,还是 Z 同时导致 X 和 Y?)——DAG 识别混淆路径。
|
|
72
|
+
- 需要反事实推理("若当时没做 A 结果会怎样?")——Level 3 需结构方程。
|
|
73
|
+
- 需要政策/处理效应评估(RCT 不可行时的后门调整、IV、双重差分)。
|
|
74
|
+
- 需要中介分析(拆分 X→M→Y 的直接与间接效应)。
|
|
75
|
+
- 需要为**模型可解释性 / 分布外泛化**建模数据生成过程(DGP),把预测器的关联变成可干预的因果机制。
|
|
76
|
+
|
|
77
|
+
## 方法流程 / Method
|
|
78
|
+
|
|
79
|
+
### 第一步:构建因果 DAG / Construct the Causal DAG
|
|
80
|
+
明确所有变量,画因果箭头编码直接原因假设,检查无环性。识别原因变量 X(干预对象)、结果 Y(效应)、混淆 Z(X、Y 共同原因)、中介 M(X→M→Y)。箭头 X→Y 表示"X 是 Y 的直接原因",方向编码因果假设。DAG 必须有向无环——存在环路则因果方向不确定,需重新建模。**关键**:是否有足够领域知识编码因果方向?结论完全依赖 DAG 正确性。
|
|
81
|
+
|
|
82
|
+
### 第二步:识别混淆变量 / Identify Confounders
|
|
83
|
+
混淆变量同时影响 X 和 Y,创造虚假关联——不调整则效应估计有偏。**定义**:Z 是混淆 ⟺ Z 是 X、Y 的共同原因(Z→X 且 Z→Y)。**DAG 识别法**:找 X、Y 的所有共同祖先。**后门路径** X←Z→Y 创造非因果关联需阻断。**关键**:所有混淆是否可观测?存在未观测混淆则后门调整不可用,需前门准则或工具变量。
|
|
84
|
+
|
|
85
|
+
### 第三步:选择识别策略 / Choose Identification Strategy
|
|
86
|
+
据混淆可观测性,选择从观测数据计算 P(y|do(x)) 的策略:
|
|
87
|
+
- **后门准则 / Back-door**:若 ∃ S 阻断 X→Y 所有后门路径且 S 不含 X 的后代,则 P(y|do(x)) = Σ_s P(y|x,S=s)·P(S=s)。
|
|
88
|
+
- **前门准则 / Front-door**:混淆不可观测但中介 M 可观测,且 X→M 无后门、M 阻断 X→Y 所有后门路径,则 P(y|do(x)) = Σ_m P(m|x)·Σ_z P(y|m,z)P(z)。
|
|
89
|
+
- **do-演算**:三规则在可观测量间转换 do-表达式(见核心原则数学形式化块)。
|
|
90
|
+
|
|
91
|
+
### 第四步:计算干预效果 / Compute Intervention Effects
|
|
92
|
+
用调整公式算 P(y|do(x)),与观察性 P(y|x) 对比衡量混淆偏差:
|
|
93
|
+
- 后门调整:P(y|do(x)) = Σ_z P(y|x,z)·P(z)——对 Z 所有取值加权平均。
|
|
94
|
+
- 混淆偏差:|P(y|do(x)) - P(y|x)|——偏差越大混淆越严重。
|
|
95
|
+
- 平均处理效应:ATE = E[Y|do(X=1)] - E[Y|do(X=0)] = E[Y(1)] - E[Y(0)]。
|
|
96
|
+
**关键**:P(y|do(x)) 与 P(y|x) 是否显著不同?不同则观察性分析有混淆偏差。
|
|
97
|
+
|
|
98
|
+
### 第五步:反事实分析 / Counterfactual Analysis
|
|
99
|
+
个体层面回顾性推理:若 X 是 x₁ 而非 x₀,Y 会怎样?
|
|
100
|
+
- **SCM**:Y = f(X, Z, U),U 为外生变量。
|
|
101
|
+
- **反事实计算**:给定观测 (x₀,y₀,z₀),反事实 Y_{x₁} = f(x₁, z₀, u₀)。
|
|
102
|
+
- **个体因果效应**:Y_{x₁} - Y_{x₀}——需结构方程。
|
|
103
|
+
**关键**:反事实依赖结构方程具体形式,对模型假设极敏感。
|
|
104
|
+
|
|
105
|
+
### 第六步:实验设计验证 / Experimental Design
|
|
106
|
+
- **RCT(黄金标准)**:随机化切断所有指向 X 的箭头,处理组与对照组在所有变量上期望相等;ATE = E[Y|do(X=1)] - E[Y|do(X=0)]。
|
|
107
|
+
- **自然实验**:利用自然发生的准随机事件(地震、政策变更)。
|
|
108
|
+
- **工具变量 IV**:V→X 且 V 到 Y 无直接路径、V 与 Y 无共同原因——用 V 创造的 X 变异估计因果效应。
|
|
109
|
+
- **双重差分 DD**:(Y₁^后-Y₁^前) - (Y₀^后-Y₀^前)。
|
|
110
|
+
|
|
111
|
+
### 第七步:敏感性分析 / Sensitivity Analysis
|
|
112
|
+
量化结论对未观测混淆的脆弱性:
|
|
113
|
+
- **Rosenbaum Γ**:对混淆强度 Γ,算结论可能翻转的最大 p-value——Γ 越大越脆弱。
|
|
114
|
+
- **E-value**:使效应估计归零所需的最小混淆强度——越大越稳健。
|
|
115
|
+
**关键**:未观测混淆 U 必须多强才能推翻结论?
|
|
116
|
+
|
|
117
|
+
## 常见错误 / Common Errors
|
|
118
|
+
|
|
119
|
+
| 错误 / Error | 批评 / Critique | 正确做法 / Correct Approach |
|
|
120
|
+
|---|---|---|
|
|
121
|
+
| 从相关直接推断因果 | P(y\|x)≠P(y\|do(x));相关可能由混淆创造 | 画 DAG 识别混淆,用后门调整算 P(y\|do(x)) |
|
|
122
|
+
| 忽略混淆变量 | 不调整时 \|P(y\|do(x))-P(y\|x)\|=混淆偏差 | 找 X、Y 所有共同祖先,调整可观测混淆 |
|
|
123
|
+
| 混淆 do(x) 与条件化 P(y\|x) | do(x) 切断指向 X 的箭头,条件化不切断 | 明确区分干预(强制设定)与观察(看到时) |
|
|
124
|
+
| 忽略中介效应 | X→M→Y 总效应=直接+间接 | 中介分析拆分直接/间接效应,前门准则可用 |
|
|
125
|
+
| 过度依赖单一 DAG | DAG 错则结论全错,不同 DAG 可能给相反结论 | 检验 DAG 合理性,比较多个备选 DAG |
|
|
126
|
+
| 忽略敏感性分析 | 未观测混淆可能推翻结论 | 用 Rosenbaum Γ 或 E-value 量化脆弱性 |
|
|
127
|
+
| 精确因果图搜索不可算 | DAG 空间超指数、NP-hard、不可微 | 连续松弛(NOTEARS)/启发式近似,过 GPU 八维门 |
|
|
128
|
+
|
|
129
|
+
## 操作规程 / Operating Procedure
|
|
130
|
+
|
|
131
|
+
当本 skill 被触发时,输出必须包含:
|
|
132
|
+
|
|
133
|
+
1. **[DAG]**:所有变量的有向无环图,标注每条箭头的假设依据。
|
|
134
|
+
2. **[混淆变量]**:列出 X、Y 的所有共同祖先,标注可观测/不可观测。
|
|
135
|
+
3. **[识别策略]**:后门/前门/do-演算,说明选择理由。
|
|
136
|
+
4. **[干预效果]**:P(y|do(x))=[值],用调整公式计算并与 P(y|x) 对比。
|
|
137
|
+
5. **[反事实]**:对关键个体/子群反事实推理,说明所需结构方程。
|
|
138
|
+
6. **[验证方法]**:RCT/自然实验/IV/DD,如何验证因果结论。
|
|
139
|
+
7. **[敏感性]**:Rosenbaum Γ 或 E-value,量化对未观测混淆的脆弱性。
|
|
140
|
+
8. **[GPU 可行性]**(若用于可解释性/OOD/DGP 建模的大规模估计):因果发现/估计方法过八维门,标注友好/可改造/不友好 + 改造建议。
|
|
141
|
+
|
|
142
|
+
**输出不得只给分析而无结论。**
|
|
143
|
+
|
|
144
|
+
## 与其他 skill 的关系 / Relations to Other Skills
|
|
145
|
+
|
|
146
|
+
- **概率与统计**:统计是因果的基础但不充分——P(y|x) 是关联,P(y|do(x)) 是因果效应;因果需额外假设。
|
|
147
|
+
- **建模思想**:因果 DAG 是结构模型——编码变量间因果机制假设,是建模的因果版本。
|
|
148
|
+
- **逻辑演绎**:从 DAG 假设出发,通过 do-演算三规则演绎因果结论。
|
|
149
|
+
- **信息论思想**:混淆变量制造虚假信号,因果推断从噪声中提取真实因果信号。
|
|
150
|
+
- **博弈思想**:策略互动中参与者的选择构成因果干预,均衡分析需因果推理。
|
|
151
|
+
- **现代数学激活**:`../../references/books/optimization-ml.md`(干预估计/regression、双重 ML)、`../../references/books/matrix-analysis.md`(条件独立检验、精度阵低秩近似)。
|