Метод главных компонент (PCA) в R
Wakjira Tesfahun
0:00 / 0:00
Метод главных компонент (PCA) в R
28 156 просмотров · 4 года назад
Wakjira Tesfahun
7,37 тыс. подписчиков
28 156 просмотров · 4 года назад
library("ggplot2")
library("gridExtra")
library(ggbiplot)
library("corrplot")
library(factoextra)
#преобразование номера строки
data=rownames(GGE)=c("Me","E6","E2","E4","KB","HUl","kat","Dan","EA2","Ts",
"E0","E5","DI","E8","E39","ET1","BO","Ab","Si")
pca =prcomp(GGE[,c(2:11)], center = TRUE,scale. = TRUE)
print(pca)
для получения собственного значения
eig.val = get_eigenvalue(pca)
eig.val
для получения графика собственных значений
fviz_eig(pca, addlabels = TRUE, ylim = c(0, 50))
Результаты PCA для переменных
var=get_pca_var(pca)
чтобы увидеть переменные, оказывающие наибольшее влияние на каждое измерение
corrplot(var$cos2, is.corr=FALSE)
чтобы увидеть переменные, оказывающие наибольшее влияние на оба измерения
fviz_cos2(pca, choice = "var", axes = 1:2)
чтобы построить столбчатую диаграмму вклада переменных
Вклад переменных в PC1
a=fviz_contrib(pca, choice = "var", axes = 1)# top= 5, чтобы ограничить количество переменных пятью.
Вклад переменных в PC2
b=fviz_contrib(pca, choice = "var", axes = 2)
grid.arrange(a,b, ncol=2, top='Вклад переменных в первые две главные компоненты')
Общий вклад в PC1 и PC2
fviz_contrib(pca, choice = "ind", axes = 1:2)
График переменных
fviz_pca_var(pca,
col.var = "cos2",
gradient.cols = c("red", "blue", "green"),
repel = TRUE)
Биплот отдельных элементов и переменных
fviz_pca_biplot(pca, repel = TRUE,
col.var = "blue",
col.ind = "красный")
###########################################################################
#Построение графика PCA
ggbiplot(pca)
#Этот код назовет каждую точку названием генотипа
ggbiplot(pca,labels=rownames(GGE))
построение графика с использованием PC1 и PC2
ggbiplot(pca,ellipse=TRUE,choices=c(1,2),labels=rownames(GGE), groups=GGE$ENV)
масштабирование выборок
ggbiplot(pca,ellipse=TRUE,obs.scale = 2, var.scale = 4.5,
labels=rownames(GGE), groups=GGE$ENV)
#удалить стрелки целиком
ggbiplot(pca,ellipse=TRUE,obs.scale = 1, var.scale = 1,var.axes=FALSE,
labels=rownames(GGE), groups=GGE$ENV)
окончательный биплот, созданный с помощью Customize ggbiplot
aa=ggbiplot(pca,ellipse=TRUE,obs.scale = 1, var.scale = 1, labels=rownames(GGE), groups=GGE$ENV) +
scale_colour_manual(name="Location", values= c("blue", "red", "green","pink"))+
ggtitle("PCA of wakjira")+
theme_minimal()+
theme(legend.position = "bottom")
aa
ggsave(filename = "Waq.png", plot = aa,width = 22, height = 15, dpi = 2500, единицы измерения = "см")