版权:转载前请联系作者获得授权。
声明:部分内容出自因果关系之梯,已获得原作者授权。
参考书籍:《The Book of Why》——Judea Pearl
基础知识
定义:对于包含外生变量
U
U
U和内生变量
X
X
X和
Y
Y
Y的SCM,形如
Y
X
=
x
(
U
=
u
)
=
y
Y_{X=x}(U=u)=y
YX=x(U=u)=y表示“在
U
=
u
U=u
U=u的情况下,如果
X
=
x
X=x
X=x,则
Y
=
y
Y=y
Y=y”。其中,
Y
X
=
x
(
U
=
u
)
=
y
Y_{X=x}(U=u)=y
YX=x(U=u)=y可以简写为
Y
x
(
u
)
=
y
Y_x(u)=y
Yx(u)=y。
反事实分析的一般步骤:
- 外展。基于数据对外生变量
U
U
U进行估算。
- 干预。利用
d
o
do
do算子改变模型(删除指向
X
X
X的箭头),得到新模型
M
x
M_x
Mx,反映我们提出的反事实假设。
- 预测。基于
U
U
U和
M
x
M_x
Mx来计算结果。
以上三个步骤可以总结为:
因果推断第一定律:
Y
x
(
u
)
=
Y
M
x
(
u
)
Y_x(u)=Y_{M_x}(u)
Yx(u)=YMx(u)
反事实和干预的区别:
- 表现形式:
d
o
(
x
)
do(x)
do(x) vs
Y
x
Y_x
Yx
- 对
X
X
X进行干预,不会对
X
X
X的子孙节点造成影响,而反事实会。
如何理解第2条?可以考虑如下因果图,
P
(
Y
∣
d
o
(
x
)
)
P(Y|do(x))
P(Y∣do(x))和
P
(
Y
x
)
P(Y_x)
P(Yx)的含义显然不同。
- 计算
P
(
Y
∣
d
o
(
x
)
)
P(Y|do(x))
P(Y∣do(x))时,
Y
Y
Y的结果实际上和
X
X
X的取值毫无关系,因为路径被
Z
Z
Z阻断了!
- 计算
P
(
Y
x
)
P(Y_x)
P(Yx)时,会根据
X
=
x
X=x
X=x对对应的
Z
Z
Z进行改动,进而得到
Y
x
Y_x
Yx。
案例实战
下面基于一个案例,加深对反事实分析的理解。
在下表中,学历共分为
0
,
1
,
2
0,1,2
0,1,2三种,分别代表高中,本科,研究生。
S
0
(
u
)
S_0(u)
S0(u)表示雇员
u
u
u在学历是高中时,现有的工资水平,
S
1
(
u
)
S_1(u)
S1(u)和
S
2
(
u
)
S_2(u)
S2(u)则是在本科和研究生学历下的工资水平。由于在工作时,每个人的学历已经固定,只会是高中、本科和研究生中的一种。故,对于每一个雇员,有两个工资的值为
?
?
?,表示无法获得。
雇员 (u) |
工龄 EX(u) |
学历 ED(u) |
工资 S0(u) |
工资 S1(u) |
工资 S2(u) |
Alice |
6 |
0 |
81000 |
? |
? |
Bob |
9 |
1 |
? |
92500 |
? |
Lucy |
9 |
2 |
? |
? |
97000 |
Daivd |
8 |
1 |
? |
91000 |
? |
Est |
12 |
1 |
? |
100000 |
? |
Flxs |
13 |
0 |
97000 |
? |
? |
… |
… |
… |
… |
… |
… |
现在,我们想要研究一个反事实问题——如果Alice的学历是本科,那么她的工资应为多少?即:通过上表中的数据,估算
S
1
(
A
l
i
c
e
)
S_1(Alice)
S1(Alice)。
在不使用反事实分析的情况下,我们或许可以采用线性回归,通过统计得到你和数据的最佳直线:
S
=
2500
×
E
X
+
5000
×
E
D
+
65000
S=2500 \times EX + 5000 \times ED + 65000
S=2500×EX+5000×ED+65000
并依此得出
S
1
(
A
l
i
c
e
)
=
2500
×
6
+
5000
×
1
+
65000
=
85000
S_1(Alice)=2500 \times 6 + 5000 \times 1 + 65000 = 85000
S1(Alice)=2500×6+5000×1+65000=85000
但是,上述方法有一个明显的弊端,即:对于任何雇员,如果他们的工龄和学历一致,则预测出的工资也是一致的!通过观察Bob和Lucy的工资,我们可以发现,这显然是不对的!
从表中可以看出,Bob和Lucy具有相同的工龄,但Bob的学历更低。那么,假如Lucy的学历和Bob一致,二人的工资应该一致吗?答案显然是否定的。因为,如果Lucy降低了学历,那么理论上她的工龄会比Bob更长,这会导致
S
1
(
L
u
c
y
)
>
S
1
(
B
o
b
)
S_1(Lucy)>S_1(Bob)
S1(Lucy)>S1(Bob)。
如何在模型中体现这一点呢?
从因果的角度出发,我们首先可以构建如下的因果图:
我们还是通过线性回归拟合最佳直线,但是和上文中稍有不同:
S
=
2500
×
E
X
+
5000
×
E
D
+
65000
+
U
S
S=2500 \times EX + 5000 \times ED + 65000 + U_S
S=2500×EX+5000×ED+65000+US
同时,我们还需要一个(可能是)下式的方程:
E
X
=
10
−
4
×
E
D
+
U
E
X
EX=10-4 \times ED + U_{EX}
EX=10−4×ED+UEX
有了这两个方程后,我们就可以根据反事实分析的三个步骤,计算
S
1
(
A
l
i
c
e
)
S_1(Alice)
S1(Alice):
- 根据数据估算出
U
S
=
1000
,
U
E
X
=
−
1
U_S=1000, U_{EX} = -1
US=1000,UEX=−1;
- 使用
d
o
do
do算子修改Alice的学历;
- 根据
U
S
=
1000
,
U
E
X
=
−
1
U_S=1000, U_{EX} = -1
US=1000,UEX=−1计算出
E
D
=
2
ED=2
ED=2,再结合
E
D
=
1
ED=1
ED=1计算出
S
1
(
A
l
i
c
e
)
=
76000
S_1(Alice)=76000
S1(Alice)=76000。