分享

用R语言做数据分析——多元数据的绘图方法

 geoallan 2017-05-03

前面介绍了许多数据的图形表示方法,但大多数是针对一元、二元数据的,三维图形虽然能画出来,但并不方便。对于三维以上数据如何来描述呢?结合R语言的特点,这里介绍几种多元数据的绘图方法:轮廓图、星图和调和曲线图

设变量是p维数据,有n个观测数据,其中第k次的观测值为:

用R语言做数据分析——多元数据的绘图方法

n次观测数据组成矩阵

用R语言做数据分析——多元数据的绘图方法

轮廓图

轮廓图由以下作图步骤完成:

  1. 作直角坐标系,横坐标取p个点,以表示p个变量;

  2. 对给定的一次观测值,在p个点上的纵坐标与对应的变量取值成正比;

  3. 连接此p个点得一折线,即为该次观测值的一格轮廓线;

  4. 对于n次观测值,每次都重复上述步骤,可画出n条折线,构成n次观测值的轮廓图。

编写轮廓图函数,存储文件为“outline.R”

outline<>

if(is.data.frame(x)==TRUE){

x<>

}

m<>

n<>

plot(c(1,n),c(min(x),max(x)),type='n',main='The outline graph of Data', xlab = 'Number',ylab='Value')

for(i in 1:m){

lines(x[i,],col=i)

if(txt==TRUE){

k<>

text(1+(i-1)%%n,x[i,1+(i-1)%%n],k)

}

}

}

其中x是矩阵或数据框,txt是逻辑变量,当txt=TRUE(缺省值)时,绘图时给出观测值的标号,否则不给出标号。函数的运行结果是绘出n次观测值的轮廓图。

例子:为考察学生的学习情况,学生随机的抽取12名学生的5门课期末考试的成绩。如下图所示,画出12名学生学习成绩的轮廓图。

用R语言做数据分析——多元数据的绘图方法

将数据输入到数据文件中,文件名为“course.data”

> X<>

> source('outline.R')

> outline(X)

用R语言做数据分析——多元数据的绘图方法

由轮廓图可以直观的看出,哪个学生的成绩相似、哪些属于优秀、哪些中等、哪些较差。对于各门课程而言,也可以直观地看出各课程成绩的好坏和分散情况。这种图形在聚类分析中颇有帮助。

星图

星图的作图步骤是:

  1. 作一个圆,并将圆周p等分;

  2. 连接圆心和各分点,把这p条半径一次定义为变量的坐标轴,并标以适当的刻度;

  3. 对给定的一次观测值,把p个变量分辨取在相应的坐标轴上,然后将它们连接成一个p边形;

  4. n次观测可画出n个p边形。

R语言给出了作星图函数starts(),例如,画出上述学生学习成绩的星图,只需要

>stars(X)

用R语言做数据分析——多元数据的绘图方法

星图中水平轴是变量X1,沿逆时钟方向依次是X2、X3...。由于星图既像雷达屏幕上看到的图像,也像一个蜘蛛网,因此,星图也称为雷达图或蜘蛛图。

starts()函数可以加各种参数,进而绘制出不同的星图,具体请参看官方文档。例如:

> stars(X,full = FALSE,draw.segments = TRUE,key.loc = c(5,0.5),mar=c(2,0,0,0))

用R语言做数据分析——多元数据的绘图方法

调和曲线图

调和曲线图的思想是 是根据三角变换方法将 p 维空间的点映射到二维平面上的曲线上。对于p维数据,假设Xr是第r观测值,即

用R语言做数据分析——多元数据的绘图方法

则对应的调和曲线是:

用R语言做数据分析——多元数据的绘图方法

n次观测数据对应n条曲线,现在同一张平面上就是一张调和曲线图。当变量数据的数值相差太悬殊,最好先标准化再作图。

编写调和权限函数,存储文件为“onison.R”

unison<>

if(is.data.frame(x)==TRUE)

x<>

t<-seq(-pi,pi,pi>

m<>

n<>

f<>

for(i in 1:m){

f[i,]<-x[i,1]>

for(j in 2:n){

if(j%%2==0)

f[i,]<-f[i,]+x[i,j]*sin(j>

else

f[i,]<-f[i,]+x[i,j]*cos(j%>

}

}

plot(c(-pi,pi),c(min(f),max(f)),type='n',main='The Unison graph of Data',xlab = 't',ylab = 'f(t)')

for(i in 1:m) lines(t,f[i,],col=i)

}

加载并调用函数

> source('onison.R')

> unison(X)

用R语言做数据分析——多元数据的绘图方法

调和曲线图对聚类分析帮助很大,如果选择聚类统计量为距离,则同类的曲线拧在一起,不同类的曲线拧成不同的束,非常直观。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多