pca图解读_PCA作图里面的箭头是干嘛用的?

作图的目的是希望在图里面发现问题或者解释问题,当然更本质一点就是你想解决什么问题/p>

前几天做了一个PCA的图,图是画出来了,但是问题有很多,比如说主成分是是啥意思,图里面的箭头有什么含义了不做无意义的重复,所以写一篇文章尝试做一个解释。

我们以R语言自带的数据集iris作为例子来演示。

data(iris)

iris翻译成中文就是鸢(yuan, 第一声)尾花(如下图), 我建议你在R语言里用ris了解更多这个数据集的出处。

pca图解读_PCA作图里面的箭头是干嘛用的?

fig1

从上图中,我们发现根据萼片(sepal)的宽度和长度似乎能够区分出”setosa”和”versicolor”,”virginica”,但是”versicolor”,”virginica”不太好分。

让我们再试试花瓣(petal)的长度和宽度。从下图,我们可以发现在这两个属性下,不同品种的鸢尾花似乎有了明显的分界线。

ggplot(iris,aes(x=Petal.Length, y=Petal.Width)) + geom_point(aes(colour=Species))

pca图解读_PCA作图里面的箭头是干嘛用的?

PCA results

虽然有现成的工具提取pca.results里的数据进行作图,但这样无助于理解,我们需要自己手动提取结果进行作图。

iris_rotate_df

iris_rotate_df$Species

p

print(p)

pca图解读_PCA作图里面的箭头是干嘛用的?

loading

那么我们如何在图上展示各个变量在各个PC的占比呢个就需要画几个箭头了,

p + annotate(“segment”, x=0,xend=0.35,y=0,yend=-0.65,arrow=arrow()) +

annotate(“text”, x=0.35,y=-0.68, label=”Sepal.Length”) +

annotate(“segment”, x=0,xend=-0.08,y=0,yend=-0.73,arrow=arrow()) +

annotate(“text”, x=-0.08,y=-0.75, label=”Sepal.Width”)

下图中”Septal.Width”朝下,Petal.Length朝右,如果你手动旋转一下,就是差不多是以”Septal.With”为X轴,”Petal.Length”为Y轴的结果了。 所以箭头的朝向不重要,重点是长度。

pca图解读_PCA作图里面的箭头是干嘛用的?

ggord

当然要想真正的理解PCA分析,你还是了解一点线性代数的知识

相关资源:桌面开满999朵玫瑰花软件绿色版.rar-其它代码类资源-CSDN文库

来源:weixin_39907316

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月20日
下一篇 2020年11月20日

相关推荐