Gemeinsame PCA-SkalaHallo JMP-Community
Gibt es eine Möglichkeit, eine PCA mit einem gemeinsamen Maßstab durchzuführen, wie dies mit einem K-Means-Cluster möglich ist?
Ich frage, weil der K-Means-Cluster mit gemeinsamer Skala für meine Daten viel besser ist, aber ich möchte die Clusterdaten entfernen und nur den PCA-Biplot mit Achsen anzeigen
Am besten,
Konsumenten- und MarktforschungRe: Gemeinsame PCA-SkalaDanke dafür. Ich strebe den Tag an, an dem Scripting natürlicher ist als GUI, aber hier verwende ich JMP mehr als R ...
Re: Gemeinsame PCA-SkalaDie PCA beginnt mit einer Korrelationsmatrix. Wenn die Kovarianzmatrix gewählt wird, dann stimmt das PCA-Biplot mit dem K-Means-Cluster-Biplot (gemeinsame Skala) überein, und die Achsenvarianz kann bestimmt werden
Re: Gemeinsame PCA-SkalaAus dem JMP-Benutzerhandbuch
Offensichtlich ist die Kovarianzmatrix von PCA dieselbe wie die gemeinsame Skala beim K-Means-Clustering
Re: Gemeinsame PCA-SkalaHinzufügen zu @Dan_Obermiller Kommentar, ich glaube, K Means zentriert die Spalten, skaliert sie nur nicht, wenn Sie diese Option verwenden. Um die Analyse mit PCA zu replizieren, möchten Sie also zuerst die Spalten zentrieren und dann eine unskalierte PCA durchführen.Wenn Sie das folgende Skript ausführen, sollten die bivariaten Score-Plots übereinstimmen.
Names default to here(1);
dt = Open( "$Sample_data/Lipid Data.jmp" );
//Center columns
dt << New Column("Age Centered", Numeric, "Continuous", Format("Best", 10), Formula(:Age - Col Mean(:Age)));
dt << New Column("Weight Centered", Numeric, "Continuous", Format("Best", 10), Formula(:Weight - Col Mean(:Weight)));
dt << New Column("Cholesterol Centered", Numeric, "Continuous", Format("Best", 10), Formula(:Cholesterol - Col Mean(:Cholesterol)));
dt << New Column("Triglycerides Centered", Numeric, "Continuous", Format("Best", 10), Formula(:Triglycerides - Col Mean(:Triglycerides)));
//Window with both analyses:
New Window( "Compare",
H List Box(
//K Means common scale:
dt << K Means Cluster(
Y( :Age, :Weight, :Cholesterol, :Triglycerides ),
Columns Scaled Individually( 0 ),
{Single Step( 0 ), Number of Clusters( 3 ), K Means Cluster,
Go( Show Biplot Rays( [0, 0, 1] ), Biplot( 1 ) )}
),
//PCA unscaled using centered columns
dt << Principal Components(
Y( :Age Centered, :Weight Centered, :Cholesterol Centered, :Triglycerides Centered ),
Estimation Method( "Default" ),
"on Unscaled"
)
)
);Re: Gemeinsame PCA-SkalaAus der JMP-Hilfe zu K-Means:
Spalten einzeln skaliert
Skaliert jede Spalte unabhängig von den anderen Spalten. Verwenden Sie diese Option, wenn Variablen keine gemeinsame Messskala haben und Sie nicht möchten, dass eine Variable den Clustering-Prozess dominiert. Beispielsweise könnte eine Variable Werte zwischen 0 und 1000 haben, und eine andere Variable könnte Werte zwischen 0 und 10 haben. In dieser Situation können Sie die Option verwenden, damit der Clustering-Prozess nicht von der ersten Variablen dominiert wird.
Wenn Sie sie NICHT einzeln skalieren, skalieren Sie die Variablen nicht.
Wenn Sie dies in Hauptkomponenten reproduzieren möchten, wählen Sie die Hauptkomponenten On Unscaled (verfügbar im roten Popup-Menü von Hauptkomponenten). Denken Sie jedoch daran, dass alle Ihre Variablen auf einer ähnlichen Skala liegen sollten, damit diese Ergebnisse sinnvoll sind.
Re: Gemeinsame PCA-SkalaHallo, die Skalierung auf der PCA ist die gleiche wie die K-Means, wenn die Option "Spalten einzeln skaliert" ausgewählt ist
Aber ich kann keine Möglichkeit finden, eine gemeinsame Skalierung mit PCA durchzuführen, wie es Kmeans tun kann, wenn die Option "Spalten einzeln skaliert" nicht ausgewählt ist
Der Grund, warum ich dies tun muss, ist, dass das K-Means-Biplot nicht die durch die Achsen erklärte Varianz enthält. Wenn jemand weiß, wie man das K-Means-Diagramm dazu bringt, diesen Wert anzuzeigen, würde ich es begrüßen!
Re: Gemeinsame PCA-SkalaIch verstehe die Frage möglicherweise nicht, aber PCA zentriert und skaliert automatisch alle Variablen, wenn Sie die PCA für die Korrelationen durchführen. Somit liegen alle Variablen auf der gleichen Skala.