Hallo:
Ich würde gerne wissen, wie man eine Korrelationsmatrix (oder Kovarianzmatrix) in JMP eingibt, um eine Analyse gemeinsamer Faktoren (oder Hauptkomponentenanalyse) durchzuführen. Ich kann weder in der Dokumentation noch irgendwo Beispiele finden.
Ich bin sicher, dass es schon einmal jemand in JMP gemacht hat.
Kannst du deine Lösung posten?
Danke
Narayanan
Ich finde hier keine Antworten auf Ihre Frage von vor fast 20 Monaten. Hat jemand eine Antwort? Ich habe die gleiche Frage. Ich möchte meine „eigenen“ Korrelations- und Kovarianzmatrizen in eine einfache Hauptkomponentenanalyse eingeben, finde aber keine Möglichkeit dazu.
Danke.
Michael
HI @MaxiumumFactors und @AN1 ,
Ich habe den JMP-Skriptindex durchgesehen, um zu sehen, ob es eine Möglichkeit gibt, eigene Matrizen einzugeben. Ich glaube aber, dass JMP dies nicht zulässt, sondern nur mit der von ihm generierten Matrix arbeitet. Wenn Sie dies wünschen, fügen Sie einen Beitrag zur Wunschliste hinzu.
Danke,
Ben
Ich bin Yusuke Ono, Senior Tester bei JMP Japan. Ich entschuldige mich im Voraus für mein schlechtes Englisch.
Wenn Sie über JMP Pro verfügen, unterstützt die Strukturgleichungsmodell- Plattform Kovarianzmatrizen (oder Korrelationsmatrizen) und Mittelwertvektoren als Eingabe, und Sie können eine konfirmatorische Faktorenanalyse (CFA) und andere SEMs anpassen.
Die Eigenfunktion in der JMP Scripting Language (JSL) kann die Eigenwertzerlegung für symmetrische Matrizen durchführen. Die Hauptkomponentenanalyse (PCA) kann durch die Eigenwertzerlegung durchgeführt werden, sodass Sie die Eigenfunktion für die PCA verwenden können .
Die Faktorenanalyse mittels Maximum-Likelihood-Schätzung ist komplizierter. Es ist schwierig, den Algorithmus für maximales Likefood zu programmieren. Daher empfehle ich die folgende Methode, obwohl sie immer noch kompliziert ist.
Wenn Sie die Cholesky -Funktion verwenden, können Sie Dummy-Daten simulieren, deren Konvarianzmatrix und Mittelwertvektor genau mit Ihren übereinstimmen (sofern Ihre Konvarianzmatrix positiv semidefinit ist). Wenn Ihre Kovarianzmatrix diese und Ihr Mittelwertvektor bedeuten ist, können Sie die Daten wie unten beschrieben generieren.
z = J(n, NCol(cov), Random Normal());
For(i = 1, i <= NCol(z), i++,
z[0,i] = (z[0,i] - Mean(z[0,i]))
);
c = Covariance(z);
invrc = Inv(Cholesky(c))`;
rcov = Cholesky(cov);
z = J(n,1,1)*mean` + z * invrc * rcov`;
Beachten Sie, dass einige Ergebnisse dieser Dummy-Daten bedeutungslos sind. Beispielsweise hängen Score-Plots in der PCA von Zufallszahlen ab. Nur Ergebnisse im Zusammenhang mit der Kovarianzmatrix und dem Mittelwertvektor sind aussagekräftig. Beispielsweise sind Maxima, Minima und Spearman/Kendall-Korrelationen bedeutungslos, da sie von anderen Informationen als Mittelwerten und Kovarianzen abhängen.
Der folgende Code ist ein Beispiel. Es dürfte schwierig sein, diese „Dummy-Datenmethode“ zu verstehen und zu programmieren, wenn man mit JSL nicht vertraut ist. Außerdem ist meine englische Erklärung nicht leicht verständlich. Ich überspringe auch die mathematische Erklärung, warum diese Berechnung Dummy-Daten mit dem gewünschten Mittelwertvektor und der gewünschten Kovarianzmatrix generieren kann. Bei Fragen stehe ich Ihnen gerne zur Verfügung.
Names Default To Here(1);
/////////// This is a sample data //////////////////////////////////////
New Table( "Test",
New Column( "Mean", Values( [100, 50, 30, 20] )),
New Column( "Stddev", Values( [3, 4, 2.5, 1.8] )),
New Column( "X1", Values( [1, 0.8, 0.6, 0.4])),
New Column( "X2", Values( [0.8, 1, 0.5, 0.2] )),
New Column( "X3", Values( [0.6, 0.5, 1, 0.2] )),
New Column( "X4", Values( [0.4, 0.2, 0.2, 1] ))
);
///////////////////////////// From Here ///////////////////////////////
mean colname = "Mean"; /* column name for means */
stddev colname = "Stddev"; /* column name for standard deviations */
corr colnames = {"X1", "X2", "X3", "X4"};
n = 100; /* Specify the sample size */
dt = Current Data Table();
mean = Column(dt, mean colname) << Get As Matrix; /* Read your mean vector */
sd = Column(dt, stddev colname) << Get As Matrix; /* Read your standard deviations */
r = dt <
<GET as="" matrix=""></GET>
<DIV>Ein Alleinstellungsmerkmal von JMP ist seine Interaktivität. Beispielsweise lassen sich im Score-Plot der PCA-Plattform Ausreißer finden. Wenn Sie mit zusammengefassten Daten (wie Mittelwerten, Standardabweichungen und Korrelationen) beginnen, gehen Informationen über Ihre Daten verloren. Ich selbst empfinde es auch als unangenehm, wenn ich Analysen in Lehrbüchern ausprobiere. In letzter Zeit bieten jedoch meiner Meinung nach mehr Lehrbücher Beispiel-Rohdatensätze statt zusammengefasster Daten an. Wenn Sie möchten, dass wir die Eingabe zusammengefasster Daten (wie die SEM-Plattform von JMP Pro) auch für die PCA- und Faktorenanalyse-Plattform unterstützen, tragen Sie Ihren Wunsch bitte in die Wunschliste ein (wie <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/51054" target="_blank">@Ben_BarrIngh</A> sagte).</DIV>