晋江文学城
下一章 上一章  目录  设置

10、第十章 拟合优度 拟合优度是 ...


  •   拟合优度是衡量一个模型对数据解释程度的指标,可在一起这么多年的他,看了这么多遍她留下的数据,真的理解她吗,懂她吗。

      陆明远发现自己在做一件以前从来不做的事:反复检查同一个模型。
      以前在统计局,他做数据分析,通常是一次性的。数据拿来,模型跑完,结果出来,报告写完,就结束了。他不会反复检查,不会来回验证,不会在一个模型上花太多时间。因为时间不够,因为任务太多,因为没必要。
      但现在不一样了。
      现在他有的是时间。而且,他面对的不是别人的数据,是她的数据。是他妻子的数据。是他用了三十一年才学会去读的数据。
      所以他反复检查,反复验证,反复琢磨。
      今天他要做的,是拟合优度。
      拟合优度是衡量一个统计模型对数据解释程度的指标。通常用R?表示,取值范围0到1。R?越接近1,说明模型对数据的解释力越强;越接近0,说明解释力越弱。
      他之前已经做了很多模型:情感指数对出差天数的回归,消费增量对出差天数的回归,日记次数对出差天数的回归,等等。每一个模型都有一个R?。
      他想知道,这些模型的拟合优度是多少。他想知道,他对她的影响,能解释她多少变化。
      他先从最简单的模型开始:情感指数对出差天数。
      数据:2007-2021年,15年的情感指数(Y)和出差天数(X)。
      他打开Excel,用之前的数据:
      2007: Y=4, X=87
      2008: Y=3, X=92
      2009: Y=3, X=85
      2010: Y=4, X=88
      2011: Y=3, X=95
      2012: Y=3, X=102
      2013: Y=4, X=98
      2014: Y=4, X=105
      2015: Y=3, X=110
      2016: Y=3, X=108
      2017: Y=3, X=112
      2018: Y=3, X=115
      2019: Y=2, X=118
      2020: Y=7, X=43
      2021: Y=8, X=12
      做回归。用软件跑一下。
      结果:
      Y = 9.82 - 0.062 × X
      t值:常数=6.34 (p<0.001),斜率=-4.82 (p<0.001)
      R? = 0.64
      R?=0.64,意味着出差天数可以解释她情感指数变化的64%。
      64%是一个很高的比例。在社会科学的实证研究里,R?能到0.3就算不错,0.5就算很好,0.64是极好了。
      也就是说,她心情的好坏,64%可以由他出不出差来解释。剩下的36%,是其他因素——工作、健康、天气、朋友、或者其他他不知道的东西。
      但他知道,那36%里,有一部分其实也和出差有关。比如健康,2016-2019年她身体不好,但没告诉他,所以他继续出差。如果告诉他,他可能就不会出那么多差。所以健康的影响,间接也是出差的影响。
      还有一部分,是工作的压力。她工作压力大的时候,他可能在出差,也可能不在。但工作压力本身,也和他的出差有关——他不在的时候,她一个人扛工作,压力更大。
      所以实际上,出差的影响可能比64%更大。
      但64%已经够大了。大到让他无法否认:他是她情绪的晴雨表。
      他接着做第二个模型:日记提到他的次数对出差天数。
      数据:2007-2021年,日记提到他的次数(Z)和出差天数(X)。
      2007: Z=9, X=87
      2008: Z=8, X=92
      2009: Z=7, X=85
      2010: Z=7, X=88
      2011: Z=6, X=95
      2012: Z=6, X=102
      2013: Z=5, X=98
      2014: Z=5, X=105
      2015: Z=4, X=110
      2016: Z=4, X=108
      2017: Z=3, X=112
      2018: Z=3, X=115
      2019: Z=2, X=118
      2020: Z=15, X=43
      2021: Z=28, X=12
      回归:
      Z = 24.87 - 0.21 × X
      t值:常数=5.21 (p<0.001),斜率=-3.98 (p=0.001)
      R? = 0.55
      R?=0.55。出差天数可以解释她日记里提到他次数变化的55%。
      55%,也很高。她写不写他,有一半多是因为他出不出差。他出差多,她写得少;他出差少,她写得多。简单直接。
      但这里有一个问题:2021年,他出差只有12天,她提到他28次,这个点离回归线很远。如果把这个点去掉,R?会更高。
      他试着去掉2021年,重新回归。
      数据去掉2021年,剩14年。
      Z = 18.32 - 0.15 × X
      R? = 0.72
      R?升到0.72。说明2021年是异常值,是因为她知道自己快走了,所以拼命写他。正常情况下,出差天数可以解释她日记里提到他次数变化的72%。
      72%,几乎四分之三。剩下的28%,可能是她自己的情绪波动、工作忙闲、或者其他因素。
      但72%已经足够说明问题:她写不写他,主要取决于他在不在。
      第三个模型:消费增量对出差天数。
      数据:2007-2021年,消费增量(W)和出差天数(X)。
      2007: W=1300, X=87
      2008: W=1246, X=92
      2009: W=1022, X=85
      2010: W=1206, X=88
      2011: W=1690, X=95
      2012: W=1513, X=102
      2013: W=1814, X=98
      2014: W=1480, X=105
      2015: W=1424, X=110
      2016: W=1687, X=108
      2017: W=1366, X=112
      2018: W=1667, X=115
      2019: W=1951, X=118
      2020: W=-1056, X=43
      2021: W=1525, X=12
      回归:
      W = -187.6 + 16.8 × X
      t值:常数=-0.43 (p=0.67),斜率=2.89 (p=0.01)
      R? = 0.39
      R?=0.39。出差天数可以解释消费增量变化的39%。
      39%不算低,但比前两个模型低。说明消费增量的波动,受出差影响,但还受其他因素影响——比如物价、收入、突发事件等。
      如果去掉2020年那个巨大的负值(-1056),R?会更高。
      去掉2020年,剩14年:
      W = 321.4 + 12.1 × X
      R? = 0.51
      R?=0.51。出差天数可以解释消费增量变化的51%。
      一半。他出差多,她花钱多;他出差少,她花钱少。这个关系,解释了51%。
      剩下的49%,是其他因素。但其他因素里,有多少是和他间接相关的?比如,他出差的时候,她一个人无聊,就去逛街,逛街就会花钱。无聊是直接原因,但无聊是因为他不在。所以归根结底,还是和他有关。
      他把三个模型的R?放在一起:
      情感指数 ~ 出差天数:R? = 0.64
      日记次数 ~ 出差天数:R? = 0.55 (0.72 去掉2021)
      消费增量 ~ 出差天数:R? = 0.39 (0.51 去掉2020)
      最高的是情感指数,64%。最低的是消费增量,39%。
      这说明什么?说明他最直接影响的是她的情绪,其次是她的日记,最后才是她的消费。情绪是最直接的,日记是情绪的反映,消费是情绪的补偿。
      情绪受影响,她就会写日记,就会花钱。但写日记和花钱,还受其他因素影响,所以R?低一些。
      但无论高低,出差都是最重要的解释变量。
      陆明远又做了另一个方向的回归:出差天数对情感指数。
      这不是因果,只是看看反向关系。
      X = 138.4 - 12.7 × Y
      R?还是0.64,和之前一样。因为R?是对称的,不管谁对谁回归,都一样。
      但系数不一样。情感指数每提高1分,出差天数减少12.7天。也就是说,如果他想让她开心一点,他就得少出差。每多开心1分,就要少出差将近两周。
      他从2分到8分,差了6分,需要少出差76天。2020-2021年,他确实少出了那么多差,她的情感指数也确实从2分升到7-8分。
      这个关系,用数据验证了。
      陆明远继续做,这次是多变量回归。
      模型:情感指数 ~ 出差天数 + 健康 + 年份
      之前做过,现在重新算一下R?。
      数据:2007-2021年,Y、X、健康(D3)、年份(t,2007=1,2008=2,...,2021=15)
      回归:
      Y = 7.82 - 0.031×X + 1.87×健康 - 0.09×t
      t值:常数=3.21(p=0.008),X=-3.45(p=0.005)
      健康=2.12(p=0.056),t=-1.98(p=0.072)
      R? = 0.71
      R?=0.71,比简单回归的0.64提高了0.07。说明加入健康和年份后,模型解释力更强了。
      71%的变异可以被解释。剩下29%,是随机误差,是无法测量的因素。
      0.71,这是一个很高的拟合优度。在实证研究里,这几乎是天花板了。
      他算了一下调整后的R?。
      调整R?是对R?的修正,惩罚那些不必要的变量。多变量回归中,变量越多,R?自然越高,但调整R?可以避免过拟合。
      调整R? = 1 - (1-R?)×(n-1)/(n-k-1)
      n=15,k=3
      调整R? = 1 - (1-0.71)×14/11 = 1 - 0.29×1.27 = 1 - 0.37 = 0.63
      0.63,和简单回归的0.64差不多。说明健康和年份的加入,并没有显著提高解释力。真正重要的,还是出差天数。
      陆明远又做了一个模型:把消费增量也加进去。
      模型:Y = X + 健康 + 年份 + W
      回归:
      Y = 8.12 - 0.028×X + 1.76×健康 - 0.08×t + 0.0012×W
      t值:X=-3.12(p=0.01),健康=2.01(p=0.07),t=-1.76(p=0.11),W=1.23(p=0.24)
      R? = 0.73
      R?提高到0.73,但消费增量的系数不显著。说明消费增量对情感指数没有直接的独立影响——消费是她填补缺席的方式,而不是她开心的原因。
      她花钱,不是因为开心;她花钱,是因为不开心。所以花钱多的时候,情感指数反而低。但在这个模型里,控制了出差天数之后,花钱的影响就不显著了。
      这说明,花钱只是中间变量,不是根本原因。根本原因是出差。
      陆明远把所有模型的R?列成一张表:
      模型因变量 自变量 R? 调整R?
      1情感指数 出差天数 0.64 0.64
      2日记次数 出差天数 0.55 0.55
      3日记次数(去2021)出差天数 0.72 0.72
      4消费增量 出差天数 0.39 0.39
      5消费增量(去2020)出差天数 0.51 0.51
      6情感指数 出差+健康+年份 0.71 0.63
      7情感指数 出差+健康+年份+消费0.73 0.62
      最高的是模型3,R?=0.72。最低的是模型4,R?=0.39。
      但无论高低,出差天数都是最核心的变量。在所有模型里,出差天数的系数都是显著的,而且方向一致——负向影响情感和日记,正向影响消费。
      这是一个稳健的发现。
      陆明远看着这些R?,想起了统计学里的一个概念:解释力。
      R?是解释力。0.64意味着他解释了64%的她。0.72意味着他解释了72%的她。0.51意味着他解释了51%的她。
      平均下来,他解释了她大概60%的人生。
      60%是一个什么概念?是及格线。是勉强及格。是他作为一个丈夫,对她的“贡献”——60%的解释力,剩下的40%,是她的工作、她的朋友、她的父母、她的健康、她的其他一切。
      但问题是,这60%的解释力,大部分是负面的。他解释了64%的情感波动,但那些波动里,大部分是她不开心的时候。他解释了72%的日记变化,但那些变化里,大部分是她不写他的时候。他解释了51%的消费波动,但那些波动里,大部分是她花钱填补空白的时候。
      他的解释力,是负的解释力。
      如果他不出差,他的解释力可能就变成正的了。但他出差了,所以他的解释力就是负的。
      他想,如果有一个模型,用“他在家的天数”做自变量,R?会不会更高?
      他重新定义变量:在家天数 = 365 - 出差天数。
      然后做回归:情感指数 ~ 在家天数。
      结果:
      Y = -2.34 + 0.032 ×在家天数
      R? = 0.64(和之前一样,只是符号相反)
      0.032,意味着每多在家一天,情感指数提高0.032分。在家100天,提高3.2分。在家365天,提高11.68分,超过满分10分——当然,这是线性外推,不一定成立。
      但方向是明确的:他在家,她开心。他不在家,她不开心。
      这个结论,不需要R?也知道。
      但R?给了它一个数字:64%。
      64%,就是他缺席的代价。
      陆明远又想到一个问题:如果把他所有的模型放在一起,能不能构建一个“综合拟合优度”?
      他想了一个办法:把三个因变量标准化,然后加总成一个综合指数。
      标准化:每个变量减去均值,除以标准差。
      情感指数的均值=3.8,标准差=1.63
      日记次数的均值=7.47,标准差=6.82(2021年的28次拉高了标准差,去掉2021年再算)
      消费增量的均值=1322,标准差=852(2020年的-1056拉低了均值,拉高了标准差,去掉2020年再算)
      他先去掉2020和2021两个异常年份,用2007-2019年的13年数据。
      重新计算:
      情感指数:均值=3.23,标准差=0.83
      日记次数:均值=5.15,标准差=2.08
      消费增量:均值=1526,标准差=297
      然后标准化:
      Y_std = (Y - 3.23)/0.83
      Z_std = (Z - 5.15)/2.08
      W_std = (W - 1526)/297
      然后加总:综合指数 = Y_std - Z_std - W_std?不对,方向和符号不一样。情感指数是正向的(越高越好),日记次数和消费增量是负向的(越高说明他越不在,她越不开心)。所以应该:综合指数 = Y_std - Z_std - W_std。
      或者更合理的是:综合指数 = Y_std - (Z_std + W_std)/2。
      他选了后者。
      然后做回归:综合指数 ~ 出差天数。
      结果:
      综合指数 = 3.21 - 0.045 × X
      R? = 0.81
      0.81!一个很高的R?。
      出差天数可以解释她综合状态变化的81%。
      81%意味着什么?意味着她的生活,八成和他有关。他的缺席,解释了八成她的不开心、她的沉默、她的花钱。
      剩下的19%,是命。
      陆明远盯着那个0.81,久久说不出话。
      0.81。他缺席的代价。他用三十一年测出来的数字。
      如果有一个机器可以测量一个人的情感、行为、生活状态,然后把这些数据输入电脑,跑一个回归,就会发现:这个人的变化,81%可以由另一个人的行为来解释。
      那个人是他。
      那些年,他以为自己是独立的。他以为他出差是工作,他加班是工作,他应酬是工作。他以为这些都是他的事,和她无关。他以为她在家里,好好的,不会受影响。
      但数据告诉他,她受影响了。受了81%的影响。
      他不在的每一天,都在她的情感、日记、消费里留下痕迹。那些痕迹积累起来,成了0.81。
      他想,如果有一个反事实的世界:他从不出差,天天在家,那她的生活会是什么样?
      那个世界的R?,可能也是0.81,但符号是正的。他解释了她81%的开心,81%的分享,81%的平静。
      可惜,那个世界不存在。
      存在的世界是:他解释了她81%的不开心,81%的沉默,81%的补偿。
      这就是他交出的答卷。
      那天晚上,陆明远做了一个梦。
      梦里他站在一个很大的会议室里,台上有人在讲数据。他仔细看,是林墨。她穿着那件白衬衫,扎着马尾,站在投影幕布前,正在讲一张表格。
      “这是2007年到2019年的数据。”她说,“大家看,这个模型的R?是0.81。这意味着什么?”
      台下没人回答。
      她自己说:“意味着,有一个变量,解释了她81%的人生。这个变量,是另一个人的行为。”
      她转过头,看着他。
      “明远,你知道这个人是谁吗?”
      他张了张嘴,说不出话。
      她笑了笑,说:“是你。”
      然后她走下讲台,朝他走来。她走到他面前,弯下腰,在他耳边轻声说:
      “0.81。你欠我的。”
      他醒了。
      凌晨四点,窗外还是黑的。他躺在床上,心跳得很快。那个数字还在脑子里转:0.81。0.81。0.81。
      他想,她说的对。他欠她的。
      欠她0.81的人生。欠她81%的开心。欠她那些本该属于她的、但因为他的缺席而失去的日子。
      他知道,无论是什么,都是在0.81的阴影下。

  • 昵称:
  • 评分: 2分|鲜花一捧 1分|一朵小花 0分|交流灌水 0分|别字捉虫 -1分|一块小砖 -2分|砖头一堆
  • 内容:
  •             注:1.评论时输入br/即可换行分段。
  •                 2.发布负分评论消耗的月石并不会给作者。
  •             查看评论规则>>