2017-01-03 5 views
2

Ich habe einen Datenrahmen data mit mehr als 50 Variablen und ich versuche, eine PCA in R mit dem caret Paket zu tun.PCA in R mit dem Caret-Paket vs Prcomp PCA

library(caret) 
library(e1071) 
trans <- preProcess(data,method=c("YeoJohnson", "center","scale", "pca")) 

Wenn ich diesen Code richtig zu verstehen, gilt es eine YeoJohnson Transformation (weil data Nullen in sich hat), standardisiert data und als PCA gilt (standardmäßig hält die Funktion die PCs nur die auf erläutern, die erforderlich sind mindestens 95% der Variabilität der Daten)

Allerdings, wenn ich den prcomp Befehl verwenden,

model<-prcomp(data,scale=TRUE) 

ich mehr Ausgaben wie der Druck diebekommenoder tun plot(data, type = "l"), die ich nicht in trans tun kann. Weiß jemand, ob es irgendwelche Funktionen im caret Paket gibt, das die gleichen Ausgänge wie in prcomp produziert?

Antwort

2

Mit der Funktion predict können Sie auf die Hauptkomponenten selbst zugreifen.

df <- predict(trans, data) 
summary(df) 

Sie werden nicht genau die gleiche Ausgabe wie bei prcomp: während caretprcomp() verwendet, verwirft er das ursprüngliche prcomp Klassenobjekt und es nicht zurück.