# Need a simple, free software to calculate the Kaiser-Meyer-Olkin measure

#### Claudio_Villegas

##### New Member
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.

#### Claudio_Villegas

##### New Member
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:

http://lib.stat.cmu.edu/R/CRAN/src/contrib/Descriptions/FactoMineR.html
http://lib.stat.cmu.edu/R/CRAN/src/contrib/Descriptions/ifa.html

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

#### IronMan

##### New Member
YOu could look for the R mailing list, if you have software for mailing lists the news group is : gmane.comp.lang.R.general

#### Claudio_Villegas

##### New Member
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.

#### IronMan

##### New Member
I know you can join this mailing list through the web and you don't *have* to use a mailing list program.

#### mp83

##### TS Contributor
Never tried it but this is a function you should try

Code:
library(corpcor) ###needs the function [B]pcor.sq[/B]
kmo.test <- function(df)
{
cor.sq = cor(df)^2
cor.sumsq = (sum(cor.sq)-dim(cor.sq)[1])/2
library(corpcor)
pcor.sq = cor2pcor(cor(df))^2
pcor.sumsq = (sum(pcor.sq)-dim(pcor.sq)[1])/2
kmo = cor.sumsq/(cor.sumsq+pcor.sumsq)
return(kmo)
}
> http://tolstoy.newcastle.edu.au/R/help/05/12/17235.html

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

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.

Last edited: