> install.packages("devtools",repo="http://cran.us.r-project.org")
> library(devtools)
> install_github("vqv/ggbiplot")
> library(ggbiplot)
> data("wine")
> wine.pca
> ggbiplot(wine.pca,obs.scale = 1,var.scale = 1,groups = wine.class,ellipse = TRUE,circle = TRUE)+scale_color_discrete(name="")+theme(legend.direction = 'horizontal',legend.position = 'top')
坐标轴PC1/2的数值为总体差异的解释率;
图中点代表样品,颜色代表分组,图例在顶部有三组;
椭圆代表分组按默认68%的置信区间加的核心区域,便于观察组间是否分开;
箭头代表原始变量,其中方向代表原始变量与主成分的相关性,长度代表原始数据对主成分的贡献度。
若不用ggbiplot画图,采用plot绘制,如下,怎么选择应该不用我多说了
> plot(wine.pca$x)
在空间上,PCA可以理解为把原始数据投射到一个新的坐标系统,第一主成分为第一坐标轴,它的含义代表了原始数据中多个变量经过某种变换得到的新变量的变化区间;第二成分为第二坐标轴,代表了原始数据中多个变量经过某种变换得到的第二个新变量的变化区间。这样我们把利用原始数据解释样品的差异转变为利用新变量解释样品的差异。为了最大限度保留对原始数据的解释,一般会用最大方差理论或最小损失理论,使得第一主成分有着最大的方差或变异数 (就是说其能尽量多的解释原始数据的差异);随后的每一个主成分都与前面的主成分正交,且有着仅次于前一主成分的最大方差 (正交简单的理解就是两个主成分空间夹角为90°,两者之间无线性关联,从而完成去冗余操作)
?ggbiplot的使用:
pcobj # prcomp()或princomp()返回结果 choices # 选择轴,默认1:2 scale # covariance biplot (scale = 1), form biplot (scale = 0). When scale = 1, the inner product between the variables approximates the covariance and the distance between the points approximates the Mahalanobis distance. obs.scale # 标准化观测值 var.scale # 标准化变异 pc.biplot # 兼容 biplot.princomp() groups # 组信息,并按组上色 ellipse # 添加组椭圆 ellipse.prob # 置信区间 labels # 向量名称 labels.size # 名称大小 alpha # 点透明度 (0 = TRUEransparent, 1 = opaque) circle # 绘制相关环(only applies when prcomp was called with scale = TRUE and when var.scale = 1) var.axes # 绘制变量线-菌相关 varname.size # 变量名大小 varname.adjust # 标签与箭头距离 >= 1 means farther from the arrow varname.abbrev # 标签是否缩写