Last active
October 5, 2023 08:11
-
-
Save joaovissoci/10e8b10ad27cd1c49985 to your computer and use it in GitHub Desktop.
Kmo calculation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #KMO | |
| kmo = function( data ){ | |
| library(MASS) | |
| X <- cor(as.matrix(data)) | |
| iX <- ginv(X) | |
| S2 <- diag(diag((iX^-1))) | |
| AIS <- S2%*%iX%*%S2 # anti-image covariance matrix | |
| IS <- X+AIS-2*S2 # image covariance matrix | |
| Dai <- sqrt(diag(diag(AIS))) | |
| IR <- ginv(Dai)%*%IS%*%ginv(Dai) # image correlation matrix | |
| AIR <- ginv(Dai)%*%AIS%*%ginv(Dai) # anti-image correlation matrix | |
| a <- apply((AIR - diag(diag(AIR)))^2, 2, sum) | |
| AA <- sum(a) | |
| b <- apply((X - diag(nrow(X)))^2, 2, sum) | |
| BB <- sum(b) | |
| MSA <- b/(b+a) # indiv. measures of sampling adequacy | |
| AIR <- AIR-diag(nrow(AIR))+diag(MSA) # Examine the anti-image of the | |
| # correlation matrix. That is the | |
| # negative of the partial correlations, | |
| # partialling out all other variables. | |
| kmo <- BB/(AA+BB) # overall KMO statistic | |
| # Reporting the conclusion | |
| if (kmo >= 0.00 && kmo < 0.50){ | |
| test <- 'The KMO test yields a degree of common variance | |
| unacceptable for FA.' | |
| } else if (kmo >= 0.50 && kmo < 0.60){ | |
| test <- 'The KMO test yields a degree of common variance miserable.' | |
| } else if (kmo >= 0.60 && kmo < 0.70){ | |
| test <- 'The KMO test yields a degree of common variance mediocre.' | |
| } else if (kmo >= 0.70 && kmo < 0.80){ | |
| test <- 'The KMO test yields a degree of common variance middling.' | |
| } else if (kmo >= 0.80 && kmo < 0.90){ | |
| test <- 'The KMO test yields a degree of common variance meritorious.' | |
| } else { | |
| test <- 'The KMO test yields a degree of common variance marvelous.' | |
| } | |
| ans <- list( overall = kmo, | |
| report = test, | |
| individual = MSA, | |
| AIS = AIS, | |
| AIR = AIR ) | |
| return(ans) | |
| } # end of kmo() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
3 3 3 3 3 2 3 3 3 7
4 2 4 2 4 3 3 2 3 9
4 4 4 4 4 4 4 4 5 12
3 3 3 3 3 2 3 3 3 7
4 2 4 2 2 2 2 3 1 9
4 2 3 2 3 2 2 2 3 11
3 2 2 3 2 3 3 3 3 7
3 2 3 2 2 2 2 2 2 6
4 3 3 4 4 4 4 4 3 9
4 4 4 4 4 4 4 4 5 12
3 2 3 2 2 2 2 3 3 5
4 3 3 3 4 3 3 4 3 9
2 1 1 1 2 2 2 1 1 0
3 2 3 3 3 3 2 2 2 4
4 2 3 3 2 3 3 2 4 11
4 3 4 3 3 3 3 3 3 10
4 3 3 3 4 3 4 2 3 10
3 2 3 2 3 2 4 2 2 5
3 3 3 4 3 4 4 3 3 7
3 2 3 2 2 2 2 1 3 7
2 2 2 2 2 3 2 2 3 2
3 1 3 2 1 2 3 2 2 6
4 2 3 3 3 2 3 3 2 9
4 3 4 3 4 4 4 3 3 9
2 2 3 2 3 2 3 1 1 3
4 4 3 4 4 4 4 4 4 10
3 2 3 2 2 3 3 2 2 7
4 3 3 3 4 3 4 4 3 12
3 2 2 2 3 3 3 2 3 6
2 2 3 2 3 2 3 2 3 4
4 3 3 3 4 3 4 4 4 10
4 3 4 3 3 4 4 3 4 11
2 1 2 2 2 2 2 1 2 4
4 3 3 4 3 4 4 4 3 12
3 2 3 2 2 2 4 2 2 8
4 3 3 3 4 4 4 3 3 7
2 1 3 1 1 1 2 2 2 2
4 3 3 3 4 3 4 3 3 12
2 3 2 3 3 2 2 2 3 3
4 4 4 3 4 3 5 3 4 12
4 4 3 4 4 3 4 3 4 10
4 4 4 3 4 3 4 4 5 12
4 3 3 3 3 3 4 3 4 12
2 3 1 3 3 3 4 3 3 3
4 2 3 2 2 2 2 2 3 9
2 1 3 2 1 2 1 1 3 2
2 2 3 2 2 2 3 2 2 0
4 3 3 3 3 3 4 3 3 9
4 3 4 4 3 4 4 3 3 12
3 2 4 2 2 2 2 2 3 7
3 3 3 3 3 3 4 2 4 7
2 2 3 2 1 2 2 2 2 4
4 3 3 2 4 2 4 2 4 9
3 3 3 3 2 2 3 2 3 8
4 3 4 3 3 3 3 2 3 9
4 4 4 4 4 3 4 4 4 12
3 2 3 2 2 3 3 2 3 4
2 2 3 2 2 2 3 3 2 5
3 2 3 2 2 3 3 3 3 7
3 3 3 3 2 3 4 3 3 5
2 3 3 3 3 3 4 2 3 4
4 3 4 3 3 3 4 2 3 9
2 1 2 2 1 2 2 1 2 3
3 2 4 2 2 3 3 2 3 6
4 3 4 2 3 2 4 4 3 12
4 3 4 2 3 2 3 3 3 11
4 2 4 2 2 2 4 2 2 10
3 2 3 2 2 2 3 2 2 8
3 2 3 2 2 2 2 1 2 6
2 2 2 2 2 2 2 2 2 2
3 3 3 3 2 3 4 3 3 6
4 3 5 3 4 4 4 3 3 12
4 4 4 4 4 4 4 4 4 12
4 3 4 3 3 3 3 3 3 10
4 4 3 4 4 4 4 3 5 10
3 2 3 3 3 3 3 2 3 7
4 4 4 4 4 4 5 4 4 10
4 4 5 3 3 4 4 4 3 12
4 3 3 3 3 3 3 3 4 8
4 2 4 2 3 2 2 3 3 12
4 4 4 4 5 4 4 4 4 12
5 5 5 5 5 5 5 5 5 12
3 1 4 1 2 2 2 2 2 8
4 3 3 3 3 3 3 2 3 10
4 4 4 3 3 3 4 3 4 12
2 1 3 1 1 2 2 2 2 3
3 2 3 2 3 2 2 2 3 7
4 3 4 3 3 3 3 3 4 9
3 2 4 3 2 3 3 2 3 5
3 2 3 3 2 3 3 2 3 7
4 3 3 2 2 2 3 3 3 11
2 1 3 2 2 2 2 2 1 5
4 3 4 3 4 3 4 4 3 10
3 2 3 2 3 2 3 3 2 8
4 3 4 3 4 3 4 3 4 12
4 3 4 3 2 3 4 3 3 8
4 3 3 3 3 3 3 3 3 10
4 3 3 3 3 4 3 3 4 12
4 3 3 4 4 4 4 3 3 9
4 4 3 4 4 4 5 4 4 10
3 2 3 3 2 2 3 2 3 5
3 3 3 3 4 4 4 3 4 7
4 3 3 2 3 3 2 2 3 10
4 3 5 4 3 4 4 3 4 12
4 3 4 3 3 4 4 3 3 9
4 3 3 3 4 3 3 3 4 10
4 3 3 3 4 3 2 3 3 10
3 2 3 3 2 3 2 2 2 7
4 3 3 4 3 4 3 2 3 10
3 3 3 4 4 4 4 3 3 6
4 3 5 3 3 4 4 2 4 12
2 1 2 1 2 2 1 1 2 0
4 2 3 3 3 3 2 2 3 11
3 2 4 2 2 2 3 2 2 7
4 3 3 3 3 4 4 4 4 9
4 4 3 4 4 4 5 4 4 12
3 2 3 2 3 3 2 2 1 7
3 2 3 3 2 3 2 2 2 7
4 3 4 3 2 4 4 3 3 8
2 2 2 2 3 2 3 2 2 3
2 2 3 2 2 3 2 2 2 3
4 4 4 4 4 5 4 4 3 12
3 2 3 2 2 2 3 3 3 5
3 2 3 2 2 2 3 2 1 7
2 2 3 2 2 3 3 2 2 2
4 2 3 3 3 3 2 3 3 11
3 4 3 4 4 4 4 4 4 7
4 2 3 2 2 3 2 2 2 9
4 3 3 3 3 3 3 3 4 11
2 2 2 3 3 3 2 3 2 4
3 3 4 3 3 3 4 3 3 6
2 2 2 3 2 3 3 3 3 2
4 4 4 4 3 4 4 4 3 12
4 3 4 3 4 2 3 2 3 12
2 2 3 2 3 2 2 2 3 3
3 2 3 2 2 3 2 3 3 7
3 3 3 3 4 3 4 2 3 8
4 3 5 3 4 4 4 3 4 12
4 4 5 4 4 5 4 4 3 12
2 1 2 2 2 2 2 2 2 1
4 3 3 3 3 3 3 4 3 11
3 2 3 2 2 2 3 2 2 6
2 2 3 2 2 2 4 2 2 2
3 2 3 2 2 2 3 1 2 7
4 3 5 3 4 4 3 4 3 12
3 2 3 2 2 2 3 2 2 7
2 2 3 2 2 3 3 2 2 3
2 2 3 2 2 2 2 2 2 2
2 2 3 2 2 2 2 2 3 0
4 3 3 3 3 4 3 2 3 11
3 2 3 2 2 2 3 2 2 8
4 3 3 3 3 3 3 3 2 9
4 3 3 3 3 3 3 3 4 11
4 2 3 3 3 3 2 2 3 10
4 3 4 3 2 3 4 2 3 10
3 2 3 3 2 2 2 3 3 6
3 2 3 3 2 3 3 2 3 6
4 3 4 3 3 3 4 2 3 12
4 4 4 4 4 4 4 4 3 11
2 2 2 2 2 2 3 2 2 2
4 2 5 3 2 3 2 3 2 12
4 2 4 2 2 2 2 2 2 10
3 2 3 2 3 2 3 2 3 6
4 3 3 3 3 3 3 3 3 9
2 1 2 2 1 2 2 1 2 3
2 2 2 2 2 2 3 2 2 2
3 2 3 2 3 2 2 2 2 7
2 2 2 3 2 3 3 3 3 2
4 3 4 3 4 3 4 3 3 10
3 3 3 3 4 3 4 3 4 7
4 3 3 3 3 3 3 3 3 8
4 4 3 3 4 3 5 4 3 12
4 3 3 2 3 3 3 3 3 9
3 2 3 3 3 3 3 3 3 7
4 3 4 3 3 3 3 3 3 11
3 3 3 3 3 4 4 3 2 5
3 3 3 3 4 3 4 3 4 6
4 3 4 3 4 3 3 3 3 10
3 3 3 4 3 4 3 2 3 6
2 2 3 2 2 3 2 3 3 6
4 3 4 3 3 2 3 2 3 10
3 2 3 2 2 2 3 3 2 6
3 3 3 2 3 2 3 3 4 5
4 3 4 3 4 2 3 4 3 12
5 4 4 4 4 3 4 4 4 12
4 3 3 3 3 3 4 3 4 10
4 4 4 4 4 4 4 4 4 10
4 4 4 4 4 4 4 4 4 12
3 2 3 3 2 3 3 2 3 8
4 4 4 3 4 4 4 3 4 9
4 4 4 4 4 4 4 4 4 12
4 2 3 2 2 3 3 2 2 9
3 2 3 3 2 3 3 2 3 8
4 3 3 3 3 3 4 3 4 9
4 4 3 3 4 3 4 4 3 10
3 3 3 3 3 4 3 3 3 5
3 1 3 2 2 2 2 2 2 8
4 3 4 3 3 3 4 4 3 9
3 2 3 3 4 3 3 3 2 7
3 2 3 2 2 2 3 2 3 7
4 3 3 3 2 2 3 3 3 12
3 3 2 3 3 3 3 3 3 6
3 3 3 3 3 3 3 3 3 8
4 3 4 3 3 4 3 4 3 12
4 4 3 4 4 4 4 4 3 12
4 3 3 2 3 2 2 2 3 10
4 3 4 3 3 2 4 3 3 12
3 3 3 3 3 3 3 3 3 9
2 2 2 3 2 3 3 2 3 3
4 3 3 3 4 3 3 3 4 12
4 3 4 3 4 4 4 3 3 12
3 2 3 2 3 2 2 2 2 6
4 3 4 3 3 3 4 4 4 12
2 2 3 1 2 2 2 2 2 3
3 3 3 3 2 3 4 3 3 6
3 3 3 3 3 4 3 3 3 6
3 2 3 3 2 3 2 2 2 7
4 3 3 3 4 3 3 3 3 10
3 2 3 3 2 3 2 3 3 6
4 3 4 3 2 3 3 2 3 11
3 2 3 3 3 3 2 3 2 8
4 4 4 3 4 4 3 4 4 12
4 3 4 3 4 4 3 4 4 10
3 3 3 3 3 2 3 3 3 7
4 3 4 3 3 4 3 3 3 11
3 3 3 3 3 3 4 3 4 6
1 1 1 1 1 2 2 2 1 0
3 3 3 3 2 3 3 2 3 8
3 2 3 3 2 3 3 2 3 6
3 2 2 2 3 3 2 2 3 9
2 1 3 2 2 2 2 2 1 3
2 2 3 2 2 2 3 2 2 2
4 3 3 3 2 3 4 3 3 9
4 3 3 4 4 4 4 4 3 10
4 4 4 4 4 4 5 4 4 12
4 3 4 3 3 4 4 3 3 9
4 3 3 3 2 3 3 2 3 8
4 4 4 4 5 4 4 3 4 12
2 2 2 3 2 3 3 2 2 4
4 3 3 3 3 3 3 3 3 9
3 3 3 3 4 3 4 3 3 6
4 3 3 3 3 3 3 3 3 10
4 3 3 3 4 3 4 3 3 9
4 4 3 3 4 3 4 4 4 11
4 3 3 3 4 4 3 3 3 9
4 3 3 2 3 3 3 2 3 9
2 2 3 1 3 1 2 2 2 4
4 4 3 4 4 4 4 4 3 10
2 2 3 2 2 2 3 2 3 4
3 2 3 2 2 2 2 2 2 7
4 3 4 3 2 3 3 3 3 9
2 1 2 1 2 2 2 2 2 0
2 2 2 2 2 3 2 2 3 2
2 2 3 2 2 2 2 2 2 4
3 2 3 2 2 2 3 2 3 6
4 2 3 2 2 2 2 2 2 11
4 3 3 3 4 3 3 4 3 9
3 3 3 3 3 3 3 2 3 5
4 3 4 3 4 4 4 3 3 12
4 4 3 4 3 4 4 4 3 11
2 3 3 3 4 3 4 3 2 2
4 4 5 4 4 4 5 4 5 12
4 4 3 4 4 4 4 3 4 12
4 2 4 2 2 3 3 2 2 10
3 2 4 2 2 2 3 2 2 6
2 1 2 1 2 2 2 1 1 0
4 3 3 3 4 3 4 3 3 12
4 3 4 3 3 3 4 3 3 10
2 2 3 2 2 2 2 2 3 2
4 3 4 3 3 3 3 2 3 12
4 4 4 4 4 4 3 4 4 8
4 3 3 3 3 3 3 3 3 10
3 3 3 3 3 3 4 4 3 8
2 2 2 3 2 2 3 2 2 4
2 2 2 2 3 2 3 2 3 4
3 2 3 2 3 3 2 3 2 6
3 2 3 2 2 3 3 2 3 7
2 1 2 2 1 3 2 2 1 3
4 3 3 2 4 2 4 2 2 9
4 3 4 3 2 2 4 2 3 11
4 2 4 3 3 3 3 2 2 8
4 3 3 3 2 4 3 4 3 11
4 4 4 4 4 4 4 4 4 9
4 3 3 3 3 3 3 3 3 10
4 4 3 4 4 4 4 5 3 9
4 3 4 4 3 4 3 3 3 12
4 3 3 3 4 4 3 2 3 9
4 3 3 3 3 2 4 4 3 10
4 4 4 4 4 4 4 4 4 12
3 3 3 3 3 2 3 4 3 6
4 3 5 3 3 4 4 4 3 10
4 3 3 3 4 3 4 3 4 11
4 4 4 3 4 4 4 4 4 10
4 3 4 3 3 3 4 4 3 10
3 2 4 3 3 2 2 2 2 5
4 3 4 3 4 3 4 3 3 9
3 3 3 3 4 3 3 3 3 7
2 2 3 2 2 3 2 2 3 3
4 3 4 3 3 3 3 3 5 9
2 1 3 2 1 2 1 2 3 1