前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[译]贝叶斯生存分析之“权利的游戏”

[译]贝叶斯生存分析之“权利的游戏”

作者头像
大数据文摘
发布2018-05-21 14:42:20
8050
发布2018-05-21 14:42:20
举报
文章被收录于专栏:大数据文摘大数据文摘

大数据文摘翻译作品

作者: 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数据库中找到。

关于数据集的一些注意事项

大多数角色被分类相当容易,但总有模棱两可的情况。

  1. 性别——这是最直接的方式,书中没有性别模糊的角色。
  2. 贵族——维斯特洛的大小家族都算贵族,但雇佣的骑士就不是贵族。对于厄索斯大陆的角色,我使用最通俗的判断方法——基于金钱和权力,它通常是一个简单的调用方式。野人,我认为军事领导人是贵族,尽管这通常是模糊的边线。守夜人军团,我以他们加入军团前的地位来判定,和判断来自维斯特洛的角色方法一样。对于私生子的阶级判定,我们因人而异。生长在贵族家庭,接受了教育和贵族培训的私生子,也算作贵族。因此琼恩•雪诺是贵族,但像詹德利这样的人物就不是贵族。
  3. 死亡——可能复活的人物(如贝里•唐德利恩)在第一次死亡时会被判定为死亡。幽魂不算活人,但其他人算。对于不确定是否死亡的主要人物,我们会单独讨论并得出最终结论。
  4. 家族——这是最棘手的,因为有些人忠诚于多个家族或更改过效忠对象。我们决定根据实际情况逐一进行分析。三个主要的没有明确效忠对象的角色分组:

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)。希望结交对医疗数据有兴趣的朋友,也希望大家帮忙推荐此方向的实习和工作机会给我。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档