<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Kaiser의 MSA(KMO라고도 함)는 요인 분석을 위한 변수 집합의 적합성을 판단하기 위해 반이미지 상관 매트릭스와 함께 자주 사용되는 메트릭입니다. SAS(proc factor)를 사용하여 쉽게 얻을 수 있습니다. 누구든지 JMP에서 이것을 얻는 방법을 알고 있습니까(저는 JMP Pro 버전 9를 사용하고 있습니다)?2010년 초에 KMO에 대한 게시물이 있었고 거기에 대한 답은 부분/역 상관 매트릭스를 Excel로 내보내 문자 그대로 이를 계산하는 것이었습니다. 지금쯤이면 JMP 또는 soem 사용자가 스크립트나 자동으로 수행하는 몇 가지 옵션을 생각해 냈으면 합니다. 감사.
괜찮아요! 제가 실수를 했습니다. 잘 돌아가고 있습니다.
2012년에 게시된 동일한 MSA 스크립트를 사용하고 있습니다. JMP의 이전 버전에서 잘 작동했습니다. 그러나 JMP Pro 15.1.0에서는 MSA 계산이 해제된 것 같습니다. 도와주시겠어요?
코드는 매력처럼 작동했습니다!!! 여러 데이터 세트에서 확인했는데 결과가 SAS를 실행하여 얻은 것과 동일합니다. 매우 감사합니다.
JMP 여러분(듣고 있는 경우) - 이 코드/jsl을 JMP의 다음 버전에 빨간색 삼각형 옵션 형태로 다변수 상관 관계 플랫폼으로 통합하십시오.
이 코드가 도움이 되는지 확인하세요. 사회경제적 표본 데이터에 대해서만 확인할 수 있었고 결과는 온라인 SAS 문서에 표시된 SAS 결과와 동일했습니다. 자신의 책임하에 사용하고 MSA 결과가 있는 만큼 많은 데이터 세트에서 확실히 테스트하십시오.
/* 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) ) )
)
);