大数据文摘翻译作品
作者: Allen Downey
翻译:Cheng Kun
校对:孙沁(kiki)
欢迎个人转发朋友圈;其他机构或自媒体转载,务必后台留言,申请授权
去年秋天我在欧林学院讲授贝叶斯统计的入门课。我的学生们正在做一些优秀的项目,我便邀请他们来写出项目结果,作为我博客的特邀文章。
其中一支团队将贝叶斯生存分析运用到“冰与火之歌”的人物角色上,,这个系列由乔治•马丁所写。利用前五本书里的数据,他们为每个角色在即将出版的书中的命运,即是生是死,一一作了预测。
权力的游戏第五季将在4月12号播出,我们认为现在是个好时机来公开他们的预测报告。
贝叶斯生存分析之“权利的游戏
冰与火之歌这一系列被普遍认为“很残酷很极端”。在马丁的笔下,无论好坏老幼,主角配角,谁都有性命之虞。这个和“柯南”齐名的名声可不是空穴来风; 马丁的世界里916个有名字的角色,三分之一已经死亡,更不用说还有很多无名亡魂。
在这个报告中,我们来仔细看看小说中的死亡模式,并创建一个贝叶斯模型来预测角色在接下来的两本书里的生存概率。
通过使用冰与火之歌的维基数据,我们创建了一个数据集,包括了已出版的小说中所有的916个角色。对每一个角色,我们会统计他们第一次出现的章节和书目,是男性还是女性,是贵族还是平民,他们忠于哪一个家族,以及如果适用的话,在哪一章和哪一本书中死亡。我们使用这些数据来预测哪些角色将在未来的几本书中生存。
方法论
我们利用第七本书的内容,运用韦伯分布来推断人物的生存概率(韦伯分布:可以利用概率值很容易地推断出它的分布参数,被广泛应用与各种寿命试验的数据处理)。韦伯分布提供了一种风险函数模型,用于衡量在特定的年龄死亡的概率。韦伯分布取决于两个参数,k和lambda(^),这两个参数决定了其曲线的形状。
为了估计这些参数,我们从先验分布开始。对于活着的角色,我们记录其k或lambda值,通过比较计算韦伯分布与角色的风险函数,用来预测该角色还活着的事实。对于死去的角色,我们用同样的对比方法来检查参数是如何预测他们的死亡时间。
用于更新这一分布的主要代码是:
classGOT(thinkbayes2.Suite, thinkbayes2.Joint): def Likelihood(self,data, hypo): """Determineshow well a given k and lam predict thelife/death of a character """ age, alive = data k, lam = hypo if alive: prob =1-exponweib.cdf(age, k, lam) else: prob =exponweib.pdf(age, k, lam) return prob def Update(k, lam,age, alive): """Performsthe Baysian Update and returns the PMFs of k andlam""" joint =thinkbayes2.MakeJoint(k, lam) suite = GOT(joint) suite.Update((age,alive)) k = suite.Marginal(0,label=k.label), lam =suite.Marginal(1, label=lam.label) return k, lam defMakeDistr(introductions, lifetimes,k,lam): """Iteratesthrough all the characters for a given k and lambda. It then updates the k and lambda distributions""" k.label = 'K' lam.label = 'Lam' print("Updatingdeaths") for age in lifetimes: k, lam = Update(k,lam, age, False) print('Updatingalives') for age inintroductions: k, lam = Update(k,lam, age, True) return k,lam
对守夜人军团的观察,形成了如图3所示的后验分布。
图3:lambda的分布相当集中,约0.27,但k的分布更加分散。
为得出存活曲线,我们参照k和lambda的值,以及每个参数的90%可信区间。再使用原始数据绘图,得出可信区间,根据后验方法绘出存活曲线。
琼恩•雪诺
使用此分析方法,我们可以开始预测单个角色的存活概率,比如琼恩•雪诺。在《魔龙的狂舞》这本书的结尾,守夜人的生存可信区间(图4)是36%到56%。生存几率并不乐观,但琼恩•雪诺仍然活着。即使琼恩能活到第五本书的结尾,他能安然度过接下来的两本书的几率也已下降到30%和51%之间。
图4:数据被可信区间紧密包围着,中值曲线是一个合理的近似值。
然而值得注意的是,琼恩不是具有代表性的守夜人。他有着高贵的教育背景,并且训练有素,实力出众。考虑到守夜人的家庭,排位,教育,同样的分析方法得出只有一个守夜人是贵族。
在守夜人军团里只有11名贵族,所以可信区间如图5所示的宽度是可以理解的,但是, 最精确的生存曲线近似值表明,一个贵族背景并不会增加守夜人的存活率。
图5:当守夜人军团包括贵族成员时,下界的可信区间显著扩大,变得非常接近于零。
冰与火之歌里的大家族
90%的可信区间为大部分主要的家族占据。包括9大家族,守夜人,野人,还有一个“无家族”的类别,包括了所有未结盟的角色。
图6:90%可信区间,包括艾林家族(蓝色),兰尼斯特家族(金色),无家族(绿色)和斯塔克家族(灰色).
图7:90%可信区间,包括提利尔家族(绿色),徒利(蓝色),拜拉席恩(橙色),和守夜人(灰色).
图8: 90%可信区间,包括马泰尔家族(橙色), 坦格利安家族(栗色),葛雷乔伊家族(黄色),野人(紫色).
如图6-8所示,这些区间证明艾林、提利尔和马泰尔家族有更高的生存概率。支持这一结果的证据是,这些家族都远离书中的大多数主要冲突,不过这也意味着有更少的信息可供分析。对于这几个家族来说,我们只有5个或更少的死亡例子,所以他们的生存曲线没有很多数据点。这种不确定性反映出更大的可信区间。
相比之下, 我们的在北方的朋友, 考虑到书中他们树敌众多,他们队伍里还有许多重要人物,斯塔克家族,守夜人,野人有着最低预期存活率和较小的可信区间。这种分析方法考虑到整个家族的情况,但也有另外的方法来筛选角色。
男性和女性
冰与火之歌中受到称赞的一个原因是其中的女性角色丰富多样,但比起女性角色 (157位)仍然有更多的男性角色(769位)。尽管拥有更广泛的可信区间,女性角色的继续存活可能性可能比男性更乐观,远高于男性的幸存人数,如图9所示。
图9:维斯特洛家族的女性比男性更容易幸存。
阶层
不同于性别间的差异,贵族(429位)与平民(487位)之间的生存比例相近,由此提供了有趣的比较分析。图10显示,更多平民更可能在初登场后就很快死去,而那些在登场后活下来的平民,之后会活很长一段时间,幸存概率更可能会超过贵族。
图10:贵族初登场时,可能有微弱优势,但他们的生存概率会继续下降,与同等概率水平平民的曲线相比,贵族曲线下降速度更快。
具体角色
同样的分析方法可以扩展到具有共同特征的群体,按性别、家族、阶级分类,从而为单个角色提供粗略分析模型。艾莉亚•斯塔克,作为书中最受欢迎的人物之一,许多读者都非常好奇她未来的命运。这位女贵族忠于斯塔克家族,这一家族还包括其他高人气角色,如珊莎斯塔克和塔斯家族的布雷妮(虽然她在后面的书中才登场)。其他值得探索的有趣人物是兰尼斯特的贵族瑟曦,和可怜的弥塞拉•拜拉席恩。事实证明,并没有很多女贵族死亡。为了得到特定女性角色的更精确的可信区间,我们使用了贵族和平民女性的所有数据。
图11:虽然两组都有较大范围的生存概率,兰尼斯特的贵族却可能比斯塔克斯家族更容易死亡。
在图11中给出的数据是不确定的,但看起来艾莉亚比瑟曦的生存几率略高一筹。
两个配角分别是野人的公主瓦尔,和神秘的魁蜥,我们非常好奇她们的命运。
图12:表示次要人物的生存曲线, 魁蜥和瓦尔有截然不同的生存几率。
比起斯塔克斯和兰尼斯特家族,这两个人物都有更多的数据,但是她们也有难以分析的地方,即她们并未在这个系列的开始就登场。瓦尔在第二本书第一章中登场,所以她在整个系列里幸存下来的机会在10%和53%之间,这并不是鼓舞人心的的数据。
魁蜥在第一本书第二章中登场,她活下来的机会是58%到85%,明显优于瓦尔。这些曲线在图12中可以清楚的看到。
对于大多数的男性角色(除了曼斯•雷德),有足够的数据用来缩小家族,性别和阶级差别。
图13:众多角色中,不同阶层和联盟男性的生存曲线如图所示。
图13显示了兰尼斯特的兄弟有35%到79%的中等生存机会。达里奥•纳哈里斯数据相对不够准确,但是看起来幸存的希望不小,特别是考虑到他在第二本书的第五章节才登场。曼斯似乎有着最低的生存几率可以活到结尾,他在第二本书第二章节登场,生存的机会在19%至56%之间。
图14: 众多角色中,不同阶层和联盟男性的生存曲线如图所示。
而另一些人物,很多读者并不介意看到他们一命呜呼的结局,包括瓦德•佛雷侯爵和席恩•葛雷乔伊。然而,图14显示他们并不一定会死于非命 (或许对瓦德•佛雷侯爵来说,死亡是非常及时的解脱)。席恩似乎可以生存到最后。瓦德•佛雷侯爵在书的五分之二处登场,幸存几率在44%到72%。现在, 霍斯特•徒利可能是唯一可以老死的角色,所以也许佛雷侯爵也能活到最后。
结论
当然 ,在接下来的两本书中,谁生谁死更多是由情节和故事发展决定,而非统计数据。尽管如此,使用我们的数据,能看到不同角色之间生与死的可能性。对于某些人物,尤其是男性,我们能够做出具体的预测,推测他们在未来的小说中可以活多久。而由于数据量不足,女性角色和非中心家族人物的命运还难以判定。
我们的数据和代码都可以从GitHub数据库中找到。
关于数据集的一些注意事项
大多数角色被分类相当容易,但总有模棱两可的情况。
l 不效忠于坦格利安家族且来自埃索大陆的人物。
l 河间地的人物,要么是没人知道效忠于谁的平民,要么是无旗兄弟会,或忠诚度模棱两可的勇士团。
l 贵族,大多是追逐个人利益,典型代表是佛雷家族, 拉姆斯波顿或者培提尔•贝里席。
原文:http://allendowney.blogspot.com/2015/03/bayesian-survival-analysis-for-game-of.html
【译者简介】
有意联系译者,请给“大数据文摘”后台留言,附自我介绍及微信ID,谢谢!
孙沁(Kiki), 美国留学五年,现Emory University生物统计硕士在读。对Clinicaltrails,CancerPrevention, HIV/AIDS以及Food Science/Nutrition等领域很感兴趣。毕业后希望在Pharmaceutical/ Biotechnological/ Healthcare Industries/Hospital工作,也想尝试医疗健康方向的咨询工作(LifeScience Consulting)。希望结交对医疗数据有兴趣的朋友,也希望大家帮忙推荐此方向的实习和工作机会给我。