<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Die Kaiser-MSA (auch KMO genannt) ist eine Metrik, die häufig zusammen mit der Anti-Image-Korrelationsmatrix verwendet wird, um die Eignung eines Satzes von Variablen für die Faktoranalyse zu beurteilen. Ich kann diese leicht mit SAS (Proc-Faktor) abrufen. Weiß jemand, wie man diese in JMP bekommt (ich verwende JMP Pro Version 9)?Wie ich sehe, gab es Anfang 2010 einen Beitrag über KMO und die Antwort dort war, diese buchstäblich zu berechnen, indem die partielle/inverse Korrelationsmatrix nach Excel exportiert wurde. Ich hoffe, dass JMP oder andere Benutzer inzwischen ein Skript oder einige Optionen entwickelt haben, die dies automatisch tun. Danke.
Egal! Ich habe einen Fehler gemacht - es läuft gut.
Ich verwende dasselbe MSA-Skript, das 2012 veröffentlicht wurde. Es funktionierte gut mit früheren Versionen von JMP. Aber bei JMP Pro 15.1.0 scheinen die MSA-Berechnungen ausgeschaltet zu sein. Können Sie bitte helfen?
Der Code funktionierte wie ein Zauber!!! Ich habe es an mehreren Datensätzen überprüft und die Ergebnisse sind identisch mit denen, die ich beim Ausführen von SAS erhalte. Vielen Dank.
JMP-Leute (falls Sie zuhören) – bitte integrieren Sie diesen Code/jsl in die nächste Version von JMP als Option für ein rotes Dreieck von der multivariaten Korrelationsplattform.
Prüfen Sie, ob dieser Code hilfreich ist. Ich konnte es nur mit den sozioökonomischen Stichprobendaten vergleichen und die Ergebnisse waren die gleichen wie die SAS-Ergebnisse, die in den SAS-Dokumenten online gezeigt werden. Verwenden Sie es auf eigene Gefahr und testen Sie auf jeden Fall an so vielen Datensätzen, wie Sie MSA-Ergebnisse haben.
/* Next line if want to open a specific JMP table */
//dt = Open( "$SAMPLE_DATA/Socioeconomic.jmp" );
/* Next line if want to have user pick a JMP data table */
//dt = Open();
/* No Open statement if want to run against the current data table */
cd = Column Dialog( Col ID = ColList( "Select Columns" ) );
names = cd["Col ID"];
nsel = N Items( names );
mv = Multivariate(
Y( Eval( names ) ),
Estimation Method( "Row-wise" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) ),
Partial Correlations( 1 )
);
rmv = Report( mv );
dtcorr = rmv["Correlations"][Matrix Box( 1 )] << make into data table;
dtpart = rmv["Partial Corr"][Matrix Box( 1 )] << make into data table;
stkcorr = dtcorr << Stack(
columns( Eval( names ) ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
stkpart = dtpart << Stack(
columns( Eval( names ) ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
Close( dtcorr, nosave );
Close( dtpart, nosave );
stkcorr << New Column( "DataSqr", formula( Data ^ 2 ) );
stkpart << New Column( "DataSqr", formula( Data ^ 2 ) );
sumsqrcorr = Col Sum( (stkcorr:"DataSqr") ) - nsel;
sumsqrpart = Col Sum( (stkpart:"DataSqr") );
MSA = sumsqrcorr / (sumsqrcorr + sumsqrpart);
//Show( MSA );
Summarize( bycorr = by( stkcorr:"Row" ), sumsqrcorrby = Sum( stkcorr:"DataSqr" ) );
Summarize( bypart = by( stkpart:"Row" ), sumsqrpartby = Sum( stkpart:"DataSqr" ) );
Close( stkcorr, nosave );
Close( stkpart, nosave );
//show(sumsqrcorrby, sumsqrpartby);
//show(bycorr, bypart);
sumsqrcorrby = sumsqrcorrby - 1;
//show(sumsqrcorrby);
MSAvar = {};
For( i = 1, i <= nsel, i++,
MSAvar = sumsqrcorrby / (sumsqrcorrby + sumsqrpartby);
//Show( bycorr, MSAvar );
);
sr = New Window( "Summary Results",
V List Box(
Table Box( String Col Box( "Variable", bycorr ), Number Col Box( "MSA", MSAvar ) ),
Text Box( "Overall MSA = " || Char( round(MSA, 5) ) )
)
);