下一章 上一章 目录 设置
7、第七章 虚拟变量 真正影响你 ...
-
真正影响你情绪的,不是那些个虚拟变量,而是我在不在,和你身体好不好。
陆明远发现自己在做一件很荒谬的事:用统计模型分析自己的婚姻。
但他停不下来。
那些数据像是有生命一样,在他眼前跳动,引诱他继续往下看。每看一次,就发现新的东西;每发现新的东西,就想再看一次。循环往复,无穷无尽。
今天是四月十七号,距离他发现那三十页纸已经过去了一个半月。一个半月,他做了六次分析:正态分布、离群值、方差、显著性水平、时间序列、协方差。每一次都让他更懂她一点,每一章也都让他更后悔一点。
但他知道,后悔没用。她不会回来。他能做的,就是继续看,继续懂,继续把那些她没说出口的话,从数据里读出来。
今天他要做的,是虚拟变量。
虚拟变量是统计学里的一种技术,用来把分类变量转化成数值变量。比如性别,男和女不是数字,但可以设一个虚拟变量:1代表男,0代表女。比如季节,春夏秋冬不是数字,但可以设三个虚拟变量(用三个变量表示四个季节)。比如婚姻状况,已婚、未婚、离婚、丧偶,也可以设虚拟变量。
虚拟变量的作用,是把那些不能直接计算的东西,变成可以计算的东西。
林墨的数据里,有很多这样的“分类变量”。比如年份,哪些年份他们吵架多,哪些年份他们吵架少。比如事件,哪些年份发生了重要的事,哪些年份没有。比如情绪,哪些年份她开心,哪些年份她不开心。
这些都需要用虚拟变量来表示。
陆明远打开电脑,开始做新的数据表。
他先定义几个虚拟变量。
第一个:吵架。1表示吵架多的年份,0表示吵架少的年份。根据他的记忆和她的日记,他给每一年赋值。
他翻出日记,找出那些明确写着“吵架”字样的年份。
1990年:新婚,甜蜜。日记里全是“他今天做了早饭”“他买了橘子”。没有吵架。赋值0。
1991年:开始有矛盾。日记里出现“他今天回来晚了,我说他,他说没办法”。有点小摩擦,不算大吵。赋值0。
1992年:继续磨合。日记里写“为了一点小事不高兴,但没吵”。赋值0。
1993年:第一次大吵。日记里写“今天吵架了,他摔门出去”。赋值1。
1994年:吵架最多的一年。日记里多次出现“又吵架了”“为了钱”“他走了”。赋值1。
1995年:吵完了,进入冷战期。冷战算吵架吗?他想了想,冷战不算吵架,算冷暴力。所以赋值0。
1996年:平淡。没吵架。赋值0。
1997年:沉默。也没吵。赋值0。
1998年:她开始觉得“一个人也挺好”。没心情吵。赋值0。
1999年:跨年他加班。她没说什么。没吵。赋值0。
2000年:新千年,他在家,但没话说。没吵。赋值0。
2001年:老样子。没吵。赋值0。
2002年:她升副研究员。心情好,没吵。赋值0。
2003年:非典,他在家。两人天天在一起,反而没吵。日记里写“真好”。赋值0。
2004年:他又开始出差。她习惯了,没吵。赋值0。
2005年:情人节什么都没买。她没说什么。没吵。赋值0。
2006年:平淡。没吵。赋值0。
2007年:她拿项目,他出差。她没吵,但日记里写“想告诉他,他不在”。赋值0。
2008年:她父亲去世。没心情吵。赋值0。
2009年:她累,身体开始出问题。没吵。赋值0。
2010年:有一次大吵。日记里写“今天吵架了,因为他忘了我的生日”。赋值1。
2011年:没吵。赋值0。
2012年:没吵。赋值0。
2013年:她评正高。开心,没吵。赋值0。
2014年:三亚之旅。开心,没吵。赋值0。
2015年:平淡。没吵。赋值0。
2016年:她第一次查出问题,没告诉他。没吵。赋值0。
2017年:他说想她了。她高兴,没吵。赋值0。
2018年:他陪她去医院。她高兴,没吵。赋值0。
2019年:她复发,没告诉他。没心情吵。赋值0。
2020年:确诊,他在。不吵。赋值0。
2021年:最后一年,他一直在。不吵。赋值0。
吵架的年份:1993、1994、2010。一共3年。
第二个虚拟变量:出差多。1表示他出差多的年份,0表示出差少的年份。
他有2007-2021年的准确数据。2007年以前的需要估算。
他用年均98天为界,高于98的为1,低于的为0。
2007年:87天,0
2008年:92天,0
2009年:85天,0
2010年:88天,0
2011年:95天,0
2012年:102天,1
2013年:98天,0(等于均值,算0)
2014年:105天,1
2015年:110天,1
2016年:108天,1
2017年:112天,1
2018年:115天,1
2019年:118天,1
2020年:43天,0
2021年:12天,0
现在估算2007年以前的。
1989年:刚认识,不舍得出差。估计30天,0
1990年:新婚,也不多。估计40天,0
1991年:开始忙了。估计60天,0
1992年:更忙。估计70天,0
1993年:忙。估计80天,0
1994年:很忙。估计90天,0
1995年:很忙。估计95天,0
1996年:很忙。估计95天,0
1997年:很忙。估计100天,1
1998年:很忙。估计105天,1
1999年:很忙。估计100天,1
2000年:忙。估计90天,0
2001年:忙。估计95天,0
2002年:忙。估计100天,1
2003年:非典,出差少。估计30天,0
2004年:恢复正常。估计90天,0
2005年:忙。估计100天,1
2006年:忙。估计105天,1
这样,1989-2021年,33年的出差多虚拟变量都有了。
第三个虚拟变量:健康。1表示她健康,0表示她不健康。
从日记里看,她2016年第一次查出问题,但没告诉他。2019年复发,2020年确诊,2021年去世。
所以:
1989-2015年:1(健康)
2016年:0(第一次查出问题,虽然没告诉他,但身体已经不健康了)
2017年:0(继续不健康)
2018年:0
2019年:0(复发)
2020年:0(确诊)
2021年:0(最后一年)
第四个虚拟变量:重要事件。1表示有重要事件发生的年份,0表示没有。
重要事件包括:认识、结婚、升职、获奖、亲人去世、确诊等。
1989年:认识。1
1990年:结婚。11994年:第一次大吵?算重要吗?他想了想,吵架也是重要事件,说明关系有变化。算1。
1998年:感情低谷?算重要吗?不太确定,先不算。
2002年:升副研究员。1
2007年:拿国家社科基金重大项目,事业高峰。1
2008年:父亲去世。1
2013年:评正高。1
2016年:第一次查出问题。1
2019年:复发。1
2020年:确诊。1
2021年:去世。1
其他年份都是0。
第五个虚拟变量:他在家。1表示他出差少的年份,0表示出差多的年份。其实和“出差多”相反,为了分析方便,他直接用“出差少”作为虚拟变量。
出差少:1表示出差天数≤98,0表示>98。
根据上面的估算,1989-2021年的出差少虚拟变量也有了。
现在,他有了一个数据表,从1989年到2021年,33行,每行有:年份、情感指数(Y)、吵架(D1)、出差多(D2)、健康(D3)、重要事件(D4)、出差少(D5)。
情感指数Y是他之前从日记里读出来的那个1-10分序列。
他开始做回归。
先用最简单的模型:Y = a + b×D1(吵架)
结果:
Y = 4.21 - 1.23×D1
t值:常数=8.76(p<0.001),吵架=-0.98(p=0.34)
R? = 0.03
R?只有0.03,吵架几乎解释不了她的情感变化。
p值0.34,不显著。
这说明什么?说明吵架本身不是她不开心的重要原因。或者更准确地说,吵架是她不开心的结果,而不是原因。吵架的时候,她已经不开心了;不吵架的时候,她也可能不开心。
第二个模型:Y = a + b×D2(出差多)
结果:
Y = 5.87 - 2.34×D2
t值:常数=10.23(p<0.001),出差多=-3.45(p=0.002)
R? = 0.28
R?=0.28,出差多可以解释她情感变化的28%。系数-2.34,意味着出差多的年份,她的情感指数平均低2.34分。
这个结果和前几章的分析一致。出差,是她不开心的主要来源。
第三个模型:Y = a + b×D3(健康)
结果:
Y = 4.98 + 2.01×D3
t值:常数=8.54(p<0.001),健康=2.87(p=0.007)
R? = 0.21
R?=0.21,健康可以解释21%的情感变化。系数+2.01,意味着健康的年份,她的情感指数平均高2.01分。
第四个模型:Y = a + b×D4(重要事件)
结果:
Y = 4.32 + 0.54×D4
t值:常数=7.65(p<0.001),事件=0.76(p=0.45)
R? = 0.02
R?只有0.02,重要事件几乎解释不了什么。
p值0.45,不显著。
这个结果很有意思。那些我们以为很重要的事——升职、获奖、亲人去世——其实对她的日常情感影响不大。真正影响她的,是他在不在,和她身体好不好。
第五个模型:Y = a + b×D5(出差少)
结果:
Y = 3.54 + 2.34×D5
t值:常数=6.43(p<0.001),出差少=3.45(p=0.002)
R? = 0.28
和模型2对称,系数正好相反。出差少的年份,她的情感指数平均高2.34分。
现在,他开始做多变量回归。
第六个模型:Y = a + b1×D2 + b2×D3
结果:
Y = 4.21 - 1.87×D2 + 1.65×D3
t值:D2=-2.98(p=0.006),D3=2.34(p=0.026)
R? = 0.42
R?提高到0.42。出差和健康一起,可以解释她情感变化的42%。
常数4.21,意味着在出差多且不健康的年份,她的情感指数是4.21 - 1.87 + 0?不对,不健康的时候D3=0,所以是4.21 - 1.87 = 2.34分。和2019年的2分接近。
在出差少且健康的年份,她的情感指数是4.21 + 0? 出差少的时候D2=0,健康D3=1,所以是4.21 + 1.65 = 5.86分。和那些平淡年份的3-4分比,这个预测值偏高。说明还有别的因素。
第七个模型:加入吵架。
Y = a + b1×D2 + b2×D3 + b3×D1
结果:
Y = 4.18 - 1.82×D2 + 1.61×D3 - 0.43×D1
t值:D2=-2.87(p=0.008),D3=2.21(p=0.035)
D1=-0.54(p=0.59)
R? = 0.43
R?只提高0.01。吵架不显著。
第八个模型:加入重要事件。
Y = a + b1×D2 + b2×D3 + b3×D1 + b4×D4
结果:
Y = 4.12 - 1.78×D2 + 1.57×D3 - 0.38×D1 + 0.21×D4
t值:D2=-2.76(p=0.01),D3=2.12(p=0.042)
D1=-0.48(p=0.64),D4=0.43(p=0.67)
R? = 0.43
R?没变。重要事件不显著。
第九个模型:去掉不显著的变量,只留出差和健康。
Y = a + b1×D2 + b2×D3
这就是模型6,R?=0.42。
陆明远看着这个结果,久久说不出话。
0.42。两个虚拟变量,出差多和健康,解释了她42%的情感变化。
剩下的58%,是什么?
是他没考虑的因素:他的陪伴质量、她的工作压力、那些日常的小确幸和小烦恼、那些她没告诉他的秘密、那些纯粹的随机波动。
他想,如果把陪伴质量也放进去,R?会提高多少?
他需要量化陪伴质量。
他从日记里找出那些他做了“特别的事”的年份。
2013年:她评正高,他陪她吃饭庆祝。虽然只是小饭馆,但她开心。算1件。
2014年:他带她去三亚。这是最大的一件。算1件。
2017年:他打电话说想她了,第一次。还买了花。算2件。
2018年:他陪她去医院,还说“明年少出差”。算2件。
2020年:疫情,他被迫在家,但一直陪她。虽然是被动的,但陪伴本身也算。算1件。
2021年:最后一年,他一直陪她。算1件。
一共8件。有些年份有1件,有些有2件,大部分年份0件。
他定义一个新的虚拟变量:陪伴质量高。1表示当年有至少1件“特别的事”,0表示没有。
D6 = 陪伴质量高
赋值:
2013: 1
2014: 1
2017: 1
2018: 1
2020: 1
2021: 1
其他年份: 0
第十个模型:Y = a + b1×D2 + b2×D3 + b3×D6
结果:
Y = 3.98 - 1.65×D2 + 1.52×D3 + 1.34×D6
t值:D2=-2.54(p=0.017),D3=2.01(p=0.053)
D6=2.23(p=0.033)
R? = 0.51
R?提高到0.51!陪伴质量显著,系数1.34。有特别的事的年份,她的情感指数平均高1.34分。
0.51。三个虚拟变量,解释了51%的她。
还有49%呢?
他想,也许需要更细的划分。不是只有“出差多”和“出差少”,而是有几种不同的状态。
他定义一个新的变量:状态。把年份分成四类:
状态1:他出差少,她健康。这是最好的状态。
状态2:他出差多,她健康。这是“他忙她等”的状态。
状态3:他出差少,她不健康。这是“他在她病”的状态。
状态4:他出差多,她不健康。这是最坏的状态。
用三个虚拟变量表示这四种状态,以状态1为基准。
D7 = 状态2(出差多,健康)
D8 = 状态3(出差少,不健康)
D9 = 状态4(出差多,不健康)
他根据数据赋值。
状态1:1989-1996、1999-2003、2005-2015?等一下,需要仔细算。
1989-1996:他出差少(除了1997-1998),她健康。大部分是状态1。
1997-1998:他出差多,她健康。状态2。
1999:他出差少(估100天,算多?1999年估100天,按98为界算多,所以1999年是状态2?他需要重新算出差少的年份。)
他重新整理。
出差少的年份(D5=1):1989、1990、1991、1992、1993、1994、1995、1996、2000、2001、2003、2004、2007、2008、2009、2010、2011、2013、2020、2021。
出差多的年份(D2=1):□□、2015、2016、2017、2018、2019。
健康的年份(D3=1):1989-2015。
不健康的年份(D3=0):2016-2021。
现在组合:
状态1(出差少,健康):□□、2007、2008、2009、2010、2011、2013。
状态2(出差多,健康):□□、2015。
状态3(出差少,不健康):2020、2021。
状态4(出差多,不健康):2016、2017、2018、2019。
一共33年,状态1有18年,状态2有9年,状态3有2年,状态4有4年。
第十一个模型:用状态虚拟变量回归,以状态1为基准。
Y = a + b1×D7 + b2×D8 + b3×D9
结果:
Y = 5.87 - 1.76×D7 - 2.34×D8 - 3.98×D9
t值:D7=-2.98(p=0.006),D8=-2.34(p=0.027)
D9=-4.23(p<0.001)
R? = 0.58
R?=0.58!四个状态,解释了58%的她。
常数5.87,是状态1(他出差少,她健康)时的情感指数预测值。
状态2(他出差多,她健康)比状态1低1.76分,预测值4.11分。
状态3(他出差少,她不健康)比状态1低2.34分,预测值3.53分。
状态4(他出差多,她不健康)比状态1低3.98分,预测值1.89分。
2019年,状态4,预测值1.89分,实际2分,接近。
2020年,状态3,预测值3.53分,实际7分,差很多——因为状态3只有两年(2020、2021),但这两年她情感很高,因为他在。状态3的定义是“他出差少,她不健康”,但没考虑他是在陪她。2020-2021年,他不只是“出差少”,而是“一直在”。所以状态3的预测偏低。
这说明,需要更细的变量:他在的“质量”,不只是数量。
陆明远看着这个0.58,想着那剩下的42%。
那42%里,有2020-2021年的异常——他一直在,她情感高,但状态3预测不出来。有1990年的异常——结婚那年,情感9分,但状态1预测5.87分,差3.13分。有2003年的异常——非典那年,他在家,情感7分,状态1预测5.87分,差1.13分。
那些异常,是虚拟变量无法捕捉的。是那些“特别的事”——结婚、非典、三亚、最后的日子。
他把这些“特别的事”也做成虚拟变量。
D10 = 结婚(1990年)
D11 = 非典(2003年)
D12 = 三亚(2014年)
D13 = 最后(2020-2021年)
第十二个模型:加入这些特别事件。
Y = a + b1×D7 + b2×D8 + b3×D9 + b4×D10 + b5×D11 + b6×D12 + b7×D13
结果:
Y = 5.43 - 1.54×D7 - 2.12×D8 - 3.65×D9 + 3.21×D10 + 1.87×D11 + 2.34×D12 + 2.98×D13
t值:D7=-2.76(p=0.01),D8=-2.23(p=0.034)
D9=-3.87(p=0.001),D10=3.45(p=0.002)
D11=2.12(p=0.042),D12=2.56(p=0.016)
D13=3.12(p=0.004)
R? = 0.76
R?=0.76!所有变量都显著。七个虚拟变量,解释了76%的她。
常数5.43,是基准状态(状态1,没有特别事件)的预测值。
结婚那年,加3.21分,预测8.64分,接近9分。
非典那年,加1.87分,预测7.30分,接近7分。
三亚那年,加2.34分,预测7.77分,实际8分,接近。
最后两年,加2.98分,状态3加这个后,预测5.43-2.12+2.98=6.29分?2020年实际7分,2021年8分,还有点差距。但比之前好多了。
0.76。七个虚拟变量,解释了76%的她。
还有24%,无法解释。
那24%是什么?
是那些他不在的时候,她一个人扛着的日子?是那些她没告诉他的秘密?是那些没有任何原因的开心和不开心?是那些纯粹的随机?
他想,那24%里,有一部分是“她自己的”。是那些和他无关、和健康无关、和一切虚拟变量无关的东西。是她作为独立个体的存在。
他想起她日记里那些没头没尾的话。
2007年3月:“今天在路上看见一只小猫,黄色的,在晒太阳。我想起了小时候养的那只。”——这和他无关,和健康无关,和任何虚拟变量无关。这是她自己的。
2009年7月:“今天去医院,等结果的时候,看见一对夫妻。女的靠在男的身上。我一个人。”——这和他有关,但他不在。虚拟变量里,有“出差多”,有“不健康”,但那种“一个人在医院的孤独”,虚拟变量捕捉不到。
2014年5月:“我们一起看电影。很久没一起看电影了。他握着我的手。”——这和他有关,他在。虚拟变量里,有“状态1”(出差少健康),有“三亚”(特别事件),但那种“他握着我的手”的温度,虚拟变量捕捉不到。
虚拟变量可以量化状态,但无法量化感受。可以计数,但无法计情。
陆明远盯着那个0.76,久久说不出话。
0.76。他用了十二个模型,七个虚拟变量,解释了76%的她。
这个数字,比他之前用连续变量做的回归(0.71)还高一点。说明分类变量有时比连续变量更能捕捉真实情况——不是出差天数,而是“出差多”这个状态;不是健康分数,而是“健康”这个状态;不是陪伴次数,而是“有特别的事”这个状态。
生活,可能本来就是分类的。不是连续变化的,而是跳来跳去的。今天这样,明天那样,没有中间状态。
他想,如果把她的人生画成一条曲线,可能不是平滑的,而是一段一段的。状态1、状态2、状态3、状态4,加上那些特别事件的跳跃。
1989年:状态1,认识他(特别事件),跳高。
1990年:状态1,结婚(特别事件),跳得更高。
1991-1992年:状态1,平稳。
1993年:状态1,吵架?吵架不是特别事件,是状态的一部分?他定义的状态里没有吵架。所以1993年的下降,模型没捕捉到。
1994年:状态1,继续下降。
1997-1998年:状态2,下降。
1999年:状态2,平稳。
2000-2001年:状态1,平稳。
2002年:状态2,升副研究员(特别事件),跳一下。
2003年:状态1,非典(特别事件),跳高。
2004-2006年:状态1或状态2,平稳或下降。
2007年:状态1,拿项目(特别事件),跳一下。
2008年:状态1,父亲去世(特别事件),跳低。
2009-2011年:状态1或状态2,平稳。
2012年:状态2,平稳。
2013年:状态1,评正高(特别事件),跳一下。
2014年:状态2,三亚(特别事件),跳高。
2015年:状态2,平稳。
2016-2018年:状态4,下降。
2019年:状态4,最低点。
2020-2021年:状态3,最后的日子(特别事件),跳高,然后结束。
这条曲线,就是她的人生。有平稳,有跳跃,有高有低。那些跳跃,是他。那些平稳,也是他。
那天晚上,陆明远做了一个梦。
梦里他站在一个很大的棋盘上,棋盘上全是格子。每个格子上写着一个年份,格子有不同的颜色。红色的格子是状态1,蓝色的格子是状态2,绿色的格子是状态3,黑色的格子是状态4。有些格子闪着金光,那是特别事件的年份。
林墨站在棋盘中央,穿着那件白衬衫,扎着马尾。她在一格一格地走。
她走到1989年,格子闪着金光。她笑了。
她走到1990年,格子闪着更亮的金光。她笑得更开心了。
她走到1994年,格子是红色的,没有金光。她皱了皱眉,继续走。
她走到2003年,格子闪着金光,她停下来,站了一会儿,又笑了。
她走到2008年,格子闪着暗光,她低下头,站了很久。
她走到2014年,格子闪着金光,她笑了,笑得像1990年一样开心。
她走到2019年,格子是黑色的,没有金光。她站住,看着远方,没有表情。
她走到2020年,格子是绿色的,闪着金光。她笑了,但笑得不一样。那是最后的笑。
她走到2021年,格子是绿色的,闪着最亮的金光。她停下,回过头,看着他。
她伸出手,朝他挥了挥。
然后她消失了。
他站在原地,看着那个空空的棋盘。
陆明远醒了。
凌晨四点,窗外还是黑的。他躺在床上,想着那个梦。
那些格子,那些颜色,那些金光,就是他今天做的虚拟变量。
红色状态1,蓝色状态2,绿色状态3,黑色状态4。金光闪闪的,是那些特别的事。
她的人生,就是在这个棋盘上走的。一步一步,一年一年,从一个格子到另一个格子。有些格子她走得快,有些格子她走得慢。有些格子她笑,有些格子她哭,有些格子她面无表情。
他呢?他是那个棋盘。是他铺就了这些格子,是他决定了颜色的变化,是他带来了那些金光,也是他造成了那些黑暗。
他是她的全部虚拟变量。
陆明远起床,走到书桌前,提笔写到:
“林墨:
我终于知道什么是虚拟变量了。虚拟变量,就是把人生切成一段一段的格子。
那些格子,有红色的(我在家,你健康),有蓝色的(我出差,你健康),有绿色的(我在家,你不健康),有黑色的(我出差,你不健康)。
还有那些闪着金光的格子——1989年认识,1990年结婚,2002年升副研究员,2003年非典,2007年拿项目,2008年父亲去世,2013年评正高,2014年三亚,2020-2021年最后的日子。
你在这个棋盘上走了三十三年。从红色的格子走到蓝色的格子,从黑色的格子走到绿色的格子。从金光闪闪的格子走到暗淡无光的格子,再从暗淡无光的格子走到金光闪闪的格子。
最后,你停在2021年,那个绿色却闪着最亮金光的格子上,朝我挥了挥手。
然后你走了。
剩下我一个人,站在空空的棋盘上。
那些格子还在。红色的、蓝色的、绿色的、黑色的、闪着金光的、暗淡无光的。但走格子的人,不在了。
我用虚拟变量解释了76%的你。剩下的24%,是你自己。是那些格子无法定义的部分,是那些金光无法照亮的部分,是那些我永远无法知道的部分。
那24%,是你的自由。
谢谢你,用三十三年,教会我什么是虚拟变量,什么是人生的格子,什么是走格子的人。
从今以后,我会记住每一个格子的颜色,每一道金光的含义。我会在这个空棋盘上,继续走。
走到我也变成一道金光的那一天。”
写完之后,他把信折好,放回文件袋。
文件袋里已经有七封信了。
他走到阳台上,看着外面的夜空。五月的北京,凌晨四点,天快亮了。
他想,天亮之后,他要去看她。告诉她,他做了虚拟变量,他画出了人生的格子,他看见了那些金光。
她会听的。
她一直在听。