STAT
数据处理与可视化报告
——基于微博分析
引言
2009年8月14日,新浪微博作为一款为大众提供娱乐休闲生活服务的信息分享和交流平台开始内测,至今已有13年有余。截至2021年底,微博的月活跃用户数为5.73亿。随着Web3.0时代到来,新闻信息更多地依靠社交媒体传播,人们的关系也更加深刻地卷入社交媒体,微博已然成为社会的一面镜子。
同时,微博也带来了一系列的问题:“网络水军”层出不穷,“饭圈乱象”被官媒痛批,虚假的数据与热度随处可见。
我们将从微博热门话题榜切入这个问题,通过对于数据的分析,回答以下问题:微博上热门的话题在数据上有什么特征?微博上热门的话题都是关于什么主题的?以及对少数展现出特殊特点的话题进行进一步分析。
/////
数据的选择、获取与处理
2.1 数据的选择
我们的分析主要将基于新浪微博热门话题榜进行。新浪微博热门话题榜是根据社会热点、个人兴趣等条件形成的相关专题页面,页面自动收录以#话题词#形式发布的微博。一定时间内,大规模微博用户对同话题的阅读和讨论数持续增加,体量达到一定程度,并形成全平台的关注时,则会将该话题送入微博话题榜。每天,在数以亿计的微博发布中,高达20%的微博自发带上了标识话题的双井号“##”,其中保持活跃话题量达近百万。
每当有微博贴合相关话题时,网友就会自发以##设置话题发表言论增加话题讨论数,这么做不仅可以增加话题流量,同时该微博可以蹭话题热度增加曝光,让更多人关注到。正因为热门话题榜这个特质,许多明星、企业会制造话题让粉丝聚集讨论,成为引领该热门话题的意见领袖者;或借助热点事件,结合自身品牌进行话题跟随,成为该热门话题的关注者。他们的最终目的无外乎增加粉丝,宣传品牌,或品牌营销。
图 1微博热搜榜
根据我们的观察判断,不同于实时刷新的微博热搜榜,微博热门话题榜的更新频率较低,总体上以小时为单位。同时,话题的上榜规则也并非仅以搜索次数为标准,而是结合了阅读量、讨论量等指标。因此,我们的分析将主要基于话题的阅读量和讨论量这两项指标展开。
2.2 数据的获取与初步处理
数据的获取通过爬虫进行,程序主要使用python的request包。从2022年11月6日至2022年11月25日共20天手动进行数据爬取,两次爬取之间的时间间隔在1小时至2小时左右(除夜间时段外)。爬取的数据包括:上榜话题标题、上榜话题排名、上榜话题阅读量、上榜话题参与量、上榜话题的分类(由微博给出)。最终,共使用爬虫获取了223个时间点的微博热门话题榜数据。
在获取到的原始数据的基础上,对数据进行了整合处理,并最终形成了类似于“时间序列”的数据集。使用python的bar_chart_race包对该数据集进行了动态的可视化,以便直观、迅速地一瞥微博排行榜的变动过程。由于微博热门话题榜上的上榜话题数量并非恒定不变,而是经常在20-70条之间变化,在作图时仅展示阅读量和讨论量排名前20的数据。
/////
回归——阅读量和参与量的关系分析
由于话题榜中的阅读量和参与量是随时间不断变化的,且各话题之间存在上榜的时间差异,因此在对其阅读量和参与量之间的关系进行分析时,我们统一使用各话题最后一次在榜时的数据。
3.1 相关性分析
微博热门话题榜中最直接的数据就是阅读量和参与量。直观而言,我们首先做出预设:该两者之间可能存在线性相关关系。首先,我们对阅读量和参与量的序列进行了相关系数的计算,以获取其是否存在线性相关性。计算得到,阅读量与参与量之间的相关系数为0.3309,即线性相关关系并不强——这与我们的预期是不符的。
于是我们需要对预设进行修改。联想到一般的微博使用习惯中,一个用户的阅读量必然高于其参与量,因此对于话题而言,阅读量的增速势必高于参与量的增速,两者之间的关系可能并非线性相关。这使我们想到了经济学中的弹性概念:一个变量相对于另一个变量发生的一定比例的改变的属性。因此,我们对阅读量和参与量分别取对数后再次计算其相关系数,得到相关系数为0.8391,展现出了较强的线性相关性。因此,在进一步的分析中,我们将从对数处理后的阅读量和参与量入手。
3.2 回归分析
为了分析阅读量和参与量之间进一步的关系,我们对其进行回归,并建立如下式所示的单变量回归模型:
使用statsmodels包中的最小二乘回归,最终得到回归结果:截距项与自变量系数分别为9.7528和0.8201,两者均显著。回归方程的拟合优度( )为0.704。因此可以认为阅读量与参与量之间存在如下关系:话题的参与量每变动1%,其阅读量将平均变动0.82%。
3.2 回归分析的可视化
3.3.1
回归分析中的异常点分析
回归分析的结果基本与我们的预期相符合。下面我们将对其进行可视化的展示,并在此基础上进一步挖掘、分析问题。
我们调用seaborn包进行回归图像的绘制,并最终得到如下图所示的回归图像:
图 2log(read),log(mention)回归1
回归图像中每个散点代表一个话题。大多数点集中在回归直线附近,但有少数点偏离回归直线较远,因此我们认为数据中可能存在一些距离回归得到的“较普遍规律”较远的“异常点”,具有进一步分析的价值。由于回归直线是一条具有递增趋势的直线,我们可以将“异常点”分为两部分考虑:
参与类话题:分布在直线下侧的点,具有相较相同水平参与量的话题,阅读量更少的特点。
吸睛类话题:分布在直线上侧的点,具有相较相同水平参与量的话题,阅读量更多的特点。
在这里我们标注出了10个具有较为明显特征的话题(回归残差绝对值前十名),对其进行进一步的分析,如下图所示:
图 3log(read),log(mention)回归2
初步分析得到如下表所示的结果:
我们依此可以得到初步的结论:“参与类”话题的高参与量多数由明星效应引起;“吸睛类”话题的高阅读量则大多数归功于包括媒体、官方账号在内的高关注度账号参与和参与讨论的知识门槛。
3.3.2
话题类别分组回归与可视化
在我们从微博网页版中爬到的数据中,微博对于每个话题都进行了分类,共有三十余个大类、若干小类之分。在回归分析之余,我们对于各分类下话题阅读量与参与量之间关系、不同分类关系的比较产生了兴趣。因此,考虑对上述数据进行分组后分别回归,并绘制回归图像。
由于微博本身自带的分类数量过多,直接对其进行分组回归有过于琐碎之虞。我们在这里采取了手动进行第二次分类的做法,将二十余个大类归纳进3个大类中:娱乐、社会和生活,并据此进行分类回归。具体的分类方法如下:
完成分类后,我们调用seaborn包,进行分类回归图的绘制,具体结果如下:
图 4log(read),log(mention)分类回归
在绘制的回归图像中,三种话题分类的回归直线较为接近,社会、生活、娱乐分类的回归直线斜率分别为0.9647、0.8081和0.7473,即社会类话题的回归直线相较总体回归直线更为陡峭,生活、娱乐分类的回归直线则更为平缓。也就是说,对于相同参与度的话题,社会类话题的阅读量更大;对于相同阅读量的话题,社会类问题的参与度更低。这一结论与我们在分析离群点时所观测到的规律总体上是吻合的:
娱乐类话题受粉丝效应的影响大,若话题中有明星本人或“粉丝大咖”参与,则会造成“一呼百应”的效果,粉丝愿意且积极参与评论。
社会类话题中常有新闻媒体、官方账号等参与,这些账号具有广泛的受众,传播广泛,且与明星粉丝相比,普通网友参与社会话题讨论的热情较低,因此其参与度较低。同时,社会类话题中存在大量专业性较强的内容,如法律、科技等相关话题,参与门槛较高而往往呈现出“专家说,网友看”的格局。
生活类话题则介于两者之间:话题贴近生活、参与门槛较低,话题中的主导或热门参与者常常是营销号等,受众广泛的同时较常出现“蹭热度”、在话题中讨论无关内容等情况。
3.3.3
对分组回归回归系数的假设检验
以上结论是我们通过可视化加之观察得到的,并不能证明其在统计学意义上也是显著的。因此,我们将通过在对于某两个组别的合并回归中添加自变量与虚拟变量的交叉项,并进行检验,在统计学意义上说明不同类别模型中回归直线斜率是否有显著差别。具体模型如下:
其中social为虚拟变量,0代表非社会类,1代表社会类; live为虚拟变量,0代表非生活类,1代表生活类。
P值小于2.2*10^(-16),拒绝原假设,认为 模型回归直线斜率不全相等,随后我们将三种分类的样本进行两两分组检验。具体模型如下:
最终得到的结果如下表所示:
由此可以看到,社会类话题和另外两类话题的回归系数间均存在显著差异,而娱乐、生活话题的回归系数之间不存在显著差异。由此我们可以得出结论:娱乐类和生活类话题阅读量与参与量之间的关系模式与社会类话题不同,在相同的参与量水平下,娱乐类和生活类话题的阅读量较社会类更低。
3.4 关于广告投放的回归与可视化
众所周知,微博平台上有大量的广告投放内容存在。与上述关于话题分类的探讨类似,我们对有广告投放的词条与非广告投放词条的阅读量、参与量间关系产生了兴趣。
我们首先通过词条名直接判断是否是广告,然后在微博进行词条搜索之后重新判别是否为广告,最终产生两组标记,第一组标记只考虑“明广”的场合,即只要看到词条名就能判断是否广告内容的情况;第二组数据同时考虑“明广”与“暗广”的情形,词条名本身无法判断、点开词条后才会发现是广告的内容和也被包括在内。在这样的前提下,分别对两组标记数据进行分组回归。回归结果如下:
图 5(明广)回归
图 6(明广+暗广)回归
回归分析系数在5%显著性水平下均显著。可以明显看出,大多数广告词条讨论量与阅读量都处于较低水平,与实际情况相符。图中的异常点,即虽为广告但阅读量、讨论量都很高的话题,是由于与综艺和电视剧相关、参演明星转发相关微博,引起大量粉丝或者水军参与导致。
直观上我们认为:广告话题和非广告话题阅读量与参与量之间的关系模式存在区别。下面,类似地对其回归系数是否存在差异进行假设检验。具体模型如下:
其中,dummy为虚拟变量,0代表非广告,1代表广告。
针对仅考虑“明广”情形,p=0.196,无法在5%显著性水平下拒绝原假设,即“明广”与非“明广”话题阅读量与讨论量之间的关系模式差异不显著。分析认为这个结果表明由于大家都可以通过词条名来判断是否为广告,所以很大一部分人根本不会阅读并且讨论,于是这种情况则与无广告时人们对一个话题不感兴趣的做法相同,所以并不会影响阅读量与讨论量之间的关系。
针对同时考虑“明广”和“暗广”的情形,p=0.019,在5%显著性水平下可以拒绝原假设,即包括“明广”和“暗广”的广告话题与非广告话题阅读量与讨论量之间的关系模式差异显著,即广告话题在阅读量和讨论量之间关系模式方面比起较为自然的普通话题,存在异常现象。引起该问题的原因比较复杂,无法根据已有的数据推知一个较可靠的原因。但我们给出了一些猜测:广告话题的回归直线更加平缓、参与量相比同阅读量水平的非广告话题更高,可能是广告主雇佣“水军”评论转发所致,也可能是广告的明星效应导致。
/////
离群点分析
4.1 数据的获取与初步处理
数据的获取通过爬虫进行,主要使用request、etree、xpath等。爬取的对象是上一节回归过程中发现的10个具有较为明显特征的话题(回归残差绝对值前十名)话题下所有的微博,爬取的数据包括:微博转发量、微博评论量、用户名和微博正文。最终,分别获取了10个话题下的50、45、106、417、233、229、66、37、22、43条微博数据。
使用echarts对各词条下微博转发量和评论量的分布情况进行绘制,如图所示,每个点代表一条微博,x轴表示转发量,y轴表示评论量。可以看出,每个话题的数据点分布都呈现出一定的集群性。
4.2 Kmeans聚类分析
这一部分,我们通过kmeans方法分别将每个热门话题的所有微博根据转发量、评论量大致分为2-4组(Cluster1-4)并得到如下散点图,这些图表的共同特点是:聚集在原点附近(即转发、评论量大致为0-5)的微博数量最多;少部分微博处于图表中部(即中等程度转发评论量);只有极少数微博拥有高转发量,或高评论量,或者高转发与高评论兼具。
图 7 kmeans-附加驱逐出境怎么执行
图 8 kmeans-立冬饺子你吃了吗
图 9 kmeans-考前抱佛脚心理可取吗
图 10 kmeans-男生第1次自己买衣服是什么体验
图 11 kmeans-AI鉴定中暗藏了哪些黑科技
图 12 kmeans-如何看待成人流行歌入侵校园
图 13 kmeans-汽车越来越智能是好是坏
图 14 kmeans-如果艺人也有年度kpi会怎样
图 15 kmeans-美食被光盘有多幸福
图 16 kmeans-卡塔尔巨资办世界杯亏了吗
结合实际分析这一聚类的结果,以转发量和评论量的标准聚类得到的几大类别也大致对应着参与这一词条的不同用户群体:
1.普通网民(转发、评论量都较少);
2.新闻等官媒、营销号等(转发、评论量较普通网民稍高,在几十不等);
3.小有粉丝的网红等一些微博大v(转发、评论量在几十到几百不等);
4.明星等(转发、评论量在几百到上千)。
在每个话题的参与人群中,各类群体的人数也是依次递减的。
4.3 按转评数分层的微博百分比
接着,我们想要讨论的话题是:不同话题下各群体的参与度,尤其是普通网民的参与度是否存在着较大的差异?
我们将每个话题的微博数按照转发和评论量中较大者为5、50、500进行分层,统计每层的微博数量,计算其占该话题微博总数的比例,使用echarts绘制下图:上面的饼图表示max{转发量,评论量}在各个层级微博数量占总数的百分比,下面的曲线图横轴表示每个话题,纵轴表示max{转发量,评论量}在各个层级的微博数量。
可以看出按转评数分层的微博百分比在不同话题中存在着较大的差异。
4.4 词云图
这一部分我们对10个词条的所有微博内容进行词频提取和绘制词云图,主要使用jieba、pyecharts,分析网友们对各个词条的一些观点看法。
主要关键词全是与吴亦凡事件的罪名、审判结果相关内容,出现了许多法律名词。
主要关键词基本围绕“立冬”和“饺子”展开,出现了带有节日特色的emoji表情图案,以及大量代表饺子馅的词汇,说明参与微博以分享生活为主。
“临时”、“重点”、“背”、反映出目前大部分考试内容机械,并且考前划重点并且狂背是大家考前抱佛脚可行的原因。
“来得及”表明一部分群体乐观的心理,以及说明为什么考前抱佛脚现象会一直存在。
除去话题本身带有的词汇之外,“妈妈”、“妈宝”、“巨婴”等词汇的出现反映了参与讨论网友的态度。
出现的代表时间的词汇中,“大学”的频次比“高中”要高出不少,或许可以说明“男生第一次给自己买衣服”这个事件对于更多参与者而言发生的时间。
“技术”、“商品”、“领域”反映出AI鉴定暂时主要适用于商品领域,并且后续还需要技术继续完善发展。
“帮助”、“希望”、“支持”表明大众对AI鉴定抱有希望并且大力支持其发展。
“幼儿园”、“不好影响”、“歌词”、“短视频、 “低俗”、“口水歌”反映出很多幼儿园儿童熟悉短视频口水歌,一部分群体认为这个现状存在不良影响。
“毒教材”关键词表明该词条使得大众回想起“毒教材“事件,他们可能认为两者都是对儿童思想的不断侵蚀。
“问题“、”安全“表明一部分群体对汽车智能化仍存在安全方面的担忧。
“好”、“智能驾驶”、“享受”表明也一部分群体持乐观态度。
“辅助功能”表明大众的态度:希望智能化也只是对驾驶过程起辅助作用而非完全替代人工驾驶。
许多明星的姓名和姓名缩写、“!”、“撩头发”、“呜呜”表明该词条几乎被各大粉丝占领。
“优化”、“机制”反映仍有部分参与话题的网民或是在讨论话题本身,或是在对该话题下粉丝“控评”等现象进行思考。
“!”、“吃”、“喜欢”、“粮食”反映出大家对待该词条是正向欣喜。
“中餐厅”、“黄晓明”等表明该词条与综艺有关。
“亿美元”、“!”、“?”、“投入”反映出网友对卡塔尔世界杯投入之高的惊叹。
从对词云图的分析中,我们可以看到:通过对话题下微博的高频词汇分析,可以对这些话题参与者的情感倾向、讨论重点等有一个大致的了解。这也在一定程度上验证了我们在第一部分中的推测:
“美食被光盘有多幸福”、“如果艺人也有年度KPI会怎样”这两个与明星有关的话题下出现了许多明星粉丝的身影,而并没有完全专注于话题本身的内容进行讨论;
“附加驱逐出境怎么执行”、“汽车越来越智能是好是坏”等涉及专业的法律、汽车等行业知识的话题则主要围绕专业内容展开,出现了许多专业相关的名词,整体的讨论环境是紧扣主题展开的;
“男生第1次自己买衣服是什么体验”、“如何看待成人流行歌入侵校园”等与生活息息相关的话题中,网友的发言则更多地展现出了情绪上的倾向。
/////
生命周期分析
除了词条阅读量和参与量之间的关系,我们同样对词条在微博热门话题榜上的生命周期变化感兴趣。一个话题会在微博热门话题榜上停留多长时间?在微博热门话题榜上停留时,名次的变化会如何?我们将对这一问题进行探索。
5.1 生命周期的分布
在分析之前,我们推测微博话题榜一般有着明显且相对稳定的萌芽、酝酿、激活、高潮、平息等演变周期。
首先,我们分别计算每个话题在微博热门话题榜上停留的时间长度,以小时为单位,并使用条形图的形式进行绘制,具体图像如下:
图 17生命周期
可以看到,话题生命周期的分布有明显的聚集效应:在5小时、33小时周围、47、48小时周围处出现了明显的聚集。首先,由于数据的爬取并非完全连续,在夜间没有对数据进行爬取,因此该数据可能并不能完全反映实际的生命周期变化情况。在此处我们将尝试为此做出解释,并得出一些较为初步的结论。
首先,根据先前的动态图像,可以发现:微博热门话题榜有集中的词条撤换过程。
5小时处聚集:由于第一次和第二次的数据爬取之间时间间隔为5小时,第三次爬取时间和第二次则间隔一夜,因此在此处聚集的话题大多数为第一、二次在榜,第三次未在榜上出现的,认为是在过夜的过程中从榜上撤换导致的。
33小时处聚集:此处聚集的话题共20条,大多数第一次在11月18日8时的爬取中第一次出现,在11月19日17时的爬取中最后一次出现,且此次爬取并非当天最后一次。词条最后一次出现时的排名在5到57名不等,但有一半左右排名在30名后。因此认为此处聚集的原因集体撤换和自然下榜均有,但仍然较为集中。
47、48小时处聚集:此两处聚集的话题最多,共有84条,且首次出现和最后一次出现的时间并没有特别的集中趋势,较为分散。因此对其进行进一步的绘图分析。我们分别绘制了此两处话题的分类分布图形和词条消失前在榜上排名图形,结果如下:
图 18话题分类分布图
图 19词条消失前在榜排名
可以看到,此处聚集的话题以生活类为最多,消失前在榜上排名分布较为平均。因此认为此处聚集的话题并非全部为自然掉出排行榜,中间可能有其他的原因。同时,考虑到48小时为一个较为特殊的时长(两个自然天),我们认为此处为官方进行话题撤换的可能性较大。即,官方可能在48小时处对某些话题进行清理,但具体的清理原因我们不得而知。
5.2 话题名次分布
在刚才的分析中,我们发现:存在一些话题,在它们被爬取到掉出排行榜的前一次数据中依然排在排行榜中很高的位置,仅仅在此后的一个或几个小时内就掉出了排行榜。因此,我们希望对所有话题最高排名和最后一次检测到的排名的分布进行分析。为此我们绘制了散点图,如下图所示:
图 20话题最高排名与掉榜前排名
可以看到,散点图的中间勾勒出了一道45°倾斜直线,说明此条直线上的点检测到的最后一次排名和其最高排名相等。这并不是一个自然的排名变化过程:在我们的想象中,自然的过程应当是:话题首先从榜底不断攀升,升至其最高排名后可能持续一段时间,后不断下降最终消失。但此处大量的话题在其排名最高点直接掉出排行榜。同时,我们可以看到图中大量的点集中于左下部,这些话题具有的共同特点是:最高排名高、最后一次在排行榜上出现时的排名高。同时,在图上进行局部的观察,发现:最高排名为1的话题,没有一个在掉出排行榜时排名低于10。对此现象,我们推测可能的原因包括:
1.微博排行榜的总容量随时间在20和70之间不断变化,可能存在有些话题从榜上消失的自然过程超出微博排行榜的显示范围,因此没有被观测到。
2.话题的排名机制除了与总的讨论、阅读量相关以外,可能还与短时间内话题的搜索、阅读、讨论等增速有关。即:即时的关注度猛增可能导致话题的排名突然升高,造成“空降前排”的效果。
3.微博排行榜上数据的排名可能并非自然变化过程而存在大规模的直接撤换,甚至可能有人工操作参与其中。而人工撤换的可能理由,除去广告推广等原因,我们猜测是:用户需要新鲜的资讯刺激,而某几个吸引眼球的话题一直霸占排行榜前列并不利于用户接收新的信息。
/////
总结
新浪微博作为国内首屈一指的SNS平台,是网民讨论分享生活的重要渠道,是重大社会事件发生时的舆情中枢,也是娱乐圈的热点平台。我们对新浪微博热门话题榜的数据进行了分析,探索了上榜话题阅读量与参与量之间的关系模式、对部分展现出“离群”特点的话题进行了进一步的深入分析、对话题的生命周期分布和造成这种分布的原因进行了推测。
如今社会上对于微博的争论很大一部分源于其泛娱乐化的倾向。我们通过对微博话题榜数据的分析,发现:相较于更严肃的社会话题,生活娱乐类的话题具有明显不同的数据模式,粉丝经济、对流量的追逐、同质化倾向在我们的数据中初见端倪。
除此之外,广告内容的投放也是日常微博使用过程中常见的现象。数据显示,广告推广内容同样和非广告内容之间存在数据模式的差异。广告作为商业中的正常现象,其存在无可厚非;但广告话题中“水军”、明星粉丝等的刷屏式参与同样会阻碍正常的舆论生态展现。
虽然以上列举的是我们认为微博生态中不够好的地方,但我们仍在数据中发现了一些有益的讨论模式:无论是科技、法律等高门槛话题中专业人士的解读和公众的关注,还是生活类话题中网民各抒己见的讨论、对各自生活的分享,这些都是我们希望社交媒体在社会中所扮演的角色。新浪微博在此前也已经对微博排行榜等出现的娱乐内容集中、多元化缺乏等问题进行了整治。可以预见的是,在未来,随着社会环境的变化,社交媒体理应向着更加多元、和平和健康的方向发展。
长按二维码识别关注
数据科学与统计研究院
微信号:instituteofbigdata
编辑:胡宋萍