用R语言分析《我是歌手》出场顺序与名次的关系

《我是歌手》吵吵闹闹地落幕了,总决赛这一季是我最关注的一季,很认真的从头看到尾。当然,这篇文章的主旨不在此,我们要看的如题《我是歌手》节目中,出场顺序和名词的关系。关系肯定是有的,节目里自己都说到了,出场顺序很重要,这里我想用R来尝试分析这其中的细节关系。

数据是三季我是歌手除去突围赛半决赛总决赛的其余场次歌手们的出场顺序和名次,以及得票率(部分场次没有具体的得票率记为NA),一共31场,31*7=217行数据。基本数据结构如下:

数据可以查看到基本内容如下:

[plain] view plaincopy

  1. singerData <-read.table("clipboard",header=T)
  2. head(singerData,n=5)

1. 出场顺序与名次的数量关系

先把所有三季数据按出场顺序及排名做一个简单的统计:

[plain] view plaincopy

  1. table(data.frame(order=singerData$order,rank=singerData$rank))

都是数字,看起来很无感,试试用气泡图来看这个结果呢?

[plain] view plaincopy

  1. order.rank <-data.frame(a=c(rep(1,7),rep(2,7),rep(3,7),rep(4,7),rep(5,7),rep(6,7),rep(7,7)),b=c(rep(1:7,7)))
  2. for(i in 1:7){
  3. for (j in 1:7) {
  4. order.rank$c[(i-1)*7+j] <-table(data.frame(order=singerData$order,rank=singerData$rank))[i,j]
  5. }
  6. }
  7. symbols(order.rank$a,order.rank$b,order.rank$c,inches=0.40,bg="lavender",xlab="Singers'Order",ylab="Singers' Rank")

这个图好像也没有太多的很直观的信息,但是大概能看出来数据比较集中在从点(1,7)到点(7,1)这条线的周边。

2. 每一出场顺序下的平均名次

这里把算出每个出场次序的平均名次算出后,用折线图展示出来。

[plain] view plaincopy

  1. order.avgRank <- data.frame(order=1:7)
  2. for(i in1:7){
  3. order.avgRank$avgRank[i] <-mean(singerData$rank[singerData$order==i])
  4. }
  5. plot(order.avgRank$order,order.avgRank$avgRank,type="l",xlab="Singer'Order",ylab="Average Rank")

这个图就能很明显的看出来歌手最终的名次与其出场顺序存在近似负相关的关系。看看每一季的结果是不是都类似呢?

[plain] view plaincopy

  1. season.order.avgRank<- data.frame(s1=numeric(0),s2=numeric(0),s3=numeric(0))
  2. for(i in1:3){
  3. for(j in 1:7){
  4. season.order.avgRank[j,i]<-mean(singerData$rank[singerData$season==i&singerData$order==j],na.rm=TRUE)
  5. }
  6. }
  7. season.order.avgRank
  8. matplot(season.order.avgRank,type="o",col=1:3,lty=1:3)
  9. legend(5.5,5.5,c("第一季","第二季","第三季"),col=1:3,lty=1:3)

三季我是歌手,出场次序跟名次的关系,第一季第二季其实不是很明显,第三季有一个很明显的近似负相关的关系。

换个方式,查看得票率和出场次序的关系。

[plain] view plaincopy

  1. season.order.avgRate <-data.frame(s1=numeric(0),s2=numeric(0),s3=numeric(0))
  2. for(i in 1:3){
  3. for(j in 1:7){
  4. season.order.avgRate[j,i]<-mean(singerData$percentage[singerData$season==i&singerData$order==j],na.rm=TRUE)
  5. }
  6. }
  7. season.order.avgRate
  8. matplot(season.order.avgRate,type="o",col=1:3,lty=1:3)
  9. legend(1,19,c("第一季","第二季","第三季"),col=1:3,lty=1:3)

其实不用看就可以想象,跟名次与出场顺序的关系类似,肯定是第三季的特征会比较明显。这说明什么?第三季的观众比较不理智?第三季的歌手水平比较接近,所以观众才会屈从最直接的感受?请自行想象猜测!

