科技

如何判断信息的可信度,避免被数字欺骗?

字号+ 来源:R语言中文社区 2017-12-08 13:12 我要评论

作者:刘小芬,R语言中文社区专栏作者。知乎专栏:https://www.zhihu.com/people/liu-xiao-fen-10/columns 通过互联网信息,我们可以看到很多的信息,但是,该如何判断信息的可信度呢?例如看到

作者:刘小芬,R语言中文社区专栏作者。知乎专栏:https://www.zhihu.com/people/liu-xiao-fen-10/columns

通过互联网信息,我们可以看到很多的信息,但是,该如何判断信息的可信度呢?例如看到新闻列举的平均工资、各种知识付费新闻等等,我们该如何取舍呢?是别人怎么说,我们就怎么听,还是自己去探究真实性呢?

我想,在开始研究数据的真实性前,我们需要先来了解什么是描述统计学?前面也有文章对这个进行了说明,在这里做个总结。

描述统计学有平均值、中位数、四分位数、标准差、标准分等。

其中,当有异常值时,用平均值来描述数据,就会带来误导性信息,例如平均工资,如果10个人中9个人的工资都是1000元,第10个人是10000万,那么就会大大的提高平均值,但是实际上拿到高薪的人属于少数,这就给找工作的人带来了误导。因此,平均值在遇到异常值的时候,不可取。

在这种情况下,我们就可以选择中位数或者是四分位数,中位数和四分位数都可以很好的体现出数值在一系列数据中的位置,所以,当我们想知道这系列的数据的某个数值处于什么位置的时候,就可以参考中位数和四分位数,其次,四分位数可以判断可能的异常值,特别是我们分析一组数据时通过画箱线图形式表现四分位数时,可以直观看到数据是否存在异常值。

我对标准差的理解从定义上看就是相当于是数据的离散程度,如果标准差较大,说明数值和平均值之间差距较大,也就是离散程度比较大,如果标准差较小,说明数据的离散程度较小。例如,理解了标准差,我们可以通过标准差判断一个产品的制造过程是否在可控范围内,若标准差过大,说明产品在制造过程中的波动较大,这个时候就需要对原因进行分析。

最后是标准分,标准分就是某数据的相对排名,可以在各数据集中进行比较。简单点说,就是将数据按照一定的比例进行标准化,然后可以跟不同类型的数据进行比较,主要是通过它们的相对排名来比较。例如中考成绩出来后,学生们的分数排名,就是一种标准分形式。

为了更直观的表示上面四种描述统计学,我找到了之前在招聘网站上爬取的招聘信息进行分析,主要是分析工资这一栏数据。

1、平均值

newdata$meanmoney <- apply(newdata[,c(10,11)],1,mean)

在R语言中,计算平均值是用mean()函数进行计算。具体结果:

2、中位数、四分位数和标准差

分析学历跟工资的关系:

educationdata <- newdata[,c(6,12)] library(dplyr) educationdata1 <- group_by(educationdata,education) educationdata1 <- summarise(educationdata1,                            mean=mean(meanmoney),##平均值                            midmoney=median(meanmoney),##中位数                            sdmoney=sd(meanmoney),##标准差                            Q1monry=quantile(meanmoney,c(.25)),##下四分位数                            Q2monry=quantile(meanmoney,c(.5)),##第二四分位数/中位数                            Q3monry=quantile(meanmoney,c(.75)))##上四分位数

在R语言中,可以用median()函数计算中位数,quantile()函数计算四分位数,sd()函数计算标准差,结果如下:

因为高中学历的招聘数只有一个,所以标准差不存在。从数据中可以看到每个学历的平均值和中位数有差距,其中都是平均值大于中位数,也就是说存在异常值,且异常值属于较大值,此时数据向右偏斜,我们可以画出箱线图进行验证是否如此:

boxplot(meanmoney ~ education, data=educationdata,        main="Education VS Meanmoney",        xlab="education",        ylab="meanmoney")

从箱线图可以看出,学历为本科、大专、不限都出现了异常值,且学历为本科的异常值较大,对平均工资造成了一定的误导。后续分析需要注意。

3、标准化

由于这段数据没有标准化的需要,所以我随机生成了一些数据进行标准化练习:

Math <- seq(70,100,2) English <- seq(80,110,2) Chinese <- seq(30,60,2) score <- data.frame(Math,English,Chinese) score zscore <- scale(score) zscore

对数据进行了标准化后,使得原本不具备可比性的三科成绩可以进行一个比较,也就是说将三个不同的数据按照一个标准进行标准化,我们可以知道这些数据的相对位置。

总结

因此,当我们看到一些数据的时候,先不要被它的描述语言迷惑了,应该读出其中的含义,看看是否属于语言陷阱,误导我们,给出一个被掩盖的事实,将这四种描述统计学应用在生活中。强烈推荐有兴趣可以看看《赤裸裸的统计学》这本书,看完后,会发现在生活中统计学是如此的有用。

公众号后台回复关键字即可学习

回复 R               R语言快速入门免费视频 

回复 统计          统计方法及其在R中的实现

回复 用户画像   民生银行客户画像搭建与应用 

回复 大数据      大数据系列免费视频教程

回复 可视化      利用R语言做数据可视化

回复 数据挖掘   数据挖掘算法原理解释与应用

回复 机器学习   R&Python机器学习入门 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
你感兴趣的