玩玩数据——主成分分析之番剧有多热?

问题
“火”,指受到关注。也就是“热度”。
如何量化评价一部番剧有多“火”?看播放量也许是一个不错的想法。不过,光靠播放量恐怕还不能说明问题。比如,下面两部番,哪个热度更高?
番剧A:100万播放,9万硬币,10万点赞。
番剧B:95万播放,10万硬币,11万点赞。
如果再加入多一些数据和变量,很容易就会变成下面这样:

能考虑到的变量还有很多很多。因此,如何构建一个打分指标,能够综合考虑这些因素,给出较为合适的热度?

该考虑哪些因素?
B站对于一般视频能给出的数据如下:
播放量、弹幕数、点赞数、评论数、投币数、追番数、评分人数、评分得分、集数、播出时间、分享数、收藏数。
由于我们只关注热度,也就是受关注的程度,因此播出时间、集数不在考虑之列。我们也不关注是非常好评还是差评如潮,因此不考虑具体评分得了多少分。
番剧与一般视频不同,没有收藏数,而是以追番数代替。所以再去掉收藏数。
最后,我们留下了8个指标:

我们会使用主成分分析来完成数据的分析解释。

Run Code!
数据获取时间:2021/9/6 1:46~1:50 AM
按照如下标准选择2020年新番:
正片,非剧场版
地区为日本,不计算同一部番的中配
已完结
不计算仅限港澳台或其它地区观看的番剧数据
最终获得有效番剧104部。经验证所有番剧均能获得如上8个变量的数据。
104部番剧中只有7部是非大会员也可观看的,所以大会员限定不是主要影响因素。
将数据导入R中,由于各个数值之间量级差异较大,对原始数据进行scale化之后使用princomp()完成主成分分析。

结果
A. 变量相关性

不难看出这8个指标之间具有相当严重的共线性问题。不过幸好主成分分析能够帮助我们重新组合一些非线性相关的独立指标。
B. 累积贡献率

可以看到第2主成分为止已经达到了89.4%的累计贡献率,说明可以用前2个主成分来近似代表这8个变量。
C. 变量对应主成分
根据载荷矩阵,画出各变量在这2个主成分上的载荷图:


在第1主成分轴上,所有变量都处于正轴,并且对该主成分的贡献是基本相同的。因此,这一轴可以理解成番剧的“综合互动度”,反映一部番是否有足够魅力让人愿意进行接触了解。可以说这基本上就是我们要求的热度。
第2主成分轴上,有主要正面影响的是点赞和观看,负面影响的是打分和评论。点赞和观看属于“浅交互”,也就是不需要怎么动脑,瞬间就可以完成的交互任务,而评分和回复基本是需要对番剧有一定了解之后才能进行的“深交互”。因此,这个轴上的数值越正,表明这部番的受众越倾向于蜻蜓点水了解一下这部番剧,反之,越负则表明受众越倾向于仔细品味它。换句话说,也就是所谓的“有效交互”,类比于(播放量+点赞数)/(打分+评论数),数值越低表示用户交互度越深。
D.样本映射
将原来的8维变量压缩到2维后,各个番剧在新的二维平面上的分布如下:

整体来看,这幅图很像火山图(Volcano Plot) 。绝大部分番剧集中在原点附近(卑微.jpg),少部分有自己的特色(“火”度高或者受众交互有特点,不过基本上这两者要么同时有,要么都没有)
《咒术回战》作为2020年B霸,自然是一骑绝尘,甚至成了离群点。但是,我们也发现,它在第2主成分轴上明显处于正向,说明它的观众基本是以浅交互为主。对比原始数据:

《咒术回战》的播放量是《某科学的超电磁炮T》(超炮T)的3.5倍,点赞量更是接近6倍,但是评论数被超炮T碾压,评分人数也对不起播放和点赞的倍数比。
把《咒术回战》从图上去掉,重新调整坐标轴范围之后,新的图如下:

对比下面的原始数据,《因为太怕痛就全点防御力了。》(盾娘)虽然播放量是第2(1.97亿),但是相对于《辉夜大小姐》等播放量上较为逊色的番剧,其他各项互动指标大都远远落后,因此综合实力被严重削弱了(我个人还挺喜欢这部的233)。这也从侧面表明,不能完全依赖播放量决定一部番剧的“火”度。


打分!
是时候回到最初的问题了。如何构建这样一个反映综合热度的函数呢?
我参考了下面的例子:
https://blog.csdn.net/qq_32925031/article/details/88562141
计算过程大致如下:

一番折腾之后,终于计算出了原来各个变量在“综合热度”中的权重。将标准化的数据代入,得到新的综合排名:

Horray! 这个专栏只是玩玩数据,番剧的评价因人而异,祝大家追番愉快~