3. 线性回归方式尝试找出其中关系

在第一部分气泡图的基础上做。

[plain] view plaincopy

  1. symbols(order.rank$a,order.rank$b,order.rank$c,inches=0.40,bg="lavender",xlab="Singers'Order",ylab="Singers' Rank")
  2. model=lm(rank~order,data=singerData)
  3. abline(model,lty=1,col=2)
  4. summary(model)

得到的回归方程式:rank = 4.74194-0.18799*order

Residuals:残差,上面给出了残差的最大值、最小值、中位数、上四分位数、下四分位数,可以看出符合正态分布。

Coefficients:系数,Estimate是预测的系数上面是截距,下面是斜率。

Residual standarderror:标准残差

Multiple R-squared :R^2值

Adjusted R-squared:调整R^2值,跟R^2值一样都是在0-1的范围内,越接近1表明这个模型可参考价值越大,越接近0表示可参考价值越小。

F-statistic:F统计量

p-value:p值

从模型的统计量能够看出,这个方程参考价值很低,不是一个很显著的线性模型。

4. 歌手的平均得票率

这里是把歌手的平均得票率计算出来,求其平均得票率,可以看出哪个歌手的整体表现比较好。与主题无关,只是一个小的统计。结果可以看到,林志炫稳居榜首,所以?你自己领会就好!

[plain] view plaincopy

  1. singers <-unique(singerData$singer)
  2. avgRate <- numeric(0)
  3. for(i in 1:length(singers)){
  4. avgRate[i] <-mean(singerData$percentage[singerData$singer==singers[i]],na.rm=TRUE)
  5. }
  6. singersAvgRate <-data.frame(singers=singers,avgRate=avgRate)
  7. singersAvgRate <- singersAvgRate[order(-singersAvgRate[,2]),]
  8. fix(singersAvgRate)

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-01-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏进击的程序猿

cs224d-第二课-word2vec

首先我想说下为什么会去学习cs224d,原先我一直是做工程的,做了大概3年,产品做了好多,但是大多不幸夭折了,上线没多久就下线,最后实在是经受不住心灵的折磨,转...

821
来自专栏智能算法

机器视觉(系列二)----图像采集之照明综述

上集我们一起做了个简短入门: 机器视觉算法(系列一)--机器视觉简短入门 在机器视觉中,照明的目的是使被测物的重要特征显现,而抑制不需要的特征。为了达到此目的,...

34212
来自专栏ATYUN订阅号

GitHub项目:自然语言处理领域的相关干货整理

自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。本文作者为NLP初学者整理了一份庞大的自然语言处理领域的概...

6714
来自专栏CreateAMind

令人拍案叫绝的Wasserstein GAN(WGAN两篇论文的中文详细介绍)

如阅读体验不好,可直接跳到文末阅读原文访问原文链接 https://zhuanlan.zhihu.com/p/25071913 查看。

1684
来自专栏企鹅号快讯

深度学习胸部x射线

作者:PranavRajpurkar * 1 Jeremy Irvin * 1 Kaylie Zhu 1 Brandon Yang 1 Hershel Meht...

2309
来自专栏AI2ML人工智能to机器学习

GMM的世界,你不懂?(上篇)

其实在统计学习世界里, GMM有高美美和广美美之分,Gaussian mixture model vs Generalized moment method. ...

472
来自专栏ACM算法日常

各种博弈问题

(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。

693
来自专栏专知

ICLR 2018接收论文公布—“GANs 之父”Goodfellow四篇论文被接受为Poster Papers。

ICLR,全称为「International Conference on Learning Representations」(国际学习表征会议),2013 年才...

3976
来自专栏思影科技

《大话脑成像》系列之二:不同模态脑网络的构建

接上回 只见孔乙己涨红了脸,额上的青筋条条绽出,争辩道,“这不能算报错……是BUG!……写代码的事,能算错么?”接连便是难懂的话,什么“涡旋噪声”、“敏捷开发...

2886
来自专栏量化投资与机器学习

【世界读书日】2018版十大引用数最高的深度学习论文集合

1153

扫码关注云+社区