View Full Version : Need a simple, free software to calculate the Kaiser-Meyer-Olkin measure

12-08-2007, 05:49 AM
Greetings :)

I have an urgent need for a easy to use, free software to calculate the Kaiser-Meyer-Olkin (KMO) measure of matrices with ~1700 observations. I have tried to use Trujillo's m-file (http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=12736), but its not working.

Also, in case someone mentions Bartlett's Sphericity Test, the data i work on cannot be normalized, and as far as i know, Bartlett can only be applied to normalized data.

Thanks in advance :D

Christophe Genolini
12-10-2007, 06:53 AM
Did you try R ? http://lib.stat.cmu.edu/R/CRAN/index.html

It is not that simple, but it is free and it's very powerfull.


12-11-2007, 02:37 AM
I have installed R and managed to access my data files through it. However, it seems i have to download a package that contains the KMO test. The list of available packages is quite large (looking here: http://lib.stat.cmu.edu/R/CRAN/index.html). All i found about factor analysis these two:


However none of them have a function to calculate KMO. Any ideas where i could search for more packages? Or any other software?

12-12-2007, 04:36 PM
YOu could look for the R mailing list, if you have software for mailing lists the news group is : gmane.comp.lang.R.general

12-14-2007, 02:19 AM
Trying to configure thunderbird to work on gmane.comp.lang.R.general, and trying to use my yahoo mail with that. Does that work or do i need a pop3 email? Is there any other config on gmane.comp.lang.R.general that i need to connect to it?

Solving this is tougher than i thought :( Im considering breaking into the statistics lab at uni at night with a pendrive.

12-28-2007, 10:41 AM
I know you can join this mailing list through the web and you don't *have* to use a mailing list program.

12-28-2007, 04:37 PM
Never tried it but this is a function you should try

library(corpcor) ###needs the function pcor.sq
kmo.test <- function(df)
cor.sq = cor(df)^2
cor.sumsq = (sum(cor.sq)-dim(cor.sq)[1])/2
pcor.sq = cor2pcor(cor(df))^2
pcor.sumsq = (sum(pcor.sq)-dim(pcor.sq)[1])/2
kmo = cor.sumsq/(cor.sumsq+pcor.sumsq)

> http://tolstoy.newcastle.edu.au/R/help/05/12/17235.html

You can use (never used it either...)

Factor (http://psico.fcep.urv.es/utilitats/factor/) -- a comprehensive factor analysis program. Provides univariate and multivariate descriptive statistics of input variables (mean, variance, skewness, kurtosis), Var charts for ordinal variables, dispersion matrices (user defined , covariance, pearson correlation, polychoric correlation matrix with optional Ridge estimates). Uses MAP, PA (Parallel Analysis), and PA - MBS (with marginally bootstrapped samples) to determine the number of factors/components to be retained. Performs the following factor and component analyses: PCA, ULS (with Heywood correction), EML, MRFA, Schmid-Leiman second-order solution, and Factor scores. Rotation methods: Quartimax, ,Varimax , Weighted Varimax, Orthomin , Direct Oblimin, Weighted Oblimin, Promax, Promaj , Promin, and Simplimax. Indices used in the analysis: dispersion matrix tests (determinant, Bartlett's, Kaiser-Meyer-Olkin), goodness of fit: Chi-Square ,non-normed fit index, comparative fit index, goodness of fit index, adjusted GFI, RMS error of approx, and estimated non-centrality parameter (NCP), reliabilities of rotated components , simplicity indices: Bentler’s, and loading simplicity index. Provides mean, variance and histogram of fitted and standardized residuals, and automatic detection of large standardized residuals.