Factor Analysis — IIG Technology
Android application (Java) for **exploratory factor analysis** on your own data or correlation matrix.
## Opportunities
| Stage | Implementation |
| Data | raw data (CSV/TSV/`;`/spaces, decimal point, missing values → row exclusion) or correlation matrix (full/lower triangular, with labels) + N; file import; data set writing |
| Adequacy | KMO, MSA for each variable, Bartlett test, determinant of R |
| Number of factors | Kaiser criterion, Horn parallel analysis (95th percentile), fixed number |
| Extraction | principal components (PCA), principal axes (PAF, iterative from SMC), maximum likelihood (ML, EM algorithm, canonical form) |
| Rotation | varimax, quartimax, equimax (orthomax with Kaiser normalization), promax (κ is set) → matrix of the model, of the structure and Φ |
| Consistency | residual correlations, RMSR, ML χ² test, RMSEA |
| Estimates | factor estimates by the regression method (Thurstone), export to CSV |
| Results | scree plot with threshold from parallel analysis, heat tables of weights (sort, hide < 0.30), weight plot (zoom/move), interpretation help, share text report |
| Languages: English (default on first launch), Bulgarian, German, French, Spanish – switch from , regardless of device language |
## Check
`app/src/test/CoreTest.java` (JUnit 4) – 13 tests: Harman eigenvalues (4.673, 1.771), parallel analysis finds the true number of factors in simulated data, rotation properties, ML χ² assumes the true model, reverse-coded questions, parser (decimal point, missing values, lower triangular matrix), etc.
The calculations have also been verified with an independent implementation of numpy/scipy (KMO, Bartlett, PCA, PAF, ML via direct optimization, varimax, promax, factor estimates).
The examples "School Grades", "Survey", and "Personality Questionnaire" are **simulated** fixed-grain data (same on every device); "Harman: 8 Physical Indicators" is the classic published correlation matrix.
## AdMob banner
Banner (`BANNER`) at the bottom of all screens – `AdView` is declared in XML (`@id/adView`) and is loaded with `findViewById` in `MainActivity`, `AnalysisActivity`, `EditorActivity` and `TheoryActivity`
Android app exploratory factor analysis on your own data or correlation matrix.