贝叶斯生存分析之“权利的游戏”-阿里云开发者社区

开发者社区> 大数据文摘> 正文

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

简介:

去年秋天我在欧林学院讲授贝叶斯统计的入门课。我的学生们正在做一些优秀的项目,我便邀请他们来写出项目结果,作为我博客的特邀文章。


其中一支团队将贝叶斯生存分析运用到冰与火之歌的人物角色上,,这个系列由乔治•马丁所写。利用前五本书里的数据,他们为每个角色在即将出版的书中的命运,即是生是死,一一作了预测。


权力的游戏第五季将在412号播出,我们认为现在是个好时机来公开他们的预测报告。

贝叶斯生存分析之“权利的游戏

0?wxfmt=jpeg

冰与火之歌这一系列被普遍认为“很残酷很极端”。在马丁的笔下,无论好坏老幼,主角配角,谁都有性命之虞。这个和“柯南”齐名的名声可不是空穴来风; 马丁的世界里916个有名字的角色,三分之一已经死亡,更不用说还有很多无名亡魂。


在这个报告中,我们来仔细看看小说中的死亡模式,并创建一个贝叶斯模型来预测角色在接下来的两本书里的生存概率。


通过使用冰与火之歌的维基数据,我们创建了一个数据集,包括了已出版的小说中所有的916个角色。对每一个角色,我们会统计他们第一次出现的章节和书目,是男性还是女性,是贵族还是平民,他们忠于哪一个家族,以及如果适用的话,在哪一章和哪一本书中死亡。我们使用这些数据来预测哪些角色将在未来的几本书中生存。


方法论

我们利用第七本书的内容,运用韦伯分布来推断人物的生存概率(韦伯分布:可以利用概率值很容易地推断出它的分布参数,被广泛应用与各种寿命试验的数据处理)。韦伯分布提供了一种风险函数模型,用于衡量在特定的年龄死亡的概率。韦伯分布取决于两个参数,klambda^,这两个参数决定了其曲线的形状。


为了估计这些参数,我们从先验分布开始。对于活着的角色,我们记录其klambda值,通过比较计算韦伯分布与角色的风险函数,用来预测该角色还活着的事实。对于死去的角色,我们用同样的对比方法来检查参数是如何预测他们的死亡时间。


用于更新这一分布的主要代码是:

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所示的后验分布。

0?wxfmt=jpeg
3:lambda的分布相当集中,0.27,k的分布更加分散。


为得出存活曲线,我们参照klambda的值,以及每个参数的90%可信区间。再使用原始数据绘图,得出可信区间,根据后验方法绘出存活曲线。


琼恩•雪诺

使用此分析方法,我们可以开始预测单个角色的存活概率,比如琼恩•雪诺。在《魔龙的狂舞》这本书的结尾,守夜人的生存可信区间(4)36%56%。生存几率并不乐观,但琼恩•雪诺仍然活着。即使琼恩能活到第五本书的结尾,他能安然度过接下来的两本书的几率也已下降到30%51%之间。

0?wxfmt=jpeg
4:数据被可信区间紧密包围着,中值曲线是一个合理的近似值。


然而值得注意的是,琼恩不是具有代表性的守夜人。他有着高贵的教育背景,并且训练有素,实力出众。考虑到守夜人的家庭,排位,教育,同样的分析方法得出只有一个守夜人是贵族。


在守夜人军团里只有11名贵族,所以可信区间如图5所示的宽度是可以理解的,但是, 最精确的生存曲线近似值表明,一个贵族背景并不会增加守夜人的存活率。

0?wxfmt=jpeg
5:当守夜人军团包括贵族成员时,下界的可信区间显著扩大,变得非常接近于零。


冰与火之歌里的大家族

90%的可信区间为大部分主要的家族占据。包括9大家族,守夜人,野人,还有一个“无家族”的类别,包括了所有未结盟的角色。

0?wxfmt=jpeg
6:90%可信区间,包括艾林家族(蓝色),兰尼斯特家族(金色),无家族(绿色)和斯塔克家族(灰色).


0?wxfmt=jpeg

7:90%可信区间,包括提利尔家族(绿色),徒利(蓝色),拜拉席恩(橙色),和守夜人(灰色).


0?wxfmt=jpeg
8: 90%可信区间,包括马泰尔家族(橙色), 坦格利安家族(栗色),葛雷乔伊家族(黄色),野人(紫色).


如图6-8所示,这些区间证明艾林、提利尔和马泰尔家族有更高的生存概率。支持这一结果的证据是,这些家族都远离书中的大多数主要冲突,不过这也意味着有更少的信息可供分析。对于这几个家族来说,我们只有5个或更少的死亡例子,所以他们的生存曲线没有很多数据点。这种不确定性反映出更大的可信区间。


