Oblique factor communalities ignore factor correlations
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 72/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- python
- Domaine
- machine-learning
Piste de recherche
Commencez par get_communalities() et examinez les tests existants de communalities et uniqueness, en utilisant le reproducer de questionnaire 0.5.1 épinglé comme cas en échec. C’est terminé lorsque les rotations oblique produisent les diagnostics impliqués par le modèle, que les valeurs corrigées correspondent à la référence R indiquée, que varimax reste inchangé et que la régression ainsi que la suite complète de 102 tests passent.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Rotating correlated factors should not change how much of each item the fitted model explains. get_communalities() treats those factors as independent, which can report impossible negative uniqueness.
Example
With factor_analyzer 0.5.1, a three-factor minres/promax fit to the bundled 2,571-row, 23-item questionnaire reports q08 communality 1.103082 and uniqueness −0.103082. The model-implied values from diag(Λ Φ Λᵀ) are 0.590760 and 0.409240. q06 is also negative under the released calculation. The largest communality error across items is 0.512322.
Cause and checks
The code sums squared pattern loadings, valid for orthogonal factors only. With an oblique structure matrix, the row sum of loadings * structure_ supplies the factor correlations. Corrected promax, oblimin and quartimin outputs match the unrotated model within 7.8e-16 for minres and ML extraction; varimax is an unchanged negative control. The corrected questionnaire values match the R reference fixture within 2.2e-6. The full 102-test suite passes with a two-line correction and regression.
Pinned source: de933d26808039d965c117874c67260ec5149690. Reproducer, input, results, patch and tests: https://github.com/dnncha/cheerfulduck/blob/main/projects/research/content/findings-20260908.json (factor-analyzer-oblique-communalities); evidence archive SHA-256 663e8f6ccbec7fa35aa3027ad9b94017285259fa9a3f5dd2e550eb7442805b15.
This demonstrates changed diagnostics on a real questionnaire, not a changed fitted score, paper or scientific conclusion. No matching report was found in bounded issue/PR searches on 27 September 2026; #92 and PR #51 cover different questions. Prepared with AI assistance; not independently reviewed.
- Langage dominant
- Python
- Étoiles
- 6
- Forks
- 3
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de EducationalTestingService/factor_analyzer
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 55/100
EducationalTestingService/factor_analyzer#148 · 4 commentaires ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 55/100
EducationalTestingService/factor_analyzer#147 · 1 réaction ·
-
Order of variables when DF is fed to fit with CFA: either document or actually use the column names?Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
EducationalTestingService/factor_analyzer#146 · 2 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
EducationalTestingService/factor_analyzer#145 · 3 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
Toutes les issues de EducationalTestingService/factor_analyzer
Issues similaires
-
Agentic
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Imbad0202/academic-research-skills#979 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
reflex-dev/reflex#7561 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
prometheus-community/ansible#906 · 2 commentaires ·