美文网首页
多变量图示法 | 切尔诺夫脸谱图

多变量图示法 | 切尔诺夫脸谱图

作者: R语言与SPSS学习笔记 | 来源:发表于2022-03-01 11:20 被阅读0次

    资料来源:多变量图示法 | 切尔诺夫脸谱图
    图形是对资料进行探索性研究的重要工具,在我们分析资料之前,往往习惯于把各资料在一张图上画出来。当变量较少时,可采用直方图、条图、饼图、散点图等方法,但当变量个数大于3时,就不能做以上的方法了。统计学家研究发明出了很多多维变量的图示法,比如我们之前写过的雷达图(多维变量一图搞定——带你了解雷达图),除此之外还有脸谱图、星图、散点图矩阵等,今天跟大家一起学习一个比较好玩的图:切尔诺夫脸谱图。

    切尔诺夫脸谱图(chernoff faces)由Herman Chernoff 在1973发明, 以人脸的形式展现多种类型的数据。该想法的起因是因为人们对于人脸表情能够毫不费力的识别差异。该法用眼、鼻子、嘴巴、表情等多种人脸表情表示数据维度。

    绘制脸谱图有两个包,一个是aplpack,另外一个是TeachingDemos,今天用到的是aplpack包的faces()函数进行绘制。函数用法如下:



    几个常用参数的介绍:
    xy:数据矩阵
    which.row:定义绘制数据矩阵的哪几行(哪几个观测)
    face.type:取值范围为0—2,0表示无颜色,1表示彩色,2表示时彩色的圣诞老人,默认为1。
    cex:文字大小
    main:题目
    labels:将每个脸谱图与标签结合

    脸谱图采用15个指标代表面部特征:
    1 脸的高度; 2 脸的宽度;3 脸型;4 嘴巴厚度; 5 嘴巴宽度; 6 微笑; 7 眼睛的高度; 8 眼睛宽度; 9 头发长度; 10 头发宽度; 11头发风格; 12 鼻子高度; 13 鼻子宽度; 14 耳朵宽度; 15耳朵高度


    install.packages("aplpack")
    library(aplpack)
    

    所使用的数据集是美国犯罪数据

    crime <- read.csv("http://datasets.flowingdata.com/crimeRatesByState-formatted.csv")
    #查看数据集
    View(crime)
    

    该数据集共有52个观测,8个变量,其中第一列是洲名。

    faces(crime[,2:8],labels=crime_filled$state,cex=0.8)#由于第一列是洲,因此绘制的是第一列到第八列
    

    一个人脸代表一个观测,变量在脸谱图中代表意义说明如下:


    由于脸谱图有15个指标,而crime只有7个变量,因此有些变量由2个指标表示。总结如下:
    脸高,眼宽,耳朵高度表示murder(谋杀);
    脸宽,头发高度表示forcible_rape(强奸);
    脸的结构,头发宽度表示robbery(抢劫);
    嘴巴高度,头发发型表示aggravated_assault(恶意攻击);
    嘴宽,鼻子高度表示burglary(夜盗);
    微笑,鼻子宽度表示larceny_theft(盗窃);
    眼高,耳朵宽度表示motor_vehicle_theft(机动车辆盗窃)。

    变量太多不利于观察,选取其中9个变量:

    faces(crime[1:9,2:8], labels=crime_filled$state,cex=1.2,face.type=0)
    

    如上图,我们很清楚地看到Arizona和California 的眼睛高度和耳朵宽度都比其他的大,证明再Arizona和California这两个地方的motor_vehicle_theft案件比其他地方多。

    画彩色图:

    faces(crime[1:9,2:8], labels=crime_filled$state,cex=0.8)
    

    结果解释同上

    #画圣诞老人
    faces(crime[1:9,2:8], labels=crime_filled$state,cex=1.2,face.type=2)
    

    除此之外,切尔诺夫脸谱图还可以与散点图结合在一起

    plot(crime[1:9,c(2,4)],bty="n")#先画一个散点图
    a<-faces(crime[1:9,2:8],plot=FALSE)
    plot.faces(a,crime[1:9,2],crime[1:9,4],width=0.5,height=16,cex =0.8)#切尔诺夫脸谱图与散点图结合
    

    以上就是今天切尔诺夫脸谱图的全部内容,值得注意的是,用来绘制切尔诺夫脸谱图的变量只能是连续变量,用其他类型的变量将会导致出错无法绘制,当然了您可以进行数据转换之后再绘制。
    欢迎大家关注我的公众号!
    参考资料:
    1.https://flowingdata.com/2010/08/31/how-to-visualize-data-with-cartoonish-faces/
    2.R帮助文件

    相关文章

      网友评论

          本文标题:多变量图示法 | 切尔诺夫脸谱图

          本文链接:https://www.haomeiwen.com/subject/subzlrtx.html