相比之下, 我们的在北方的朋友, 考虑到书中他们树敌众多,他们队伍里还有许多重要人物,斯塔克家族,守夜人,野人有着最低预期存活率和较小的可信区间。这种分析方法考虑到整个家族的情况,但也有另外的方法来筛选角色。

男性和女性

冰与火之歌中受到称赞的一个原因是其中的女性角色丰富多样,但比起女性角色 (157)仍然有更多的男性角色(769)。尽管拥有更广泛的可信区间,女性角色的继续存活可能性可能比男性更乐观,远高于男性的幸存人数,如图9所示。

0?wxfmt=jpeg
9:维斯特洛家族的女性比男性更容易幸存。


阶层

不同于性别间的差异,贵族(429)与平民(487)之间的生存比例相近,由此提供了有趣的比较分析。图10显示,更多平民更可能在初登场后就很快死去,而那些在登场后活下来的平民,之后会活很长一段时间,幸存概率更可能会超过贵族。

0?wxfmt=jpeg
10:贵族初登场时,可能有微弱优势,但他们的生存概率会继续下降,与同等概率水平平民的曲线相比,贵族曲线下降速度更快。


具体角色

同样的分析方法可以扩展到具有共同特征的群体,按性别、家族、阶级分类,从而为单个角色提供粗略分析模型。艾莉亚•斯塔克,作为书中最受欢迎的人物之一,许多读者都非常好奇她未来的命运。这位女贵族忠于斯塔克家族,这一家族还包括其他高人气角色,如珊莎斯塔克和塔斯家族的布雷妮(虽然她在后面的书中才登场)。其他值得探索的有趣人物是兰尼斯特的贵族瑟曦,和可怜的弥塞拉•拜拉席恩。事实证明,并没有很多女贵族死亡。为了得到特定女性角色的更精确的可信区间,我们使用了贵族和平民女性的所有数据。

0?wxfmt=jpeg

11:虽然两组都有较大范围的生存概率,兰尼斯特的贵族却可能比斯塔克斯家族更容易死亡。


在图11中给出的数据是不确定的,但看起来艾莉亚比瑟曦的生存几率略高一筹。


两个配角分别是野人的公主瓦尔,和神秘的魁蜥,我们非常好奇她们的命运。

0?wxfmt=jpeg
12:表示次要人物的生存曲线, 魁蜥和瓦尔有截然不同的生存几率。


比起斯塔克斯和兰尼斯特家族,这两个人物都有更多的数据,但是她们也有难以分析的地方,即她们并未在这个系列的开始就登场。瓦尔在第二本书第一章中登场,所以她在整个系列里幸存下来的机会在10%53%之间,这并不是鼓舞人心的的数据。


魁蜥在第一本书第二章中登场,她活下来的机会是58%85%,明显优于瓦尔。这些曲线在图12中可以清楚的看到。


对于大多数的男性角色(除了曼斯•雷德),有足够的数据用来缩小家族,性别和阶级差别。

0?wxfmt=jpeg
13:众多角色中,不同阶层和联盟男性的生存曲线如图所示。


13显示了兰尼斯特的兄弟有35%79%的中等生存机会。达里奥•纳哈里斯数据相对不够准确,但是看起来幸存的希望不小,特别是考虑到他在第二本书的第五章节才登场。曼斯似乎有着最低的生存几率可以活到结尾,他在第二本书第二章节登场,生存的机会在19%56%之间。

0?wxfmt=jpeg
14: 众多角色中,不同阶层和联盟男性的生存曲线如图所示。


而另一些人物,很多读者并不介意看到他们一命呜呼的结局,包括瓦德•佛雷侯爵和席恩•葛雷乔伊。然而,14显示他们并不一定会死于非命 (或许对瓦德•佛雷侯爵来说,死亡是非常及时的解脱)。席恩似乎可以生存到最后。瓦德•佛雷侯爵在书的五分之二处登场,幸存几率在44%72%。现在, 霍斯特•徒利可能是唯一可以老死的角色,所以也许佛雷侯爵也能活到最后。


结论

当然 ,在接下来的两本书中,谁生谁死更多是由情节和故事发展决定,而非统计数据。尽管如此,使用我们的数据,能看到不同角色之间生与死的可能性。对于某些人物,尤其是男性,我们能够做出具体的预测,推测他们在未来的小说中可以活多久。而由于数据量不足,女性角色和非中心家族人物的命运还难以判定。


我们的数据和代码都可以从GitHub数据库中找到。


原文发布时间为:2015-04-20

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
大数据文摘
使用钉钉扫一扫加入圈子
+ 订阅

官方博客
官网链接