数据:Flappy Bird到底有多难?
虽然我的数据话题计划里已经积攒了十多个想写的话题,但一直都没有动笔开始,今天我终于决定开始写一写和数据有关的有趣的话题了。我认为有三类数据话题可写,首先是方法论,其次是科班知识,然后是趣味话题。方法论和科班知识都会比较枯燥,但这个世界上其实是有很多有趣的的人做的有趣的数据分析案例的,因此可能以后有关数据的趣味话题我会写的多一些。
今年的早些时候,一夜之间周围圈子里很多人都在玩一款叫Flappy Bird的手游,然后就像中国人干其他事情一样,一夜之间大家又都不玩了。我一般不跟风,这次是在这款游戏在app store下架以后,凭借越狱的IPHONE4,玩了几次。这真是款让人抓狂的自虐游戏啊,无论是规则还是操作方法都简单到极致,但什么都无法阻止你一次次的干脆失败和一次次的弱智开始。我的总结是,对于一个新手来说,一般都是0-3分,想超过3分就很难了,更多的时候是0分或者1分。
大多数人都会觉的,这款游戏太难了!真的是太难了!!但这种表述只是感性的表述。我们如何理性的去表述下Flappy Bird到底有多难?或者说我们如何用统计数据去印证Flappy Bird到底有多难?这是一个有趣的话题。一般的想法会是,多找点人,统计一下他们玩Flappy Bird的分数,就可以知道有多难了。这种方法没什么错误,只是太过简单了,虽然可以得到类似“只有1%的人在游戏中可以得到10分以上”的数据结论,但这种表述远远不够有趣。我在译言上看到了一篇有关Flappy Bird到底有多难的译文,眼睛一亮,这个分析很有趣,并且能量化Flappy Bird到底有多难。下面引述的原文较少,更多的是我对数据的解读。
Flappy Bird到底有多难啊?- 连线科技
原文标题:How Difficult is Flappy Bird?
原文来源:wired.com
原文作者:Rhett Allain
一,我的表现有所提高吗?
统计方法:记录得分和游戏次数,将其绘制成以游戏次数为自变量,得分为函数的图表。
这是作者分享的第一份图表数据,从图表上你可以看到,Flappy Bird真的好难啊!
1,直观看,记录了150次游戏,最高7分,看上去就不容易。
2,大多数的点在0、1、2、3,这4个数上,超过3分的极其罕见。歌词大意是,一般情况下,每次玩最多通过3个管道。这个统计数据和我的感性认识是一致的,估计和大多数人的直观感受都是一致的。
3,随着游戏次数的增加,分数并没有显著的提升,可以说几乎没有什么提升。从侧面说明了游戏的难度,不太会因为熟练程度的提升而提升得分数,更多的可能是心理、运气或其他原因。
4,趋势线的R平方值是0.02901,离1很远,说明用趋势线预测的估计值和对应的实际值之间相差较大,这个趋势线基本不可靠。趋势线在我的话题计划里,这属于科班知识,应该深究一下。
5,通过FIT(Framework of Integrate test,验收测试框架)的结果看,随着时间的推移得分缓慢提高。如果之前从未玩过,头一次尝试将获得0.7004的得分。每次玩,得分将较之前提高0.005028。FIT目前不在我的话题计划,我对此一点都不了解。不过这不重要,关键是得到的数据结果,每次提高0.005028,这表明这游戏的难度很大,所以肉眼几乎看不出得分的增长。
二,如果想的39分(作者女儿的得分),得玩多少次呢?
统计方法:简单的公式计算
1,因为伪线性拟合(译注3)的缘故,作者会毫不犹豫地指出这看上去就不像是个合理的数值。我一点都不明白是啥意思~
2,作者要玩7617次才可能得到39分,看上去几乎是不可能完成的任务。
3,7617次是什么概念呢?作者统计自己每次玩大约花费12秒,也就是7617次要花上25.57小时,这指的是连续玩不间断的时间。
三,通过开口管的概率
统计方法:用柱状图展示得分的分布次数
1,总共150次,88次通过了第一个管道,概率=88/150=0.587。
2,在那些通过管道1的88次里,41次通过了管道2,概率=41/88=0.466。
原文里前面有两个设想和一个规则问题:
设想1,随着时间的增长我的技术没有任何的提高(到目前为止这个设想相当的可靠)。
设想2,通过第二个开口管与以何种方式通过之前那个管完全无关。
规则1,Flappy Bird这款游戏,只要你飞过开口管的一半距离,它就会给你分数
0.466还算不赖,没比0.587低多少。作者只提供了图表没提供具体数字,不知道后面管道的概率,我想应该是递减的。我的判断依据是,人的习惯性操作会增加犯错的几率,后面的概率会持续变低,但也不会低很多。
四,如果通过每一根开口管的概率都是0.587,能走到多远
作者写了个Python程序来计算150次,得分的分布。
黄色柱状图是通过程序模拟计算出来的得分分布,结果看上去和他自己真实的测试数据相似。
五,获取每个分数,尝试次数的平均值
执行模拟函数直到得到分数1分,然后数下总共运行了多少回。以上行为重复100次来获得一个尝试次数的平均值(和标准差)。
此为大杀器:
1,想得19分,需要62799次。想得25分,几乎需要一百万次。这个结论和第二部分差异很大(39分,7617次),我倾向于真相在中间。
2,1分到15分,看上去上升不明显。从15分开始,曲线陡升。其实1分到15分的数值上升也是相当明显的,只是纵坐标太大了,不显眼而已,这是展示数据图表的小伎俩。
OK,我们通过一些量化的数据,终于知道了Flappy Bird到底有多难。
涉及的科班知识:趋势线/R平方值、FIT、概率
另,知乎上也有高质量的问答:连续玩 Flappy Bird 这样的游戏,得分是什么分布?
网友“Glenn Qian”回答的内容和上面那篇文章比较一致:
假设你发挥异常稳定,每一个关卡成功通过的概率都是p,那么得分应该是一个几何分布。
1,假设发挥异常稳定 = 设想1,随着时间的增长我的技术没有任何的提高
2,每一个关卡成功通过的概率都是p = 设想2,通过第二个开口管与以何种方式通过之前那个管完全无关。
最终产出的分布图比较相近,其结论是:
得分低的很多是显然的。
至于得分高的比较多的原因,可能的答案:
1. 你心理素质好,分越高状态也越好,后期 p 大幅上升。
2. 相比于低分,高得分给你留下的心理印象更深,因此误以为次数也较多。补充:
(如果)0分1分比较多,可能是因为只有第一个关卡是从较远处飞过去,需要调整手感,后面每个关卡间的过渡都是一样的。
至于20分以上比较多的话,大概可以理解为“玩顺手了”之类的意思吧。实际上几何分布是“无记忆性”的,也就是(p不变的情况下)0分开始玩到10分的难度和10分开始玩到20分的难度一样。因此如果后期玩顺了,p增加之后,同样拿10分会更轻松。
文不对题
你说的我们都知道了。谈谈第二个想法吧
少来!