help(package="factoextra") install.packages("factoextra") library("factoextra") data(decathlon2) #dane z pakietu factoextra dane <- decathlon2[1:10] ########### prcomp() ########### #analiza PCA result.prcomp <- prcomp(dane, scale = TRUE, center = TRUE) result.prcomp #wykres obserwacji (individuals/x/scores) result.prcomp$x plot(result.prcomp$x, main = "scale = TRUE & center = TRUE") text(result.prcomp$x, labels = row.names(dane), pos = 3, cex = 0.7) #wykres zmiennych (variables/rotation/loadings) rotation <- result.prcomp$rotation rotation plot(rotation, main = "scale = TRUE & center = TRUE") text(rotation, labels = colnames(dane), pos = 2, cex = 0.7) for(i in 1:dim(dane)[2]) { arrows(0, 0, rotation[i, 1], rotation[i, 2], angle = 7, col = "red") } #wykres obserwacji i zmiennych biplot(result.prcomp) #wykres osuwiskowy - wykres wariancji screeplot(result.prcomp, main = "scale = TRUE & center = TRUE", type = "l") #wykres osuwiskowy mozna takze otrzymac przy uzyciu funkcji plot() plot(result.prcomp, main = "scale = TRUE & center = TRUE") #podsumowanie danych przedstawionych na wykresie screeplot() i plot() summary(result.prcomp) ########### princomp() ########### #analiza PCA: cor = T macierz korelacji, cor = F macierz kowariancji result.princomp <- princomp(dane, cor = TRUE) result.princomp #wykres obserwacji (individuals/x/scores) result.princomp$scores plot(result.princomp$scores) text(result.princomp$scores, labels = row.names(dane), pos = 3, cex = 0.7) #wykres zmiennych (variables/rotation/loadings) laoding <- result.princomp$loadings laoding plot(laoding) text(laoding, labels = colnames(dane), pos = 2, cex = 0.7) for(i in 1:dim(dane)[2]) { arrows(0, 0, laoding[i, 1], laoding[i, 2], angle = 7, col = "red") } #wykres obserwacji i zmiennych biplot(result.princomp) #wykres osuwiskowy screeplot(result.princomp, type = "l") #wykres osuwiskowy mozna takze otrzymac przy uzyciu funkcji plot() plot(result.princomp) #podsumowanie danych przedstawionych na wykresie screeplot() i plot() summary(result.princomp) ########### factoextra ########### #wyniki uzyskane z wczesniejszej analizy result.prcomp #otrzymanie wartosci wlasnych i wariancji skladowych glownych get_eigenvalue(result.prcomp) #otrzymanie wynikow dla obserwacji get_pca_ind(result.prcomp) #Principal Component Analysis Results for individuals #=================================================== # Name Description #1 "$coord" "Coordinates for the individuals" #2 "$cos2" "Cos2 for the individuals" #3 "$contrib" "contributions of the individuals" #otrzymanie wynikow dla zmiennych get_pca_var(result.prcomp) get_pca_var(result.prcomp)$coord #wspolrzedne do wykresow get_pca_var(result.prcomp)$cos2 #jakosc reprezentacji get_pca_var(result.prcomp)$contrib #udzial w skladowych glownych #Wizualizacja wartosci wlasnych na wykresie osuwiskowym fviz_eig(result.prcomp) fviz_eig(result.prcomp, addlabels = TRUE) #wykres zmiennych (variables/ratation/loadings) fviz_pca_var(result.prcomp) #dodatkowe mozliwosci reprezentacji obserwacji fviz_pca_var(result.prcomp, col.var = "contrib", #kolor wedlug udzialu w skladowych glownych repel = TRUE ) fviz_pca_var(result.prcomp, col.var = "cos2", #kolor wedlug jakosci reprezentacji repel = TRUE ) #wykres jakosci reprezentacji fviz_cos2(result.prcomp, choice = "var", axes = 1:2) #2 wymiary #wykres udzialu w skladowych glownych fviz_contrib(result.prcomp, choice = "var", axes = 1:2) #2 wymiary #wykres obserwacji (individuals/x/scores) fviz_pca_ind(result.prcomp) #dodatkowe mozliwosci reprezentacji obserwacji fviz_pca_ind(result.prcomp, col.ind = "cos2", #kolor wedlug jakosci reprezentacji repel = TRUE #nie nakladaja sie nazwy ) #wykres jakosci reprezentacji fviz_cos2(result.prcomp, choice = "ind", axes = 1:2) #2 wymiary #fviz_cos2(result.prcomp, choice = "ind") # 1 wymiar #wykres udzialu w skladowych glownych fviz_contrib(result.prcomp, choice = "ind", axes = 1:2) #2 wymiary #biplot fviz_pca_biplot(result.prcomp, repel = TRUE)